@mediusinc/mng-commons-audit 3.0.0-rc.4 → 3.0.0-rc.7

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.
@@ -1,6 +1,6 @@
1
1
  import { Injectable, inject } from '@angular/core';
2
2
  import { map } from 'rxjs/operators';
3
- import { AMngBaseApiService, MngConfigurationService, MngErrorInternal } from '@mediusinc/mng-commons';
3
+ import { AMngBaseApiService, MngConfigurationService, MngInternalError } from '@mediusinc/mng-commons';
4
4
  import { MngRevEntityWithId } from '../../models/revEntityWithId.model';
5
5
  import { MNG_AUDIT_MODULE_CONFIG_IT } from '../../service/module-config.token';
6
6
  import { AuditUtil } from '../../utils/audit.util';
@@ -40,7 +40,7 @@ export class MngAuditRevisionsApiService extends AMngBaseApiService {
40
40
  if (items.length > 0) {
41
41
  return items[0];
42
42
  }
43
- throw new MngErrorInternal(`Entity revision ${revId} for ${entityType} with id ${itemId} was not found`);
43
+ throw new MngInternalError(`Entity revision ${revId} for ${entityType} with id ${itemId} was not found`);
44
44
  }));
45
45
  }
46
46
  countRevisionsWithStateForEntityType(queryParams, entityType) {
@@ -52,4 +52,4 @@ export class MngAuditRevisionsApiService extends AMngBaseApiService {
52
52
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.1.7", ngImport: i0, type: MngAuditRevisionsApiService, decorators: [{
53
53
  type: Injectable
54
54
  }], ctorParameters: function () { return []; } });
55
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYXVkaXQtcmV2aXNpb25zLWFwaS5zZXJ2aWNlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vc3JjL2xpYi9hcGkvc2VydmljZXMvYXVkaXQtcmV2aXNpb25zLWFwaS5zZXJ2aWNlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBQyxVQUFVLEVBQUUsTUFBTSxFQUFDLE1BQU0sZUFBZSxDQUFDO0FBR2pELE9BQU8sRUFBQyxHQUFHLEVBQUMsTUFBTSxnQkFBZ0IsQ0FBQztBQUVuQyxPQUFPLEVBQUMsa0JBQWtCLEVBQTRCLHVCQUF1QixFQUFFLGdCQUFnQixFQUFDLE1BQU0sd0JBQXdCLENBQUM7QUFFL0gsT0FBTyxFQUFDLGtCQUFrQixFQUFDLE1BQU0sb0NBQW9DLENBQUM7QUFDdEUsT0FBTyxFQUFDLDBCQUEwQixFQUFDLE1BQU0sbUNBQW1DLENBQUM7QUFDN0UsT0FBTyxFQUFDLFNBQVMsRUFBQyxNQUFNLHdCQUF3QixDQUFDO0FBRWpELE9BQU8sRUFBQyx3QkFBd0IsRUFBQyxNQUFNLGlDQUFpQyxDQUFDOztBQUd6RSxNQUFNLE9BQU8sMkJBQTRCLFNBQVEsa0JBQWtCO0lBSy9EO1FBQ0ksS0FBSyxFQUFFLENBQUM7UUFITyxpQkFBWSxHQUFHLE1BQU0sQ0FBQywwQkFBMEIsQ0FBQyxDQUFDO1FBSWpFLElBQUksQ0FBQyxhQUFhLEdBQUcsdUJBQXVCLENBQUMsR0FBRyxFQUFFLENBQUM7SUFDdkQsQ0FBQztJQUVTLGtCQUFrQjtRQUN4QixPQUFPLElBQUksQ0FBQyxZQUFZLENBQUMsa0JBQWtCLElBQUksRUFBRSxDQUFDO0lBQ3RELENBQUM7SUFFUyxXQUFXO1FBQ2pCLE9BQU8sR0FBRyxJQUFJLENBQUMsYUFBYSxDQUFDLGNBQWMsQ0FBQyxJQUFJLENBQUMsWUFBWSxDQUFDLG9CQUFvQixDQUFDLEVBQUUsQ0FBQztJQUMxRixDQUFDO0lBRU0sZUFBZSxDQUFDLFdBQTZCO1FBQ2hELE9BQU8sSUFBSSxDQUFDLElBQUksQ0FBQyxHQUFHLENBQWtDLElBQUksQ0FBQyxNQUFNLENBQUMsU0FBUyxDQUFDLDRCQUE0QixDQUFDLFdBQVcsQ0FBQyxDQUFDLENBQUMsQ0FBQztJQUM1SCxDQUFDO0lBRU0sZ0JBQWdCLENBQUMsV0FBNkI7UUFDakQsT0FBTyxJQUFJLENBQUMsSUFBSSxDQUFDLEdBQUcsQ0FBUyxJQUFJLENBQUMsTUFBTSxDQUFDLFFBQVEsRUFBRSxTQUFTLENBQUMsNEJBQTRCLENBQUMsV0FBVyxDQUFDLENBQUMsQ0FBQyxDQUFDO0lBQzdHLENBQUM7SUFFTSx3QkFBd0IsQ0FBQyxLQUFhO1FBQ3pDLE9BQU8sSUFBSSxDQUFDLElBQUksQ0FBQyxHQUFHLENBQUMsSUFBSSxDQUFDLE1BQU0sQ0FBQyxZQUFZLEtBQUssRUFBRSxDQUFDLENBQUMsQ0FBQztJQUMzRCxDQUFDO0lBRU0sbUNBQW1DLENBQUMsV0FBNkIsRUFBRSxVQUFrQjtRQUN4RixPQUFPLElBQUksQ0FBQyxJQUFJO2FBQ1gsR0FBRyxDQUFDLElBQUksQ0FBQyxNQUFNLENBQUMsV0FBVyxVQUFVLEVBQUUsRUFBRSxTQUFTLENBQUMsNEJBQTRCLENBQUMsV0FBVyxDQUFDLENBQUMsQ0FBQzthQUM5RixJQUFJLENBQUMsR0FBRyxDQUFDLFFBQVEsQ0FBQyxFQUFFLENBQUMsSUFBSSxDQUFDLHFCQUFxQixDQUFDLFFBQVEsRUFBRSx3QkFBd0IsQ0FBQyxDQUFDLENBQUMsQ0FBQztJQUMvRixDQUFDO0lBRU0sb0NBQW9DLENBQUMsVUFBa0IsRUFBRSxLQUFhLEVBQUUsTUFBYztRQUN6RixPQUFPLElBQUksQ0FBQyxJQUFJLENBQUMsR0FBRyxDQUFDLElBQUksQ0FBQyxNQUFNLENBQUMsV0FBVyxVQUFVLFdBQVcsS0FBSyxVQUFVLE1BQU0sRUFBRSxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQzNGLEdBQUcsQ0FBQyxRQUFRLENBQUMsRUFBRSxDQUNYLElBQUksQ0FBQyxxQkFBcUIsQ0FBQyxRQUFRLEVBQUUsa0JBQWtCLENBQUMsQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDLEVBQUU7WUFDN0QsQ0FBQyxDQUFDLFFBQVEsR0FBRyxDQUFDLENBQUMsU0FBUyxFQUFFLENBQUMsS0FBSyxDQUFDLEdBQUcsR0FBRyxHQUFHLENBQUMsQ0FBQyxXQUFXLEVBQUUsQ0FBQyxJQUFJLENBQUMsQ0FBQztZQUNoRSxPQUFPLENBQUMsQ0FBQztRQUNiLENBQUMsQ0FBQyxDQUNMLEVBQ0QsR0FBRyxDQUFDLEtBQUssQ0FBQyxFQUFFO1lBQ1IsSUFBSSxLQUFLLENBQUMsTUFBTSxHQUFHLENBQUMsRUFBRTtnQkFDbEIsT0FBTyxLQUFLLENBQUMsQ0FBQyxDQUFDLENBQUM7YUFDbkI7WUFDRCxNQUFNLElBQUksZ0JBQWdCLENBQUMsbUJBQW1CLEtBQUssUUFBUSxVQUFVLFlBQVksTUFBTSxnQkFBZ0IsQ0FBQyxDQUFDO1FBQzdHLENBQUMsQ0FBQyxDQUNMLENBQUM7SUFDTixDQUFDO0lBRU0sb0NBQW9DLENBQUMsV0FBNkIsRUFBRSxVQUFrQjtRQUN6RixPQUFPLElBQUksQ0FBQyxJQUFJLENBQUMsR0FBRyxDQUFTLElBQUksQ0FBQyxNQUFNLENBQUMsV0FBVyxVQUFVLFFBQVEsRUFBRSxTQUFTLENBQUMsNEJBQTRCLENBQUMsV0FBVyxDQUFDLENBQUMsQ0FBQyxDQUFDO0lBQ2xJLENBQUM7OEdBdkRRLDJCQUEyQjtrSEFBM0IsMkJBQTJCOzsyRkFBM0IsMkJBQTJCO2tCQUR2QyxVQUFVIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtJbmplY3RhYmxlLCBpbmplY3R9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuXG5pbXBvcnQge09ic2VydmFibGV9IGZyb20gJ3J4anMnO1xuaW1wb3J0IHttYXB9IGZyb20gJ3J4anMvb3BlcmF0b3JzJztcblxuaW1wb3J0IHtBTW5nQmFzZUFwaVNlcnZpY2UsIElkVHlwZSwgTWVkaXVzUXVlcnlQYXJhbSwgTW5nQ29uZmlndXJhdGlvblNlcnZpY2UsIE1uZ0Vycm9ySW50ZXJuYWx9IGZyb20gJ0BtZWRpdXNpbmMvbW5nLWNvbW1vbnMnO1xuXG5pbXBvcnQge01uZ1JldkVudGl0eVdpdGhJZH0gZnJvbSAnLi4vLi4vbW9kZWxzL3JldkVudGl0eVdpdGhJZC5tb2RlbCc7XG5pbXBvcnQge01OR19BVURJVF9NT0RVTEVfQ09ORklHX0lUfSBmcm9tICcuLi8uLi9zZXJ2aWNlL21vZHVsZS1jb25maWcudG9rZW4nO1xuaW1wb3J0IHtBdWRpdFV0aWx9IGZyb20gJy4uLy4uL3V0aWxzL2F1ZGl0LnV0aWwnO1xuaW1wb3J0IHtNbmdSZXZFbnRpdHlXaXRoQ2hhbmdlc0R0b30gZnJvbSAnLi4vbW9kZWxzL3JldkVudGl0eVdpdGhDaGFuZ2VzRHRvJztcbmltcG9ydCB7TW5nUmV2RW50aXR5V2l0aFN0YXRlRHRvfSBmcm9tICcuLi9tb2RlbHMvcmV2RW50aXR5V2l0aFN0YXRlRHRvJztcblxuQEluamVjdGFibGUoKVxuZXhwb3J0IGNsYXNzIE1uZ0F1ZGl0UmV2aXNpb25zQXBpU2VydmljZSBleHRlbmRzIEFNbmdCYXNlQXBpU2VydmljZSB7XG4gICAgcHJvdGVjdGVkIHJlYWRvbmx5IGNvbmZpZ1NlcnZpY2U6IE1uZ0NvbmZpZ3VyYXRpb25TZXJ2aWNlO1xuXG4gICAgcHJvdGVjdGVkIHJlYWRvbmx5IG1vZHVsZUNvbmZpZyA9IGluamVjdChNTkdfQVVESVRfTU9EVUxFX0NPTkZJR19JVCk7XG5cbiAgICBjb25zdHJ1Y3RvcigpIHtcbiAgICAgICAgc3VwZXIoKTtcbiAgICAgICAgdGhpcy5jb25maWdTZXJ2aWNlID0gTW5nQ29uZmlndXJhdGlvblNlcnZpY2UuZ2V0KCk7XG4gICAgfVxuXG4gICAgcHJvdGVjdGVkIGdldFNlcnZpY2VCYXNlUGF0aCgpOiBzdHJpbmcgfCBudWxsIHtcbiAgICAgICAgcmV0dXJuIHRoaXMubW9kdWxlQ29uZmlnLmFwaVNlcnZpY2VCYXNlUGF0aCA/PyAnJztcbiAgICB9XG5cbiAgICBwcm90ZWN0ZWQgZ2V0QmFzZVBhdGgoKTogc3RyaW5nIHtcbiAgICAgICAgcmV0dXJuIGAke3RoaXMuY29uZmlnU2VydmljZS5nZXRDb25maWdWYWx1ZSh0aGlzLm1vZHVsZUNvbmZpZy5hcGlCYXNlUGF0aENvbmZpZ0tleSl9YDtcbiAgICB9XG5cbiAgICBwdWJsaWMgZ2V0UmV2aXNpb25MaXN0KHF1ZXJ5UGFyYW1zOiBNZWRpdXNRdWVyeVBhcmFtKTogT2JzZXJ2YWJsZTxBcnJheTx7W2tleTogc3RyaW5nXTogdW5rbm93bn0+PiB7XG4gICAgICAgIHJldHVybiB0aGlzLmh0dHAuZ2V0PEFycmF5PHtba2V5OiBzdHJpbmddOiB1bmtub3dufT4+KHRoaXMuZ2V0VXJsKEF1ZGl0VXRpbC5hcHBlbmRNZWRpdXNRdWVyeVBhcmFtc1RvVXJsKHF1ZXJ5UGFyYW1zKSkpO1xuICAgIH1cblxuICAgIHB1YmxpYyBnZXRSZXZpc2lvbkNvdW50KHF1ZXJ5UGFyYW1zOiBNZWRpdXNRdWVyeVBhcmFtKTogT2JzZXJ2YWJsZTxudW1iZXI+IHtcbiAgICAgICAgcmV0dXJuIHRoaXMuaHR0cC5nZXQ8bnVtYmVyPih0aGlzLmdldFVybCgnL2NvdW50JywgQXVkaXRVdGlsLmFwcGVuZE1lZGl1c1F1ZXJ5UGFyYW1zVG9VcmwocXVlcnlQYXJhbXMpKSk7XG4gICAgfVxuXG4gICAgcHVibGljIGdldEFsbENoYW5nZXNGb3JSZXZpc2lvbihyZXZJZDogSWRUeXBlKTogT2JzZXJ2YWJsZTxNbmdSZXZFbnRpdHlXaXRoQ2hhbmdlc0R0bz4ge1xuICAgICAgICByZXR1cm4gdGhpcy5odHRwLmdldCh0aGlzLmdldFVybChgL2NoYW5nZXMvJHtyZXZJZH1gKSk7XG4gICAgfVxuXG4gICAgcHVibGljIGxpc3RSZXZpc2lvbnNXaXRoU3RhdGVGb3JFbnRpdHlUeXBlKHF1ZXJ5UGFyYW1zOiBNZWRpdXNRdWVyeVBhcmFtLCBlbnRpdHlUeXBlOiBzdHJpbmcpOiBPYnNlcnZhYmxlPEFycmF5PE1uZ1JldkVudGl0eVdpdGhTdGF0ZUR0bz4+IHtcbiAgICAgICAgcmV0dXJuIHRoaXMuaHR0cFxuICAgICAgICAgICAgLmdldCh0aGlzLmdldFVybChgL3N0YXRlcy8ke2VudGl0eVR5cGV9YCwgQXVkaXRVdGlsLmFwcGVuZE1lZGl1c1F1ZXJ5UGFyYW1zVG9VcmwocXVlcnlQYXJhbXMpKSlcbiAgICAgICAgICAgIC5waXBlKG1hcChyZXNwb25zZSA9PiB0aGlzLmRlc2VyaWFsaXplQ2xhc3NBcnJheShyZXNwb25zZSwgTW5nUmV2RW50aXR5V2l0aFN0YXRlRHRvKSkpO1xuICAgIH1cblxuICAgIHB1YmxpYyBmZXRjaFJldmlzaW9uc1dpdGhTdGF0ZUZvckVudGl0eVR5cGUoZW50aXR5VHlwZTogc3RyaW5nLCByZXZJZDogSWRUeXBlLCBpdGVtSWQ6IElkVHlwZSk6IE9ic2VydmFibGU8TW5nUmV2RW50aXR5V2l0aElkPiB7XG4gICAgICAgIHJldHVybiB0aGlzLmh0dHAuZ2V0KHRoaXMuZ2V0VXJsKGAvc3RhdGVzLyR7ZW50aXR5VHlwZX0/cmV2PWVxOiR7cmV2SWR9JmlkPWVxOiR7aXRlbUlkfWApKS5waXBlKFxuICAgICAgICAgICAgbWFwKHJlc3BvbnNlID0+XG4gICAgICAgICAgICAgICAgdGhpcy5kZXNlcmlhbGl6ZUNsYXNzQXJyYXkocmVzcG9uc2UsIE1uZ1JldkVudGl0eVdpdGhJZCkubWFwKGkgPT4ge1xuICAgICAgICAgICAgICAgICAgICBpLm1lcmdlZElkID0gaS5yZXZFbnRpdHk/LlsncmV2J10gKyAnXycgKyBpLmVudGl0eVN0YXRlPy5bJ2lkJ107XG4gICAgICAgICAgICAgICAgICAgIHJldHVybiBpO1xuICAgICAgICAgICAgICAgIH0pXG4gICAgICAgICAgICApLFxuICAgICAgICAgICAgbWFwKGl0ZW1zID0+IHtcbiAgICAgICAgICAgICAgICBpZiAoaXRlbXMubGVuZ3RoID4gMCkge1xuICAgICAgICAgICAgICAgICAgICByZXR1cm4gaXRlbXNbMF07XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIHRocm93IG5ldyBNbmdFcnJvckludGVybmFsKGBFbnRpdHkgcmV2aXNpb24gJHtyZXZJZH0gZm9yICR7ZW50aXR5VHlwZX0gd2l0aCBpZCAke2l0ZW1JZH0gd2FzIG5vdCBmb3VuZGApO1xuICAgICAgICAgICAgfSlcbiAgICAgICAgKTtcbiAgICB9XG5cbiAgICBwdWJsaWMgY291bnRSZXZpc2lvbnNXaXRoU3RhdGVGb3JFbnRpdHlUeXBlKHF1ZXJ5UGFyYW1zOiBNZWRpdXNRdWVyeVBhcmFtLCBlbnRpdHlUeXBlOiBzdHJpbmcpOiBPYnNlcnZhYmxlPG51bWJlcj4ge1xuICAgICAgICByZXR1cm4gdGhpcy5odHRwLmdldDxudW1iZXI+KHRoaXMuZ2V0VXJsKGAvc3RhdGVzLyR7ZW50aXR5VHlwZX0vY291bnRgLCBBdWRpdFV0aWwuYXBwZW5kTWVkaXVzUXVlcnlQYXJhbXNUb1VybChxdWVyeVBhcmFtcykpKTtcbiAgICB9XG59XG4iXX0=
55
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYXVkaXQtcmV2aXNpb25zLWFwaS5zZXJ2aWNlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vc3JjL2xpYi9hcGkvc2VydmljZXMvYXVkaXQtcmV2aXNpb25zLWFwaS5zZXJ2aWNlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBQyxVQUFVLEVBQUUsTUFBTSxFQUFDLE1BQU0sZUFBZSxDQUFDO0FBR2pELE9BQU8sRUFBQyxHQUFHLEVBQUMsTUFBTSxnQkFBZ0IsQ0FBQztBQUVuQyxPQUFPLEVBQUMsa0JBQWtCLEVBQTRCLHVCQUF1QixFQUFFLGdCQUFnQixFQUFDLE1BQU0sd0JBQXdCLENBQUM7QUFFL0gsT0FBTyxFQUFDLGtCQUFrQixFQUFDLE1BQU0sb0NBQW9DLENBQUM7QUFDdEUsT0FBTyxFQUFDLDBCQUEwQixFQUFDLE1BQU0sbUNBQW1DLENBQUM7QUFDN0UsT0FBTyxFQUFDLFNBQVMsRUFBQyxNQUFNLHdCQUF3QixDQUFDO0FBRWpELE9BQU8sRUFBQyx3QkFBd0IsRUFBQyxNQUFNLGlDQUFpQyxDQUFDOztBQUd6RSxNQUFNLE9BQU8sMkJBQTRCLFNBQVEsa0JBQWtCO0lBSy9EO1FBQ0ksS0FBSyxFQUFFLENBQUM7UUFITyxpQkFBWSxHQUFHLE1BQU0sQ0FBQywwQkFBMEIsQ0FBQyxDQUFDO1FBSWpFLElBQUksQ0FBQyxhQUFhLEdBQUcsdUJBQXVCLENBQUMsR0FBRyxFQUFFLENBQUM7SUFDdkQsQ0FBQztJQUVTLGtCQUFrQjtRQUN4QixPQUFPLElBQUksQ0FBQyxZQUFZLENBQUMsa0JBQWtCLElBQUksRUFBRSxDQUFDO0lBQ3RELENBQUM7SUFFUyxXQUFXO1FBQ2pCLE9BQU8sR0FBRyxJQUFJLENBQUMsYUFBYSxDQUFDLGNBQWMsQ0FBQyxJQUFJLENBQUMsWUFBWSxDQUFDLG9CQUFvQixDQUFDLEVBQUUsQ0FBQztJQUMxRixDQUFDO0lBRU0sZUFBZSxDQUFDLFdBQTZCO1FBQ2hELE9BQU8sSUFBSSxDQUFDLElBQUksQ0FBQyxHQUFHLENBQWtDLElBQUksQ0FBQyxNQUFNLENBQUMsU0FBUyxDQUFDLDRCQUE0QixDQUFDLFdBQVcsQ0FBQyxDQUFDLENBQUMsQ0FBQztJQUM1SCxDQUFDO0lBRU0sZ0JBQWdCLENBQUMsV0FBNkI7UUFDakQsT0FBTyxJQUFJLENBQUMsSUFBSSxDQUFDLEdBQUcsQ0FBUyxJQUFJLENBQUMsTUFBTSxDQUFDLFFBQVEsRUFBRSxTQUFTLENBQUMsNEJBQTRCLENBQUMsV0FBVyxDQUFDLENBQUMsQ0FBQyxDQUFDO0lBQzdHLENBQUM7SUFFTSx3QkFBd0IsQ0FBQyxLQUFhO1FBQ3pDLE9BQU8sSUFBSSxDQUFDLElBQUksQ0FBQyxHQUFHLENBQUMsSUFBSSxDQUFDLE1BQU0sQ0FBQyxZQUFZLEtBQUssRUFBRSxDQUFDLENBQUMsQ0FBQztJQUMzRCxDQUFDO0lBRU0sbUNBQW1DLENBQUMsV0FBNkIsRUFBRSxVQUFrQjtRQUN4RixPQUFPLElBQUksQ0FBQyxJQUFJO2FBQ1gsR0FBRyxDQUFDLElBQUksQ0FBQyxNQUFNLENBQUMsV0FBVyxVQUFVLEVBQUUsRUFBRSxTQUFTLENBQUMsNEJBQTRCLENBQUMsV0FBVyxDQUFDLENBQUMsQ0FBQzthQUM5RixJQUFJLENBQUMsR0FBRyxDQUFDLFFBQVEsQ0FBQyxFQUFFLENBQUMsSUFBSSxDQUFDLHFCQUFxQixDQUFDLFFBQVEsRUFBRSx3QkFBd0IsQ0FBQyxDQUFDLENBQUMsQ0FBQztJQUMvRixDQUFDO0lBRU0sb0NBQW9DLENBQUMsVUFBa0IsRUFBRSxLQUFhLEVBQUUsTUFBYztRQUN6RixPQUFPLElBQUksQ0FBQyxJQUFJLENBQUMsR0FBRyxDQUFDLElBQUksQ0FBQyxNQUFNLENBQUMsV0FBVyxVQUFVLFdBQVcsS0FBSyxVQUFVLE1BQU0sRUFBRSxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQzNGLEdBQUcsQ0FBQyxRQUFRLENBQUMsRUFBRSxDQUNYLElBQUksQ0FBQyxxQkFBcUIsQ0FBQyxRQUFRLEVBQUUsa0JBQWtCLENBQUMsQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDLEVBQUU7WUFDN0QsQ0FBQyxDQUFDLFFBQVEsR0FBRyxDQUFDLENBQUMsU0FBUyxFQUFFLENBQUMsS0FBSyxDQUFDLEdBQUcsR0FBRyxHQUFHLENBQUMsQ0FBQyxXQUFXLEVBQUUsQ0FBQyxJQUFJLENBQUMsQ0FBQztZQUNoRSxPQUFPLENBQUMsQ0FBQztRQUNiLENBQUMsQ0FBQyxDQUNMLEVBQ0QsR0FBRyxDQUFDLEtBQUssQ0FBQyxFQUFFO1lBQ1IsSUFBSSxLQUFLLENBQUMsTUFBTSxHQUFHLENBQUMsRUFBRTtnQkFDbEIsT0FBTyxLQUFLLENBQUMsQ0FBQyxDQUFDLENBQUM7YUFDbkI7WUFDRCxNQUFNLElBQUksZ0JBQWdCLENBQUMsbUJBQW1CLEtBQUssUUFBUSxVQUFVLFlBQVksTUFBTSxnQkFBZ0IsQ0FBQyxDQUFDO1FBQzdHLENBQUMsQ0FBQyxDQUNMLENBQUM7SUFDTixDQUFDO0lBRU0sb0NBQW9DLENBQUMsV0FBNkIsRUFBRSxVQUFrQjtRQUN6RixPQUFPLElBQUksQ0FBQyxJQUFJLENBQUMsR0FBRyxDQUFTLElBQUksQ0FBQyxNQUFNLENBQUMsV0FBVyxVQUFVLFFBQVEsRUFBRSxTQUFTLENBQUMsNEJBQTRCLENBQUMsV0FBVyxDQUFDLENBQUMsQ0FBQyxDQUFDO0lBQ2xJLENBQUM7OEdBdkRRLDJCQUEyQjtrSEFBM0IsMkJBQTJCOzsyRkFBM0IsMkJBQTJCO2tCQUR2QyxVQUFVIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtJbmplY3RhYmxlLCBpbmplY3R9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuXG5pbXBvcnQge09ic2VydmFibGV9IGZyb20gJ3J4anMnO1xuaW1wb3J0IHttYXB9IGZyb20gJ3J4anMvb3BlcmF0b3JzJztcblxuaW1wb3J0IHtBTW5nQmFzZUFwaVNlcnZpY2UsIElkVHlwZSwgTWVkaXVzUXVlcnlQYXJhbSwgTW5nQ29uZmlndXJhdGlvblNlcnZpY2UsIE1uZ0ludGVybmFsRXJyb3J9IGZyb20gJ0BtZWRpdXNpbmMvbW5nLWNvbW1vbnMnO1xuXG5pbXBvcnQge01uZ1JldkVudGl0eVdpdGhJZH0gZnJvbSAnLi4vLi4vbW9kZWxzL3JldkVudGl0eVdpdGhJZC5tb2RlbCc7XG5pbXBvcnQge01OR19BVURJVF9NT0RVTEVfQ09ORklHX0lUfSBmcm9tICcuLi8uLi9zZXJ2aWNlL21vZHVsZS1jb25maWcudG9rZW4nO1xuaW1wb3J0IHtBdWRpdFV0aWx9IGZyb20gJy4uLy4uL3V0aWxzL2F1ZGl0LnV0aWwnO1xuaW1wb3J0IHtNbmdSZXZFbnRpdHlXaXRoQ2hhbmdlc0R0b30gZnJvbSAnLi4vbW9kZWxzL3JldkVudGl0eVdpdGhDaGFuZ2VzRHRvJztcbmltcG9ydCB7TW5nUmV2RW50aXR5V2l0aFN0YXRlRHRvfSBmcm9tICcuLi9tb2RlbHMvcmV2RW50aXR5V2l0aFN0YXRlRHRvJztcblxuQEluamVjdGFibGUoKVxuZXhwb3J0IGNsYXNzIE1uZ0F1ZGl0UmV2aXNpb25zQXBpU2VydmljZSBleHRlbmRzIEFNbmdCYXNlQXBpU2VydmljZSB7XG4gICAgcHJvdGVjdGVkIHJlYWRvbmx5IGNvbmZpZ1NlcnZpY2U6IE1uZ0NvbmZpZ3VyYXRpb25TZXJ2aWNlO1xuXG4gICAgcHJvdGVjdGVkIHJlYWRvbmx5IG1vZHVsZUNvbmZpZyA9IGluamVjdChNTkdfQVVESVRfTU9EVUxFX0NPTkZJR19JVCk7XG5cbiAgICBjb25zdHJ1Y3RvcigpIHtcbiAgICAgICAgc3VwZXIoKTtcbiAgICAgICAgdGhpcy5jb25maWdTZXJ2aWNlID0gTW5nQ29uZmlndXJhdGlvblNlcnZpY2UuZ2V0KCk7XG4gICAgfVxuXG4gICAgcHJvdGVjdGVkIGdldFNlcnZpY2VCYXNlUGF0aCgpOiBzdHJpbmcgfCBudWxsIHtcbiAgICAgICAgcmV0dXJuIHRoaXMubW9kdWxlQ29uZmlnLmFwaVNlcnZpY2VCYXNlUGF0aCA/PyAnJztcbiAgICB9XG5cbiAgICBwcm90ZWN0ZWQgZ2V0QmFzZVBhdGgoKTogc3RyaW5nIHtcbiAgICAgICAgcmV0dXJuIGAke3RoaXMuY29uZmlnU2VydmljZS5nZXRDb25maWdWYWx1ZSh0aGlzLm1vZHVsZUNvbmZpZy5hcGlCYXNlUGF0aENvbmZpZ0tleSl9YDtcbiAgICB9XG5cbiAgICBwdWJsaWMgZ2V0UmV2aXNpb25MaXN0KHF1ZXJ5UGFyYW1zOiBNZWRpdXNRdWVyeVBhcmFtKTogT2JzZXJ2YWJsZTxBcnJheTx7W2tleTogc3RyaW5nXTogdW5rbm93bn0+PiB7XG4gICAgICAgIHJldHVybiB0aGlzLmh0dHAuZ2V0PEFycmF5PHtba2V5OiBzdHJpbmddOiB1bmtub3dufT4+KHRoaXMuZ2V0VXJsKEF1ZGl0VXRpbC5hcHBlbmRNZWRpdXNRdWVyeVBhcmFtc1RvVXJsKHF1ZXJ5UGFyYW1zKSkpO1xuICAgIH1cblxuICAgIHB1YmxpYyBnZXRSZXZpc2lvbkNvdW50KHF1ZXJ5UGFyYW1zOiBNZWRpdXNRdWVyeVBhcmFtKTogT2JzZXJ2YWJsZTxudW1iZXI+IHtcbiAgICAgICAgcmV0dXJuIHRoaXMuaHR0cC5nZXQ8bnVtYmVyPih0aGlzLmdldFVybCgnL2NvdW50JywgQXVkaXRVdGlsLmFwcGVuZE1lZGl1c1F1ZXJ5UGFyYW1zVG9VcmwocXVlcnlQYXJhbXMpKSk7XG4gICAgfVxuXG4gICAgcHVibGljIGdldEFsbENoYW5nZXNGb3JSZXZpc2lvbihyZXZJZDogSWRUeXBlKTogT2JzZXJ2YWJsZTxNbmdSZXZFbnRpdHlXaXRoQ2hhbmdlc0R0bz4ge1xuICAgICAgICByZXR1cm4gdGhpcy5odHRwLmdldCh0aGlzLmdldFVybChgL2NoYW5nZXMvJHtyZXZJZH1gKSk7XG4gICAgfVxuXG4gICAgcHVibGljIGxpc3RSZXZpc2lvbnNXaXRoU3RhdGVGb3JFbnRpdHlUeXBlKHF1ZXJ5UGFyYW1zOiBNZWRpdXNRdWVyeVBhcmFtLCBlbnRpdHlUeXBlOiBzdHJpbmcpOiBPYnNlcnZhYmxlPEFycmF5PE1uZ1JldkVudGl0eVdpdGhTdGF0ZUR0bz4+IHtcbiAgICAgICAgcmV0dXJuIHRoaXMuaHR0cFxuICAgICAgICAgICAgLmdldCh0aGlzLmdldFVybChgL3N0YXRlcy8ke2VudGl0eVR5cGV9YCwgQXVkaXRVdGlsLmFwcGVuZE1lZGl1c1F1ZXJ5UGFyYW1zVG9VcmwocXVlcnlQYXJhbXMpKSlcbiAgICAgICAgICAgIC5waXBlKG1hcChyZXNwb25zZSA9PiB0aGlzLmRlc2VyaWFsaXplQ2xhc3NBcnJheShyZXNwb25zZSwgTW5nUmV2RW50aXR5V2l0aFN0YXRlRHRvKSkpO1xuICAgIH1cblxuICAgIHB1YmxpYyBmZXRjaFJldmlzaW9uc1dpdGhTdGF0ZUZvckVudGl0eVR5cGUoZW50aXR5VHlwZTogc3RyaW5nLCByZXZJZDogSWRUeXBlLCBpdGVtSWQ6IElkVHlwZSk6IE9ic2VydmFibGU8TW5nUmV2RW50aXR5V2l0aElkPiB7XG4gICAgICAgIHJldHVybiB0aGlzLmh0dHAuZ2V0KHRoaXMuZ2V0VXJsKGAvc3RhdGVzLyR7ZW50aXR5VHlwZX0/cmV2PWVxOiR7cmV2SWR9JmlkPWVxOiR7aXRlbUlkfWApKS5waXBlKFxuICAgICAgICAgICAgbWFwKHJlc3BvbnNlID0+XG4gICAgICAgICAgICAgICAgdGhpcy5kZXNlcmlhbGl6ZUNsYXNzQXJyYXkocmVzcG9uc2UsIE1uZ1JldkVudGl0eVdpdGhJZCkubWFwKGkgPT4ge1xuICAgICAgICAgICAgICAgICAgICBpLm1lcmdlZElkID0gaS5yZXZFbnRpdHk/LlsncmV2J10gKyAnXycgKyBpLmVudGl0eVN0YXRlPy5bJ2lkJ107XG4gICAgICAgICAgICAgICAgICAgIHJldHVybiBpO1xuICAgICAgICAgICAgICAgIH0pXG4gICAgICAgICAgICApLFxuICAgICAgICAgICAgbWFwKGl0ZW1zID0+IHtcbiAgICAgICAgICAgICAgICBpZiAoaXRlbXMubGVuZ3RoID4gMCkge1xuICAgICAgICAgICAgICAgICAgICByZXR1cm4gaXRlbXNbMF07XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIHRocm93IG5ldyBNbmdJbnRlcm5hbEVycm9yKGBFbnRpdHkgcmV2aXNpb24gJHtyZXZJZH0gZm9yICR7ZW50aXR5VHlwZX0gd2l0aCBpZCAke2l0ZW1JZH0gd2FzIG5vdCBmb3VuZGApO1xuICAgICAgICAgICAgfSlcbiAgICAgICAgKTtcbiAgICB9XG5cbiAgICBwdWJsaWMgY291bnRSZXZpc2lvbnNXaXRoU3RhdGVGb3JFbnRpdHlUeXBlKHF1ZXJ5UGFyYW1zOiBNZWRpdXNRdWVyeVBhcmFtLCBlbnRpdHlUeXBlOiBzdHJpbmcpOiBPYnNlcnZhYmxlPG51bWJlcj4ge1xuICAgICAgICByZXR1cm4gdGhpcy5odHRwLmdldDxudW1iZXI+KHRoaXMuZ2V0VXJsKGAvc3RhdGVzLyR7ZW50aXR5VHlwZX0vY291bnRgLCBBdWRpdFV0aWwuYXBwZW5kTWVkaXVzUXVlcnlQYXJhbXNUb1VybChxdWVyeVBhcmFtcykpKTtcbiAgICB9XG59XG4iXX0=
@@ -5,9 +5,13 @@ import { MngAuditPageComponent } from './components/pages/audit/audit-page.compo
5
5
  import { MngAuditEntityRevisionsPageComponent } from './components/pages/entity-revisions/audit-entity-revisions-page.component';
6
6
  import { MngAuditRevisionsPageComponent } from './components/pages/revisions/audit-revisions-page.component';
7
7
  import { MNG_AUDIT_MODULE_CONFIG_IT } from './service/module-config.token';
8
- export function provideMngAuditRoutes(config) {
9
- return RoutesBuilder.create()
10
- .addRouteBuilder(RouteBuilder.create('', MngAuditPageComponent)
8
+ /**
9
+ * Provides routes for the mng-commons-audit functionalities.
10
+ * @param config Module config for audit section.
11
+ * @param routeConfig Optionally provide route configs.
12
+ */
13
+ export function provideMngAuditRoutes(config, routeConfig) {
14
+ const routeBuilder = RouteBuilder.create('', MngAuditPageComponent)
11
15
  .withProvider(MngAuditService)
12
16
  .withProvider(MngAuditService)
13
17
  .withProvider(MngAuditRevisionsApiService)
@@ -15,14 +19,35 @@ export function provideMngAuditRoutes(config) {
15
19
  provide: MNG_AUDIT_MODULE_CONFIG_IT,
16
20
  useValue: config
17
21
  })
18
- .addChildBuilder(RouteBuilder.createRedirect('', 'revisions', 'full'))
19
- .addChildBuilder(TableviewRouteBuilder.fromComponent('revisions', MngAuditRevisionsPageComponent)
20
- .withMenuItem('pi pi-history', 'pages.revisions.title')
21
- .withTitle('pages.revisions.title'))
22
- .addChildBuilder(RouteBuilder.create('entity-revisions', MngAuditEntityRevisionsPageComponent)
23
- .withMenuItem('pi pi-history', 'pages.entityRevisions.title')
24
- .withTitle('pages.entityRevisions.title'))
25
- .addChildBuilder(TableviewRouteBuilder.fromComponent('entity-revisions/:entityClass', MngAuditEntityRevisionsPageComponent).withTitle('pages.entityRevisions.title')))
26
- .build();
22
+ .addChildBuilder(RouteBuilder.createRedirect('', routeConfig?.defaultRedirect ?? 'revisions', 'full'));
23
+ if (routeConfig?.preRevisionRoutes?.length) {
24
+ routeConfig.preRevisionRoutes.forEach(r => routeBuilder.addChildBuilder(r));
25
+ }
26
+ const revisionsRouteBuilder = TableviewRouteBuilder.fromComponent('revisions', MngAuditRevisionsPageComponent)
27
+ .withTitle('pages.revisions.title')
28
+ .withAdd(false)
29
+ .withDelete(false)
30
+ .withEdit(false);
31
+ if (routeConfig?.revisionsMenuItem) {
32
+ revisionsRouteBuilder.withMngMenuItem(routeConfig.revisionsMenuItem);
33
+ }
34
+ else {
35
+ revisionsRouteBuilder.withMenuItem('pi pi-history', 'pages.revisions.title');
36
+ }
37
+ const entityRevisionsRouteBuilder = RouteBuilder.create('entity-revisions', MngAuditEntityRevisionsPageComponent).withTitle('pages.entityRevisions.title');
38
+ if (routeConfig?.entityRevisionsMenuItem) {
39
+ entityRevisionsRouteBuilder.withMngMenuItem(routeConfig.entityRevisionsMenuItem);
40
+ }
41
+ else {
42
+ entityRevisionsRouteBuilder.withMenuItem('pi pi-history', 'pages.entityRevisions.title');
43
+ }
44
+ routeBuilder
45
+ .addChildBuilder(revisionsRouteBuilder)
46
+ .addChildBuilder(entityRevisionsRouteBuilder)
47
+ .addChildBuilder(TableviewRouteBuilder.fromComponent('entity-revisions/:entityClass', MngAuditEntityRevisionsPageComponent).withTitle('pages.entityRevisions.title'));
48
+ if (routeConfig?.postRevisionRoutes?.length) {
49
+ routeConfig.postRevisionRoutes.forEach(r => routeBuilder.addChildBuilder(r));
50
+ }
51
+ return RoutesBuilder.create().addRouteBuilder(routeBuilder).build();
27
52
  }
28
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYXVkaXQucm91dGVzLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vc3JjL2xpYi9hdWRpdC5yb3V0ZXMudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBRUEsT0FBTyxFQUFDLFlBQVksRUFBRSxhQUFhLEVBQUUscUJBQXFCLEVBQUMsTUFBTSx3QkFBd0IsQ0FBQztBQUUxRixPQUFPLEVBQUMsMkJBQTJCLEVBQUMsTUFBTSw0Q0FBNEMsQ0FBQztBQUN2RixPQUFPLEVBQUMsZUFBZSxFQUFDLE1BQU0sOEJBQThCLENBQUM7QUFDN0QsT0FBTyxFQUFDLHFCQUFxQixFQUFDLE1BQU0sK0NBQStDLENBQUM7QUFDcEYsT0FBTyxFQUFDLG9DQUFvQyxFQUFDLE1BQU0sMkVBQTJFLENBQUM7QUFDL0gsT0FBTyxFQUFDLDhCQUE4QixFQUFDLE1BQU0sNkRBQTZELENBQUM7QUFFM0csT0FBTyxFQUFDLDBCQUEwQixFQUFDLE1BQU0sK0JBQStCLENBQUM7QUFFekUsTUFBTSxVQUFVLHFCQUFxQixDQUFDLE1BQTRCO0lBQzlELE9BQU8sYUFBYSxDQUFDLE1BQU0sRUFBRTtTQUN4QixlQUFlLENBQ1osWUFBWSxDQUFDLE1BQU0sQ0FBQyxFQUFFLEVBQUUscUJBQXFCLENBQUM7U0FDekMsWUFBWSxDQUFDLGVBQWUsQ0FBQztTQUM3QixZQUFZLENBQUMsZUFBZSxDQUFDO1NBQzdCLFlBQVksQ0FBQywyQkFBMkIsQ0FBQztTQUN6QyxZQUFZLENBQUM7UUFDVixPQUFPLEVBQUUsMEJBQTBCO1FBQ25DLFFBQVEsRUFBRSxNQUFNO0tBQ25CLENBQUM7U0FDRCxlQUFlLENBQUMsWUFBWSxDQUFDLGNBQWMsQ0FBQyxFQUFFLEVBQUUsV0FBVyxFQUFFLE1BQU0sQ0FBQyxDQUFDO1NBQ3JFLGVBQWUsQ0FDWixxQkFBcUIsQ0FBQyxhQUFhLENBQUMsV0FBVyxFQUFFLDhCQUE4QixDQUFDO1NBQzNFLFlBQVksQ0FBQyxlQUFlLEVBQUUsdUJBQXVCLENBQUM7U0FDdEQsU0FBUyxDQUFDLHVCQUF1QixDQUFDLENBQzFDO1NBQ0EsZUFBZSxDQUNaLFlBQVksQ0FBQyxNQUFNLENBQUMsa0JBQWtCLEVBQUUsb0NBQW9DLENBQUM7U0FDeEUsWUFBWSxDQUFDLGVBQWUsRUFBRSw2QkFBNkIsQ0FBQztTQUM1RCxTQUFTLENBQUMsNkJBQTZCLENBQUMsQ0FDaEQ7U0FDQSxlQUFlLENBQ1oscUJBQXFCLENBQUMsYUFBYSxDQUFDLCtCQUErQixFQUFFLG9DQUFvQyxDQUFDLENBQUMsU0FBUyxDQUFDLDZCQUE2QixDQUFDLENBQ3RKLENBQ1I7U0FDQSxLQUFLLEVBQUUsQ0FBQztBQUNqQixDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtSb3V0ZXN9IGZyb20gJ0Bhbmd1bGFyL3JvdXRlcic7XG5cbmltcG9ydCB7Um91dGVCdWlsZGVyLCBSb3V0ZXNCdWlsZGVyLCBUYWJsZXZpZXdSb3V0ZUJ1aWxkZXJ9IGZyb20gJ0BtZWRpdXNpbmMvbW5nLWNvbW1vbnMnO1xuXG5pbXBvcnQge01uZ0F1ZGl0UmV2aXNpb25zQXBpU2VydmljZX0gZnJvbSAnLi9hcGkvc2VydmljZXMvYXVkaXQtcmV2aXNpb25zLWFwaS5zZXJ2aWNlJztcbmltcG9ydCB7TW5nQXVkaXRTZXJ2aWNlfSBmcm9tICcuL2FwaS9zZXJ2aWNlcy9hdWRpdC5zZXJ2aWNlJztcbmltcG9ydCB7TW5nQXVkaXRQYWdlQ29tcG9uZW50fSBmcm9tICcuL2NvbXBvbmVudHMvcGFnZXMvYXVkaXQvYXVkaXQtcGFnZS5jb21wb25lbnQnO1xuaW1wb3J0IHtNbmdBdWRpdEVudGl0eVJldmlzaW9uc1BhZ2VDb21wb25lbnR9IGZyb20gJy4vY29tcG9uZW50cy9wYWdlcy9lbnRpdHktcmV2aXNpb25zL2F1ZGl0LWVudGl0eS1yZXZpc2lvbnMtcGFnZS5jb21wb25lbnQnO1xuaW1wb3J0IHtNbmdBdWRpdFJldmlzaW9uc1BhZ2VDb21wb25lbnR9IGZyb20gJy4vY29tcG9uZW50cy9wYWdlcy9yZXZpc2lvbnMvYXVkaXQtcmV2aXNpb25zLXBhZ2UuY29tcG9uZW50JztcbmltcG9ydCB7TW5nQXVkaXRNb2R1bGVDb25maWd9IGZyb20gJy4vbW9kZWxzL2NvbmZpZy5tb2RlbCc7XG5pbXBvcnQge01OR19BVURJVF9NT0RVTEVfQ09ORklHX0lUfSBmcm9tICcuL3NlcnZpY2UvbW9kdWxlLWNvbmZpZy50b2tlbic7XG5cbmV4cG9ydCBmdW5jdGlvbiBwcm92aWRlTW5nQXVkaXRSb3V0ZXMoY29uZmlnOiBNbmdBdWRpdE1vZHVsZUNvbmZpZyk6IFJvdXRlcyB7XG4gICAgcmV0dXJuIFJvdXRlc0J1aWxkZXIuY3JlYXRlKClcbiAgICAgICAgLmFkZFJvdXRlQnVpbGRlcihcbiAgICAgICAgICAgIFJvdXRlQnVpbGRlci5jcmVhdGUoJycsIE1uZ0F1ZGl0UGFnZUNvbXBvbmVudClcbiAgICAgICAgICAgICAgICAud2l0aFByb3ZpZGVyKE1uZ0F1ZGl0U2VydmljZSlcbiAgICAgICAgICAgICAgICAud2l0aFByb3ZpZGVyKE1uZ0F1ZGl0U2VydmljZSlcbiAgICAgICAgICAgICAgICAud2l0aFByb3ZpZGVyKE1uZ0F1ZGl0UmV2aXNpb25zQXBpU2VydmljZSlcbiAgICAgICAgICAgICAgICAud2l0aFByb3ZpZGVyKHtcbiAgICAgICAgICAgICAgICAgICAgcHJvdmlkZTogTU5HX0FVRElUX01PRFVMRV9DT05GSUdfSVQsXG4gICAgICAgICAgICAgICAgICAgIHVzZVZhbHVlOiBjb25maWdcbiAgICAgICAgICAgICAgICB9KVxuICAgICAgICAgICAgICAgIC5hZGRDaGlsZEJ1aWxkZXIoUm91dGVCdWlsZGVyLmNyZWF0ZVJlZGlyZWN0KCcnLCAncmV2aXNpb25zJywgJ2Z1bGwnKSlcbiAgICAgICAgICAgICAgICAuYWRkQ2hpbGRCdWlsZGVyKFxuICAgICAgICAgICAgICAgICAgICBUYWJsZXZpZXdSb3V0ZUJ1aWxkZXIuZnJvbUNvbXBvbmVudCgncmV2aXNpb25zJywgTW5nQXVkaXRSZXZpc2lvbnNQYWdlQ29tcG9uZW50KVxuICAgICAgICAgICAgICAgICAgICAgICAgLndpdGhNZW51SXRlbSgncGkgcGktaGlzdG9yeScsICdwYWdlcy5yZXZpc2lvbnMudGl0bGUnKVxuICAgICAgICAgICAgICAgICAgICAgICAgLndpdGhUaXRsZSgncGFnZXMucmV2aXNpb25zLnRpdGxlJylcbiAgICAgICAgICAgICAgICApXG4gICAgICAgICAgICAgICAgLmFkZENoaWxkQnVpbGRlcihcbiAgICAgICAgICAgICAgICAgICAgUm91dGVCdWlsZGVyLmNyZWF0ZSgnZW50aXR5LXJldmlzaW9ucycsIE1uZ0F1ZGl0RW50aXR5UmV2aXNpb25zUGFnZUNvbXBvbmVudClcbiAgICAgICAgICAgICAgICAgICAgICAgIC53aXRoTWVudUl0ZW0oJ3BpIHBpLWhpc3RvcnknLCAncGFnZXMuZW50aXR5UmV2aXNpb25zLnRpdGxlJylcbiAgICAgICAgICAgICAgICAgICAgICAgIC53aXRoVGl0bGUoJ3BhZ2VzLmVudGl0eVJldmlzaW9ucy50aXRsZScpXG4gICAgICAgICAgICAgICAgKVxuICAgICAgICAgICAgICAgIC5hZGRDaGlsZEJ1aWxkZXIoXG4gICAgICAgICAgICAgICAgICAgIFRhYmxldmlld1JvdXRlQnVpbGRlci5mcm9tQ29tcG9uZW50KCdlbnRpdHktcmV2aXNpb25zLzplbnRpdHlDbGFzcycsIE1uZ0F1ZGl0RW50aXR5UmV2aXNpb25zUGFnZUNvbXBvbmVudCkud2l0aFRpdGxlKCdwYWdlcy5lbnRpdHlSZXZpc2lvbnMudGl0bGUnKVxuICAgICAgICAgICAgICAgIClcbiAgICAgICAgKVxuICAgICAgICAuYnVpbGQoKTtcbn1cbiJdfQ==
53
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYXVkaXQucm91dGVzLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vc3JjL2xpYi9hdWRpdC5yb3V0ZXMudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBRUEsT0FBTyxFQUFjLFlBQVksRUFBRSxhQUFhLEVBQUUscUJBQXFCLEVBQUMsTUFBTSx3QkFBd0IsQ0FBQztBQUV2RyxPQUFPLEVBQUMsMkJBQTJCLEVBQUMsTUFBTSw0Q0FBNEMsQ0FBQztBQUN2RixPQUFPLEVBQUMsZUFBZSxFQUFDLE1BQU0sOEJBQThCLENBQUM7QUFDN0QsT0FBTyxFQUFDLHFCQUFxQixFQUFDLE1BQU0sK0NBQStDLENBQUM7QUFDcEYsT0FBTyxFQUFDLG9DQUFvQyxFQUFDLE1BQU0sMkVBQTJFLENBQUM7QUFDL0gsT0FBTyxFQUFDLDhCQUE4QixFQUFDLE1BQU0sNkRBQTZELENBQUM7QUFFM0csT0FBTyxFQUFDLDBCQUEwQixFQUFDLE1BQU0sK0JBQStCLENBQUM7QUFFekU7Ozs7R0FJRztBQUNILE1BQU0sVUFBVSxxQkFBcUIsQ0FDakMsTUFBNEIsRUFDNUIsV0FNQztJQUVELE1BQU0sWUFBWSxHQUFHLFlBQVksQ0FBQyxNQUFNLENBQUMsRUFBRSxFQUFFLHFCQUFxQixDQUFDO1NBQzlELFlBQVksQ0FBQyxlQUFlLENBQUM7U0FDN0IsWUFBWSxDQUFDLGVBQWUsQ0FBQztTQUM3QixZQUFZLENBQUMsMkJBQTJCLENBQUM7U0FDekMsWUFBWSxDQUFDO1FBQ1YsT0FBTyxFQUFFLDBCQUEwQjtRQUNuQyxRQUFRLEVBQUUsTUFBTTtLQUNuQixDQUFDO1NBQ0QsZUFBZSxDQUFDLFlBQVksQ0FBQyxjQUFjLENBQUMsRUFBRSxFQUFFLFdBQVcsRUFBRSxlQUFlLElBQUksV0FBVyxFQUFFLE1BQU0sQ0FBQyxDQUFDLENBQUM7SUFFM0csSUFBSSxXQUFXLEVBQUUsaUJBQWlCLEVBQUUsTUFBTSxFQUFFO1FBQ3hDLFdBQVcsQ0FBQyxpQkFBaUIsQ0FBQyxPQUFPLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxZQUFZLENBQUMsZUFBZSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUM7S0FDL0U7SUFFRCxNQUFNLHFCQUFxQixHQUFHLHFCQUFxQixDQUFDLGFBQWEsQ0FBQyxXQUFXLEVBQUUsOEJBQThCLENBQUM7U0FDekcsU0FBUyxDQUFDLHVCQUF1QixDQUFDO1NBQ2xDLE9BQU8sQ0FBQyxLQUFLLENBQUM7U0FDZCxVQUFVLENBQUMsS0FBSyxDQUFDO1NBQ2pCLFFBQVEsQ0FBQyxLQUFLLENBQUMsQ0FBQztJQUNyQixJQUFJLFdBQVcsRUFBRSxpQkFBaUIsRUFBRTtRQUNoQyxxQkFBcUIsQ0FBQyxlQUFlLENBQUMsV0FBVyxDQUFDLGlCQUFpQixDQUFDLENBQUM7S0FDeEU7U0FBTTtRQUNILHFCQUFxQixDQUFDLFlBQVksQ0FBQyxlQUFlLEVBQUUsdUJBQXVCLENBQUMsQ0FBQztLQUNoRjtJQUVELE1BQU0sMkJBQTJCLEdBQUcsWUFBWSxDQUFDLE1BQU0sQ0FBQyxrQkFBa0IsRUFBRSxvQ0FBb0MsQ0FBQyxDQUFDLFNBQVMsQ0FBQyw2QkFBNkIsQ0FBQyxDQUFDO0lBQzNKLElBQUksV0FBVyxFQUFFLHVCQUF1QixFQUFFO1FBQ3RDLDJCQUEyQixDQUFDLGVBQWUsQ0FBQyxXQUFXLENBQUMsdUJBQXVCLENBQUMsQ0FBQztLQUNwRjtTQUFNO1FBQ0gsMkJBQTJCLENBQUMsWUFBWSxDQUFDLGVBQWUsRUFBRSw2QkFBNkIsQ0FBQyxDQUFDO0tBQzVGO0lBRUQsWUFBWTtTQUNQLGVBQWUsQ0FBQyxxQkFBcUIsQ0FBQztTQUN0QyxlQUFlLENBQUMsMkJBQTJCLENBQUM7U0FDNUMsZUFBZSxDQUFDLHFCQUFxQixDQUFDLGFBQWEsQ0FBQywrQkFBK0IsRUFBRSxvQ0FBb0MsQ0FBQyxDQUFDLFNBQVMsQ0FBQyw2QkFBNkIsQ0FBQyxDQUFDLENBQUM7SUFFMUssSUFBSSxXQUFXLEVBQUUsa0JBQWtCLEVBQUUsTUFBTSxFQUFFO1FBQ3pDLFdBQVcsQ0FBQyxrQkFBa0IsQ0FBQyxPQUFPLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxZQUFZLENBQUMsZUFBZSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUM7S0FDaEY7SUFFRCxPQUFPLGFBQWEsQ0FBQyxNQUFNLEVBQUUsQ0FBQyxlQUFlLENBQUMsWUFBWSxDQUFDLENBQUMsS0FBSyxFQUFFLENBQUM7QUFDeEUsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7Um91dGVzfSBmcm9tICdAYW5ndWxhci9yb3V0ZXInO1xuXG5pbXBvcnQge01uZ01lbnVJdGVtLCBSb3V0ZUJ1aWxkZXIsIFJvdXRlc0J1aWxkZXIsIFRhYmxldmlld1JvdXRlQnVpbGRlcn0gZnJvbSAnQG1lZGl1c2luYy9tbmctY29tbW9ucyc7XG5cbmltcG9ydCB7TW5nQXVkaXRSZXZpc2lvbnNBcGlTZXJ2aWNlfSBmcm9tICcuL2FwaS9zZXJ2aWNlcy9hdWRpdC1yZXZpc2lvbnMtYXBpLnNlcnZpY2UnO1xuaW1wb3J0IHtNbmdBdWRpdFNlcnZpY2V9IGZyb20gJy4vYXBpL3NlcnZpY2VzL2F1ZGl0LnNlcnZpY2UnO1xuaW1wb3J0IHtNbmdBdWRpdFBhZ2VDb21wb25lbnR9IGZyb20gJy4vY29tcG9uZW50cy9wYWdlcy9hdWRpdC9hdWRpdC1wYWdlLmNvbXBvbmVudCc7XG5pbXBvcnQge01uZ0F1ZGl0RW50aXR5UmV2aXNpb25zUGFnZUNvbXBvbmVudH0gZnJvbSAnLi9jb21wb25lbnRzL3BhZ2VzL2VudGl0eS1yZXZpc2lvbnMvYXVkaXQtZW50aXR5LXJldmlzaW9ucy1wYWdlLmNvbXBvbmVudCc7XG5pbXBvcnQge01uZ0F1ZGl0UmV2aXNpb25zUGFnZUNvbXBvbmVudH0gZnJvbSAnLi9jb21wb25lbnRzL3BhZ2VzL3JldmlzaW9ucy9hdWRpdC1yZXZpc2lvbnMtcGFnZS5jb21wb25lbnQnO1xuaW1wb3J0IHtNbmdBdWRpdE1vZHVsZUNvbmZpZ30gZnJvbSAnLi9tb2RlbHMvY29uZmlnLm1vZGVsJztcbmltcG9ydCB7TU5HX0FVRElUX01PRFVMRV9DT05GSUdfSVR9IGZyb20gJy4vc2VydmljZS9tb2R1bGUtY29uZmlnLnRva2VuJztcblxuLyoqXG4gKiBQcm92aWRlcyByb3V0ZXMgZm9yIHRoZSBtbmctY29tbW9ucy1hdWRpdCBmdW5jdGlvbmFsaXRpZXMuXG4gKiBAcGFyYW0gY29uZmlnIE1vZHVsZSBjb25maWcgZm9yIGF1ZGl0IHNlY3Rpb24uXG4gKiBAcGFyYW0gcm91dGVDb25maWcgT3B0aW9uYWxseSBwcm92aWRlIHJvdXRlIGNvbmZpZ3MuXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiBwcm92aWRlTW5nQXVkaXRSb3V0ZXMoXG4gICAgY29uZmlnOiBNbmdBdWRpdE1vZHVsZUNvbmZpZyxcbiAgICByb3V0ZUNvbmZpZz86IHtcbiAgICAgICAgZGVmYXVsdFJlZGlyZWN0Pzogc3RyaW5nO1xuICAgICAgICBwcmVSZXZpc2lvblJvdXRlcz86IFJvdXRlQnVpbGRlcltdO1xuICAgICAgICBwb3N0UmV2aXNpb25Sb3V0ZXM/OiBSb3V0ZUJ1aWxkZXJbXTtcbiAgICAgICAgcmV2aXNpb25zTWVudUl0ZW0/OiBNbmdNZW51SXRlbTtcbiAgICAgICAgZW50aXR5UmV2aXNpb25zTWVudUl0ZW0/OiBNbmdNZW51SXRlbTtcbiAgICB9XG4pOiBSb3V0ZXMge1xuICAgIGNvbnN0IHJvdXRlQnVpbGRlciA9IFJvdXRlQnVpbGRlci5jcmVhdGUoJycsIE1uZ0F1ZGl0UGFnZUNvbXBvbmVudClcbiAgICAgICAgLndpdGhQcm92aWRlcihNbmdBdWRpdFNlcnZpY2UpXG4gICAgICAgIC53aXRoUHJvdmlkZXIoTW5nQXVkaXRTZXJ2aWNlKVxuICAgICAgICAud2l0aFByb3ZpZGVyKE1uZ0F1ZGl0UmV2aXNpb25zQXBpU2VydmljZSlcbiAgICAgICAgLndpdGhQcm92aWRlcih7XG4gICAgICAgICAgICBwcm92aWRlOiBNTkdfQVVESVRfTU9EVUxFX0NPTkZJR19JVCxcbiAgICAgICAgICAgIHVzZVZhbHVlOiBjb25maWdcbiAgICAgICAgfSlcbiAgICAgICAgLmFkZENoaWxkQnVpbGRlcihSb3V0ZUJ1aWxkZXIuY3JlYXRlUmVkaXJlY3QoJycsIHJvdXRlQ29uZmlnPy5kZWZhdWx0UmVkaXJlY3QgPz8gJ3JldmlzaW9ucycsICdmdWxsJykpO1xuXG4gICAgaWYgKHJvdXRlQ29uZmlnPy5wcmVSZXZpc2lvblJvdXRlcz8ubGVuZ3RoKSB7XG4gICAgICAgIHJvdXRlQ29uZmlnLnByZVJldmlzaW9uUm91dGVzLmZvckVhY2gociA9PiByb3V0ZUJ1aWxkZXIuYWRkQ2hpbGRCdWlsZGVyKHIpKTtcbiAgICB9XG5cbiAgICBjb25zdCByZXZpc2lvbnNSb3V0ZUJ1aWxkZXIgPSBUYWJsZXZpZXdSb3V0ZUJ1aWxkZXIuZnJvbUNvbXBvbmVudCgncmV2aXNpb25zJywgTW5nQXVkaXRSZXZpc2lvbnNQYWdlQ29tcG9uZW50KVxuICAgICAgICAud2l0aFRpdGxlKCdwYWdlcy5yZXZpc2lvbnMudGl0bGUnKVxuICAgICAgICAud2l0aEFkZChmYWxzZSlcbiAgICAgICAgLndpdGhEZWxldGUoZmFsc2UpXG4gICAgICAgIC53aXRoRWRpdChmYWxzZSk7XG4gICAgaWYgKHJvdXRlQ29uZmlnPy5yZXZpc2lvbnNNZW51SXRlbSkge1xuICAgICAgICByZXZpc2lvbnNSb3V0ZUJ1aWxkZXIud2l0aE1uZ01lbnVJdGVtKHJvdXRlQ29uZmlnLnJldmlzaW9uc01lbnVJdGVtKTtcbiAgICB9IGVsc2Uge1xuICAgICAgICByZXZpc2lvbnNSb3V0ZUJ1aWxkZXIud2l0aE1lbnVJdGVtKCdwaSBwaS1oaXN0b3J5JywgJ3BhZ2VzLnJldmlzaW9ucy50aXRsZScpO1xuICAgIH1cblxuICAgIGNvbnN0IGVudGl0eVJldmlzaW9uc1JvdXRlQnVpbGRlciA9IFJvdXRlQnVpbGRlci5jcmVhdGUoJ2VudGl0eS1yZXZpc2lvbnMnLCBNbmdBdWRpdEVudGl0eVJldmlzaW9uc1BhZ2VDb21wb25lbnQpLndpdGhUaXRsZSgncGFnZXMuZW50aXR5UmV2aXNpb25zLnRpdGxlJyk7XG4gICAgaWYgKHJvdXRlQ29uZmlnPy5lbnRpdHlSZXZpc2lvbnNNZW51SXRlbSkge1xuICAgICAgICBlbnRpdHlSZXZpc2lvbnNSb3V0ZUJ1aWxkZXIud2l0aE1uZ01lbnVJdGVtKHJvdXRlQ29uZmlnLmVudGl0eVJldmlzaW9uc01lbnVJdGVtKTtcbiAgICB9IGVsc2Uge1xuICAgICAgICBlbnRpdHlSZXZpc2lvbnNSb3V0ZUJ1aWxkZXIud2l0aE1lbnVJdGVtKCdwaSBwaS1oaXN0b3J5JywgJ3BhZ2VzLmVudGl0eVJldmlzaW9ucy50aXRsZScpO1xuICAgIH1cblxuICAgIHJvdXRlQnVpbGRlclxuICAgICAgICAuYWRkQ2hpbGRCdWlsZGVyKHJldmlzaW9uc1JvdXRlQnVpbGRlcilcbiAgICAgICAgLmFkZENoaWxkQnVpbGRlcihlbnRpdHlSZXZpc2lvbnNSb3V0ZUJ1aWxkZXIpXG4gICAgICAgIC5hZGRDaGlsZEJ1aWxkZXIoVGFibGV2aWV3Um91dGVCdWlsZGVyLmZyb21Db21wb25lbnQoJ2VudGl0eS1yZXZpc2lvbnMvOmVudGl0eUNsYXNzJywgTW5nQXVkaXRFbnRpdHlSZXZpc2lvbnNQYWdlQ29tcG9uZW50KS53aXRoVGl0bGUoJ3BhZ2VzLmVudGl0eVJldmlzaW9ucy50aXRsZScpKTtcblxuICAgIGlmIChyb3V0ZUNvbmZpZz8ucG9zdFJldmlzaW9uUm91dGVzPy5sZW5ndGgpIHtcbiAgICAgICAgcm91dGVDb25maWcucG9zdFJldmlzaW9uUm91dGVzLmZvckVhY2gociA9PiByb3V0ZUJ1aWxkZXIuYWRkQ2hpbGRCdWlsZGVyKHIpKTtcbiAgICB9XG5cbiAgICByZXR1cm4gUm91dGVzQnVpbGRlci5jcmVhdGUoKS5hZGRSb3V0ZUJ1aWxkZXIocm91dGVCdWlsZGVyKS5idWlsZCgpO1xufVxuIl19
@@ -7,7 +7,7 @@ import { FormlyModule } from '@ngx-formly/core';
7
7
  import { TranslateModule } from '@ngx-translate/core';
8
8
  import { combineLatest, throwError } from 'rxjs';
9
9
  import { map } from 'rxjs/operators';
10
- import { AMngTableviewRouteComponent, ActionDataProviderUtil, ActionEditorDescriptor, ActionEditorSubmitDescriptor, ActionEditorSubmitTypeEnum, ActionPositionEnum, LookupDataProvider, MediusQueryResult, MngDropdownComponent, MngErrorInternal, MngTableviewRouteComponent, TableviewActionDefaultCategories, TableviewDataProvider, TableviewDescriptor } from '@mediusinc/mng-commons';
10
+ import { AMngTableviewRouteComponent, ActionDataProviderUtil, ActionEditorDescriptor, ActionEditorSubmitDescriptor, ActionEditorSubmitTypeEnum, ActionPositionEnum, LookupDataProvider, MediusQueryResult, MngDropdownComponent, MngInternalError, MngTableviewRouteComponent, TableviewActionDefaultCategories, TableviewDataProvider, TableviewDescriptor } from '@mediusinc/mng-commons';
11
11
  import { MngGuiEntityModelDto } from '../../../api/models/guiEntityModel';
12
12
  import { MngAuditRevisionsApiService } from '../../../api/services/audit-revisions-api.service';
13
13
  import { MngAuditService } from '../../../api/services/audit.service';
@@ -65,7 +65,7 @@ export class MngAuditEntityRevisionsPageComponent extends AMngTableviewRouteComp
65
65
  }
66
66
  createTableviewDescriptor() {
67
67
  if (!this.revModel || !this.selectedRevisionEntity?.entityName) {
68
- throw new MngErrorInternal('No revision model or revision entity is provided for tableview.');
68
+ throw new MngInternalError('No revision model or revision entity is provided for tableview.');
69
69
  }
70
70
  const desc = new TableviewDescriptor(MngRevEntityWithId, 'mergedId', undefined, this.selectedRevisionEntity.entityName);
71
71
  AuditUtil.buildDescriptorForEntityRevision(desc, this.revModel, this.selectedRevisionEntity);
@@ -77,7 +77,7 @@ export class MngAuditEntityRevisionsPageComponent extends AMngTableviewRouteComp
77
77
  }
78
78
  createTableviewDataProvider() {
79
79
  if (!this.revModel || !this.selectedRevisionEntity?.entityName) {
80
- throw new MngErrorInternal('No revision model or revision entity is provided for tableview.');
80
+ throw new MngInternalError('No revision model or revision entity is provided for tableview.');
81
81
  }
82
82
  const entityName = this.selectedRevisionEntity.entityName;
83
83
  return new TableviewDataProvider(MngRevEntityWithId).withGetAll(qp => this.selectedRevisionEntity?.entityName
@@ -97,11 +97,11 @@ export class MngAuditEntityRevisionsPageComponent extends AMngTableviewRouteComp
97
97
  }
98
98
  return MediusQueryResult.fromArray(revEntityWithStateAndIdList, count);
99
99
  }))
100
- : throwError(() => new MngErrorInternal('No revision entity is provided for list.')));
100
+ : throwError(() => new MngInternalError('No revision entity is provided for list.')));
101
101
  }
102
102
  createActionDescriptors() {
103
103
  if (!this.revModel || !this.selectedRevisionEntity?.entityName) {
104
- throw new MngErrorInternal('No revision model or revision entity is provided for tableview.');
104
+ throw new MngInternalError('No revision model or revision entity is provided for tableview.');
105
105
  }
106
106
  const entityName = this.selectedRevisionEntity.entityName;
107
107
  const detailsAction = new ActionEditorDescriptor(this.descriptor.detailsEditor, 'entity-revision-details')
@@ -111,10 +111,10 @@ export class MngAuditEntityRevisionsPageComponent extends AMngTableviewRouteComp
111
111
  .withTableviewCategory(TableviewActionDefaultCategories.DETAILS)
112
112
  .withFetchFunction(ctx => {
113
113
  if (!entityName) {
114
- return throwError(() => new MngErrorInternal('No revision entity is provided for details.'));
114
+ return throwError(() => new MngInternalError('No revision entity is provided for details.'));
115
115
  }
116
116
  if (!ctx.parameters.itemId) {
117
- return throwError(() => new MngErrorInternal('No item id for revision entity details is provided.'));
117
+ return throwError(() => new MngInternalError('No item id for revision entity details is provided.'));
118
118
  }
119
119
  const revId = ctx.parameters.itemId.toString().split('_')[0];
120
120
  const itemId = ctx.parameters.itemId.toString().split('_')[1];
@@ -130,4 +130,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.1.7", ngImpor
130
130
  type: Component,
131
131
  args: [{ standalone: true, selector: 'mng-audit-entity-revisions-page', imports: [MngDropdownComponent, MngTableviewRouteComponent, FormsModule, AsyncPipe, NgIf, TranslateModule, FormlyModule], template: "<div class=\"card\">\n <div class=\"field mb-0\">\n <mng-dropdown\n id=\"revisionEntityDropdown\"\n [placeholder]=\"'pages.entityRevisions.dropdown.placeholder' | translate\"\n [itemsLabelProperty]=\"'entityName'\"\n [(ngModel)]=\"selectedRevisionEntity\"\n (valueChange)=\"onRevisionEntityChange()\"\n [dataProvider]=\"revisionEntitiesLookupProvider\"></mng-dropdown>\n <small *ngIf=\"!selectedRevisionEntity\" class=\"block\">\n {{ 'pages.entityRevisions.dropdown.helpText' | translate }}\n </small>\n </div>\n</div>\n<div *ngIf=\"showTableview()\">\n <mng-tableview-route [descriptor]=\"descriptor\" [dataProvider]=\"dataProvider\" [actions]=\"actions\"></mng-tableview-route>\n</div>\n" }]
132
132
  }], ctorParameters: function () { return [{ type: i1.Router }]; } });
133
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYXVkaXQtZW50aXR5LXJldmlzaW9ucy1wYWdlLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3NyYy9saWIvY29tcG9uZW50cy9wYWdlcy9lbnRpdHktcmV2aXNpb25zL2F1ZGl0LWVudGl0eS1yZXZpc2lvbnMtcGFnZS5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi9zcmMvbGliL2NvbXBvbmVudHMvcGFnZXMvZW50aXR5LXJldmlzaW9ucy9hdWRpdC1lbnRpdHktcmV2aXNpb25zLXBhZ2UuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFDLFNBQVMsRUFBRSxJQUFJLEVBQUMsTUFBTSxpQkFBaUIsQ0FBQztBQUNoRCxPQUFPLEVBQUMsU0FBUyxFQUFFLFVBQVUsRUFBMEIsTUFBTSxFQUFFLE1BQU0sRUFBQyxNQUFNLGVBQWUsQ0FBQztBQUM1RixPQUFPLEVBQUMsa0JBQWtCLEVBQUMsTUFBTSw0QkFBNEIsQ0FBQztBQUM5RCxPQUFPLEVBQUMsV0FBVyxFQUFDLE1BQU0sZ0JBQWdCLENBQUM7QUFDM0MsT0FBTyxFQUFDLE1BQU0sRUFBQyxNQUFNLGlCQUFpQixDQUFDO0FBRXZDLE9BQU8sRUFBQyxZQUFZLEVBQUMsTUFBTSxrQkFBa0IsQ0FBQztBQUM5QyxPQUFPLEVBQUMsZUFBZSxFQUFDLE1BQU0scUJBQXFCLENBQUM7QUFDcEQsT0FBTyxFQUFDLGFBQWEsRUFBRSxVQUFVLEVBQUMsTUFBTSxNQUFNLENBQUM7QUFDL0MsT0FBTyxFQUFDLEdBQUcsRUFBQyxNQUFNLGdCQUFnQixDQUFDO0FBRW5DLE9BQU8sRUFDSCwyQkFBMkIsRUFDM0Isc0JBQXNCLEVBRXRCLHNCQUFzQixFQUN0Qiw0QkFBNEIsRUFDNUIsMEJBQTBCLEVBQzFCLGtCQUFrQixFQUNsQixrQkFBa0IsRUFDbEIsaUJBQWlCLEVBQ2pCLG9CQUFvQixFQUNwQixnQkFBZ0IsRUFDaEIsMEJBQTBCLEVBQzFCLGdDQUFnQyxFQUNoQyxxQkFBcUIsRUFDckIsbUJBQW1CLEVBQ3RCLE1BQU0sd0JBQXdCLENBQUM7QUFFaEMsT0FBTyxFQUFDLG9CQUFvQixFQUFDLE1BQU0sb0NBQW9DLENBQUM7QUFDeEUsT0FBTyxFQUFDLDJCQUEyQixFQUFDLE1BQU0sbURBQW1ELENBQUM7QUFDOUYsT0FBTyxFQUFDLGVBQWUsRUFBQyxNQUFNLHFDQUFxQyxDQUFDO0FBQ3BFLE9BQU8sRUFBQyxrQkFBa0IsRUFBQyxNQUFNLHVDQUF1QyxDQUFDO0FBQ3pFLE9BQU8sRUFBQyxTQUFTLEVBQUMsTUFBTSwyQkFBMkIsQ0FBQzs7Ozs7QUFRcEQsTUFBTSxPQUFPLG9DQUFxQyxTQUFRLDJCQUF3RDtJQVc5RyxZQUFvQixNQUFjO1FBQzlCLEtBQUssRUFBRSxDQUFDO1FBRFEsV0FBTSxHQUFOLE1BQU0sQ0FBUTtRQVYxQixlQUFVLEdBQUcsTUFBTSxDQUFDLFVBQVUsQ0FBQyxDQUFDO1FBQ2hDLGlCQUFZLEdBQUcsTUFBTSxDQUFDLGVBQWUsQ0FBQyxDQUFDO1FBQ3ZDLHlCQUFvQixHQUFHLE1BQU0sQ0FBQywyQkFBMkIsQ0FBQyxDQUFDO1FBTTVELGtCQUFhLEdBQTRCLE1BQU0sQ0FBQyxLQUFLLENBQUMsQ0FBQztRQUkxRCxJQUFJLENBQUMsOEJBQThCLEdBQUcsSUFBSSxrQkFBa0IsQ0FBOEIsb0JBQW9CLENBQUMsQ0FBQyxVQUFVLENBQUMsR0FBRyxFQUFFLENBQzVILElBQUksQ0FBQyxZQUFZLENBQUMsV0FBVyxDQUFDLElBQUksQ0FDOUIsR0FBRyxDQUFDLEtBQUssQ0FBQyxFQUFFLENBQ1IsS0FBSyxDQUFDLElBQUksQ0FBQyxDQUFDLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRTtZQUNsQixJQUFJLEVBQUUsQ0FBQyxVQUFVLElBQUksRUFBRSxDQUFDLFVBQVUsRUFBRTtnQkFDaEMsT0FBTyxFQUFFLENBQUMsVUFBVSxDQUFDLGFBQWEsQ0FBQyxFQUFFLENBQUMsVUFBVSxDQUFDLENBQUM7YUFDckQ7aUJBQU0sSUFBSSxFQUFFLENBQUMsVUFBVSxJQUFJLENBQUMsRUFBRSxDQUFDLFVBQVUsRUFBRTtnQkFDeEMsT0FBTyxDQUFDLENBQUM7YUFDWjtpQkFBTTtnQkFDSCxPQUFPLENBQUMsQ0FBQyxDQUFDO2FBQ2I7UUFDTCxDQUFDLENBQUMsQ0FDTCxDQUNKLENBQ0osQ0FBQztJQUNOLENBQUM7SUFFUSxRQUFRO1FBQ2IsSUFBSSxDQUFDLEtBQUssQ0FBQyxRQUFRLENBQUMsSUFBSSxDQUFDLGtCQUFrQixDQUFDLElBQUksQ0FBQyxVQUFVLENBQUMsQ0FBQyxDQUFDLFNBQVMsQ0FBQyxNQUFNLENBQUMsRUFBRTtZQUM3RSxNQUFNLFdBQVcsR0FBRyxNQUFNLENBQUMsR0FBRyxDQUFDLGFBQWEsQ0FBQyxDQUFDO1lBQzlDLElBQUksV0FBVyxFQUFFO2dCQUNiLGFBQWEsQ0FBQyxDQUFDLElBQUksQ0FBQyxZQUFZLENBQUMsV0FBVyxFQUFFLElBQUksQ0FBQyxZQUFZLENBQUMsU0FBUyxDQUFDLENBQUMsQ0FBQyxTQUFTLENBQUMsQ0FBQyxDQUFDLFFBQVEsRUFBRSxRQUFRLENBQUMsRUFBRSxFQUFFO29CQUMzRyxJQUFJLENBQUMsUUFBUSxHQUFHLFFBQVEsQ0FBQztvQkFFekIsS0FBSyxNQUFNLENBQUMsSUFBSSxRQUFRLEVBQUU7d0JBQ3RCLElBQUksQ0FBQyxDQUFDLFVBQVUsS0FBSyxXQUFXLEVBQUU7NEJBQzlCLElBQUksQ0FBQyxzQkFBc0IsR0FBRyxDQUFDLENBQUM7NEJBQ2hDLEtBQUssQ0FBQyxRQUFRLEVBQUUsQ0FBQzs0QkFDakIsVUFBVSxDQUFDLEdBQUcsRUFBRSxDQUFDLElBQUksQ0FBQyxhQUFhLENBQUMsR0FBRyxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUM7eUJBQ2xEO3FCQUNKO2dCQUNMLENBQUMsQ0FBQyxDQUFDO2FBQ047UUFDTCxDQUFDLENBQUMsQ0FBQztJQUNQLENBQUM7SUFFTSxzQkFBc0I7UUFDekIsSUFBSSxDQUFDLGFBQWEsQ0FBQyxHQUFHLENBQUMsS0FBSyxDQUFDLENBQUM7UUFDOUIsSUFBSSxJQUFJLENBQUMsc0JBQXNCLEVBQUU7WUFDN0IsSUFBSSxDQUFDLE1BQU0sQ0FBQyxRQUFRLENBQUMsQ0FBQywwQkFBMEIsR0FBRyxJQUFJLENBQUMsc0JBQXNCLENBQUMsVUFBVSxDQUFDLENBQUMsQ0FBQztTQUMvRjthQUFNO1lBQ0gsSUFBSSxDQUFDLE1BQU0sQ0FBQyxRQUFRLENBQUMsQ0FBQywwQkFBMEIsQ0FBQyxDQUFDLENBQUM7U0FDdEQ7SUFDTCxDQUFDO0lBRVMseUJBQXlCO1FBQy9CLElBQUksQ0FBQyxJQUFJLENBQUMsUUFBUSxJQUFJLENBQUMsSUFBSSxDQUFDLHNCQUFzQixFQUFFLFVBQVUsRUFBRTtZQUM1RCxNQUFNLElBQUksZ0JBQWdCLENBQUMsaUVBQWlFLENBQUMsQ0FBQztTQUNqRztRQUVELE1BQU0sSUFBSSxHQUFHLElBQUksbUJBQW1CLENBQUMsa0JBQWtCLEVBQUUsVUFBVSxFQUFFLFNBQVMsRUFBRSxJQUFJLENBQUMsc0JBQXNCLENBQUMsVUFBVSxDQUFDLENBQUM7UUFFeEgsU0FBUyxDQUFDLGdDQUFnQyxDQUFDLElBQUksRUFBRSxJQUFJLENBQUMsUUFBUSxFQUFFLElBQUksQ0FBQyxzQkFBc0IsQ0FBQyxDQUFDO1FBRTdGLElBQUksQ0FBQyxLQUFLLENBQUMsb0JBQW9CLEVBQUUsQ0FBQztRQUNsQyxJQUFJLENBQUMsS0FBSyxDQUFDLDZCQUE2QixFQUFFLENBQUM7UUFDM0MsSUFBSSxDQUFDLEtBQUssQ0FBQyw0QkFBNEIsRUFBRSxDQUFDO1FBQzFDLElBQUksQ0FBQyxLQUFLLENBQUMsV0FBVyxDQUFDLHVCQUF1QixJQUFJLENBQUMsc0JBQXNCLENBQUMsVUFBVSxFQUFFLENBQUMsQ0FBQztRQUV4RixPQUFPLElBQUksQ0FBQztJQUNoQixDQUFDO0lBRVMsMkJBQTJCO1FBQ2pDLElBQUksQ0FBQyxJQUFJLENBQUMsUUFBUSxJQUFJLENBQUMsSUFBSSxDQUFDLHNCQUFzQixFQUFFLFVBQVUsRUFBRTtZQUM1RCxNQUFNLElBQUksZ0JBQWdCLENBQUMsaUVBQWlFLENBQUMsQ0FBQztTQUNqRztRQUVELE1BQU0sVUFBVSxHQUFHLElBQUksQ0FBQyxzQkFBc0IsQ0FBQyxVQUFVLENBQUM7UUFDMUQsT0FBTyxJQUFJLHFCQUFxQixDQUFDLGtCQUFrQixDQUFDLENBQUMsVUFBVSxDQUFDLEVBQUUsQ0FBQyxFQUFFLENBQ2pFLElBQUksQ0FBQyxzQkFBc0IsRUFBRSxVQUFVO1lBQ25DLENBQUMsQ0FBQyxhQUFhLENBQUM7Z0JBQ1YsSUFBSSxDQUFDLG9CQUFvQixDQUFDLG9DQUFvQyxDQUFDLEVBQUUsRUFBRSxVQUFVLENBQUM7Z0JBQzlFLElBQUksQ0FBQyxvQkFBb0IsQ0FBQyxtQ0FBbUMsQ0FBQyxFQUFFLEVBQUUsVUFBVSxDQUFDO2FBQ2hGLENBQUMsQ0FBQyxJQUFJLENBQ0gsR0FBRyxDQUFDLENBQUMsQ0FBQyxLQUFLLEVBQUUsTUFBTSxDQUFDLEVBQUUsRUFBRTtnQkFDcEIsTUFBTSwyQkFBMkIsR0FBRyxFQUFFLENBQUM7Z0JBQ3ZDLEtBQUssTUFBTSxrQkFBa0IsSUFBSSxNQUFNLEVBQUU7b0JBQ3JDLE1BQU0sdUJBQXVCLEdBQUcsSUFBSSxrQkFBa0IsRUFBRSxDQUFDO29CQUN6RCx1QkFBdUIsQ0FBQyxRQUFRLEdBQUcsa0JBQWtCLENBQUMsU0FBUyxFQUFFLENBQUMsS0FBSyxDQUFDLEdBQUcsR0FBRyxHQUFHLGtCQUFrQixDQUFDLFdBQVcsRUFBRSxDQUFDLElBQUksQ0FBQyxDQUFDO29CQUN4SCx1QkFBdUIsQ0FBQyxPQUFPLEdBQUcsa0JBQWtCLENBQUMsT0FBTyxDQUFDO29CQUM3RCx1QkFBdUIsQ0FBQyxTQUFTLEdBQUcsa0JBQWtCLENBQUMsU0FBUyxDQUFDO29CQUNqRSx1QkFBdUIsQ0FBQyxXQUFXLEdBQUcsa0JBQWtCLENBQUMsV0FBVyxDQUFDO29CQUNyRSx1QkFBdUIsQ0FBQyxlQUFlLEdBQUcsa0JBQWtCLENBQUMsZUFBZSxDQUFDO29CQUM3RSwyQkFBMkIsQ0FBQyxJQUFJLENBQUMsdUJBQXVCLENBQUMsQ0FBQztpQkFDN0Q7Z0JBQ0QsT0FBTyxpQkFBaUIsQ0FBQyxTQUFTLENBQUMsMkJBQTJCLEVBQUUsS0FBSyxDQUFDLENBQUM7WUFDM0UsQ0FBQyxDQUFDLENBQ0w7WUFDSCxDQUFDLENBQUMsVUFBVSxDQUFDLEdBQUcsRUFBRSxDQUFDLElBQUksZ0JBQWdCLENBQUMsMENBQTBDLENBQUMsQ0FBQyxDQUMzRixDQUFDO0lBQ04sQ0FBQztJQUVlLHVCQUF1QjtRQUNuQyxJQUFJLENBQUMsSUFBSSxDQUFDLFFBQVEsSUFBSSxDQUFDLElBQUksQ0FBQyxzQkFBc0IsRUFBRSxVQUFVLEVBQUU7WUFDNUQsTUFBTSxJQUFJLGdCQUFnQixDQUFDLGlFQUFpRSxDQUFDLENBQUM7U0FDakc7UUFFRCxNQUFNLFVBQVUsR0FBRyxJQUFJLENBQUMsc0JBQXNCLENBQUMsVUFBVSxDQUFDO1FBQzFELE1BQU0sYUFBYSxHQUFHLElBQUksc0JBQXNCLENBQUMsSUFBSSxDQUFDLFVBQVUsQ0FBQyxhQUFhLEVBQUUseUJBQXlCLENBQUM7YUFDckcsWUFBWSxDQUFDLGtCQUFrQixDQUFDLFFBQVEsQ0FBQzthQUN6QyxnQkFBZ0IsQ0FBQyxTQUFTLENBQUM7YUFDM0IsaUJBQWlCLENBQUMsc0JBQXNCLENBQUMsY0FBYyxDQUFDO2FBQ3hELHFCQUFxQixDQUFDLGdDQUFnQyxDQUFDLE9BQU8sQ0FBQzthQUMvRCxpQkFBaUIsQ0FBQyxHQUFHLENBQUMsRUFBRTtZQUNyQixJQUFJLENBQUMsVUFBVSxFQUFFO2dCQUNiLE9BQU8sVUFBVSxDQUFDLEdBQUcsRUFBRSxDQUFDLElBQUksZ0JBQWdCLENBQUMsNkNBQTZDLENBQUMsQ0FBQyxDQUFDO2FBQ2hHO1lBQ0QsSUFBSSxDQUFDLEdBQUcsQ0FBQyxVQUFVLENBQUMsTUFBTSxFQUFFO2dCQUN4QixPQUFPLFVBQVUsQ0FBQyxHQUFHLEVBQUUsQ0FBQyxJQUFJLGdCQUFnQixDQUFDLHFEQUFxRCxDQUFDLENBQUMsQ0FBQzthQUN4RztZQUNELE1BQU0sS0FBSyxHQUFHLEdBQUcsQ0FBQyxVQUFVLENBQUMsTUFBTSxDQUFDLFFBQVEsRUFBRSxDQUFDLEtBQUssQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQztZQUM3RCxNQUFNLE1BQU0sR0FBRyxHQUFHLENBQUMsVUFBVSxDQUFDLE1BQU0sQ0FBQyxRQUFRLEVBQUUsQ0FBQyxLQUFLLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUM7WUFDOUQsT0FBTyxJQUFJLENBQUMsb0JBQW9CLENBQUMsb0NBQW9DLENBQUMsVUFBVSxFQUFFLEtBQUssRUFBRSxNQUFNLENBQUMsQ0FBQztRQUNyRyxDQUFDLENBQUMsQ0FBQztRQUNQLGFBQWEsQ0FBQyxpQkFBaUIsQ0FBQyxDQUFDLElBQUksNEJBQTRCLENBQUMsYUFBYSxFQUFFLDBCQUEwQixDQUFDLE1BQU0sQ0FBQyxDQUFDLENBQUMsQ0FBQztRQUN0SCxPQUFPLENBQUMsYUFBYSxDQUFDLENBQUM7SUFDM0IsQ0FBQzs4R0FqSVEsb0NBQW9DO2tHQUFwQyxvQ0FBb0Msa0hDekNqRCw4eEJBaUJBLDRDRHFCYyxvQkFBb0IsaVZBQUUsMEJBQTBCLGtIQUFFLFdBQVcsK1ZBQWEsSUFBSSw0RkFBRSxlQUFlLDJGQUFFLFlBQVk7OzJGQUc5RyxvQ0FBb0M7a0JBTmhELFNBQVM7aUNBQ00sSUFBSSxZQUNOLGlDQUFpQyxXQUNsQyxDQUFDLG9CQUFvQixFQUFFLDBCQUEwQixFQUFFLFdBQVcsRUFBRSxTQUFTLEVBQUUsSUFBSSxFQUFFLGVBQWUsRUFBRSxZQUFZLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge0FzeW5jUGlwZSwgTmdJZn0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uJztcbmltcG9ydCB7Q29tcG9uZW50LCBEZXN0cm95UmVmLCBPbkluaXQsIFdyaXRhYmxlU2lnbmFsLCBpbmplY3QsIHNpZ25hbH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQge3Rha2VVbnRpbERlc3Ryb3llZH0gZnJvbSAnQGFuZ3VsYXIvY29yZS9yeGpzLWludGVyb3AnO1xuaW1wb3J0IHtGb3Jtc01vZHVsZX0gZnJvbSAnQGFuZ3VsYXIvZm9ybXMnO1xuaW1wb3J0IHtSb3V0ZXJ9IGZyb20gJ0Bhbmd1bGFyL3JvdXRlcic7XG5cbmltcG9ydCB7Rm9ybWx5TW9kdWxlfSBmcm9tICdAbmd4LWZvcm1seS9jb3JlJztcbmltcG9ydCB7VHJhbnNsYXRlTW9kdWxlfSBmcm9tICdAbmd4LXRyYW5zbGF0ZS9jb3JlJztcbmltcG9ydCB7Y29tYmluZUxhdGVzdCwgdGhyb3dFcnJvcn0gZnJvbSAncnhqcyc7XG5pbXBvcnQge21hcH0gZnJvbSAncnhqcy9vcGVyYXRvcnMnO1xuXG5pbXBvcnQge1xuICAgIEFNbmdUYWJsZXZpZXdSb3V0ZUNvbXBvbmVudCxcbiAgICBBY3Rpb25EYXRhUHJvdmlkZXJVdGlsLFxuICAgIEFjdGlvbkRlc2NyaXB0b3IsXG4gICAgQWN0aW9uRWRpdG9yRGVzY3JpcHRvcixcbiAgICBBY3Rpb25FZGl0b3JTdWJtaXREZXNjcmlwdG9yLFxuICAgIEFjdGlvbkVkaXRvclN1Ym1pdFR5cGVFbnVtLFxuICAgIEFjdGlvblBvc2l0aW9uRW51bSxcbiAgICBMb29rdXBEYXRhUHJvdmlkZXIsXG4gICAgTWVkaXVzUXVlcnlSZXN1bHQsXG4gICAgTW5nRHJvcGRvd25Db21wb25lbnQsXG4gICAgTW5nRXJyb3JJbnRlcm5hbCxcbiAgICBNbmdUYWJsZXZpZXdSb3V0ZUNvbXBvbmVudCxcbiAgICBUYWJsZXZpZXdBY3Rpb25EZWZhdWx0Q2F0ZWdvcmllcyxcbiAgICBUYWJsZXZpZXdEYXRhUHJvdmlkZXIsXG4gICAgVGFibGV2aWV3RGVzY3JpcHRvclxufSBmcm9tICdAbWVkaXVzaW5jL21uZy1jb21tb25zJztcblxuaW1wb3J0IHtNbmdHdWlFbnRpdHlNb2RlbER0b30gZnJvbSAnLi4vLi4vLi4vYXBpL21vZGVscy9ndWlFbnRpdHlNb2RlbCc7XG5pbXBvcnQge01uZ0F1ZGl0UmV2aXNpb25zQXBpU2VydmljZX0gZnJvbSAnLi4vLi4vLi4vYXBpL3NlcnZpY2VzL2F1ZGl0LXJldmlzaW9ucy1hcGkuc2VydmljZSc7XG5pbXBvcnQge01uZ0F1ZGl0U2VydmljZX0gZnJvbSAnLi4vLi4vLi4vYXBpL3NlcnZpY2VzL2F1ZGl0LnNlcnZpY2UnO1xuaW1wb3J0IHtNbmdSZXZFbnRpdHlXaXRoSWR9IGZyb20gJy4uLy4uLy4uL21vZGVscy9yZXZFbnRpdHlXaXRoSWQubW9kZWwnO1xuaW1wb3J0IHtBdWRpdFV0aWx9IGZyb20gJy4uLy4uLy4uL3V0aWxzL2F1ZGl0LnV0aWwnO1xuXG5AQ29tcG9uZW50KHtcbiAgICBzdGFuZGFsb25lOiB0cnVlLFxuICAgIHNlbGVjdG9yOiAnbW5nLWF1ZGl0LWVudGl0eS1yZXZpc2lvbnMtcGFnZScsXG4gICAgaW1wb3J0czogW01uZ0Ryb3Bkb3duQ29tcG9uZW50LCBNbmdUYWJsZXZpZXdSb3V0ZUNvbXBvbmVudCwgRm9ybXNNb2R1bGUsIEFzeW5jUGlwZSwgTmdJZiwgVHJhbnNsYXRlTW9kdWxlLCBGb3JtbHlNb2R1bGVdLFxuICAgIHRlbXBsYXRlVXJsOiAnYXVkaXQtZW50aXR5LXJldmlzaW9ucy1wYWdlLmNvbXBvbmVudC5odG1sJ1xufSlcbmV4cG9ydCBjbGFzcyBNbmdBdWRpdEVudGl0eVJldmlzaW9uc1BhZ2VDb21wb25lbnQgZXh0ZW5kcyBBTW5nVGFibGV2aWV3Um91dGVDb21wb25lbnQ8TW5nUmV2RW50aXR5V2l0aElkLCB1bmtub3duPiBpbXBsZW1lbnRzIE9uSW5pdCB7XG4gICAgcHJpdmF0ZSBkZXN0cm95UmVmID0gaW5qZWN0KERlc3Ryb3lSZWYpO1xuICAgIHByaXZhdGUgYXVkaXRTZXJ2aWNlID0gaW5qZWN0KE1uZ0F1ZGl0U2VydmljZSk7XG4gICAgcHJpdmF0ZSByZXZpc2lzb25zQXBpU2VydmljZSA9IGluamVjdChNbmdBdWRpdFJldmlzaW9uc0FwaVNlcnZpY2UpO1xuXG4gICAgcHVibGljIHJldk1vZGVsPzogTW5nR3VpRW50aXR5TW9kZWxEdG87XG4gICAgcHVibGljIHNlbGVjdGVkUmV2aXNpb25FbnRpdHk/OiBNbmdHdWlFbnRpdHlNb2RlbER0bztcbiAgICBwdWJsaWMgcmV2aXNpb25FbnRpdGllc0xvb2t1cFByb3ZpZGVyPzogTG9va3VwRGF0YVByb3ZpZGVyPE1uZ0d1aUVudGl0eU1vZGVsRHRvLCBuZXZlcj47XG5cbiAgICBwdWJsaWMgc2hvd1RhYmxldmlldzogV3JpdGFibGVTaWduYWw8Ym9vbGVhbj4gPSBzaWduYWwoZmFsc2UpO1xuXG4gICAgY29uc3RydWN0b3IocHJpdmF0ZSByb3V0ZXI6IFJvdXRlcikge1xuICAgICAgICBzdXBlcigpO1xuICAgICAgICB0aGlzLnJldmlzaW9uRW50aXRpZXNMb29rdXBQcm92aWRlciA9IG5ldyBMb29rdXBEYXRhUHJvdmlkZXI8TW5nR3VpRW50aXR5TW9kZWxEdG8sIG5ldmVyPihNbmdHdWlFbnRpdHlNb2RlbER0bykud2l0aExvb2t1cCgoKSA9PlxuICAgICAgICAgICAgdGhpcy5hdWRpdFNlcnZpY2UuYXVkaXRNb2RlbCQucGlwZShcbiAgICAgICAgICAgICAgICBtYXAobW9kZWwgPT5cbiAgICAgICAgICAgICAgICAgICAgbW9kZWwuc29ydCgobTEsIG0yKSA9PiB7XG4gICAgICAgICAgICAgICAgICAgICAgICBpZiAobTEuZW50aXR5TmFtZSAmJiBtMi5lbnRpdHlOYW1lKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuIG0xLmVudGl0eU5hbWUubG9jYWxlQ29tcGFyZShtMi5lbnRpdHlOYW1lKTtcbiAgICAgICAgICAgICAgICAgICAgICAgIH0gZWxzZSBpZiAobTEuZW50aXR5TmFtZSAmJiAhbTIuZW50aXR5TmFtZSkge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybiAxO1xuICAgICAgICAgICAgICAgICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICByZXR1cm4gLTE7XG4gICAgICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgIH0pXG4gICAgICAgICAgICAgICAgKVxuICAgICAgICAgICAgKVxuICAgICAgICApO1xuICAgIH1cblxuICAgIG92ZXJyaWRlIG5nT25Jbml0KCkge1xuICAgICAgICB0aGlzLnJvdXRlLnBhcmFtTWFwLnBpcGUodGFrZVVudGlsRGVzdHJveWVkKHRoaXMuZGVzdHJveVJlZikpLnN1YnNjcmliZShwYXJhbXMgPT4ge1xuICAgICAgICAgICAgY29uc3QgZW50aXR5Q2xhc3MgPSBwYXJhbXMuZ2V0KCdlbnRpdHlDbGFzcycpO1xuICAgICAgICAgICAgaWYgKGVudGl0eUNsYXNzKSB7XG4gICAgICAgICAgICAgICAgY29tYmluZUxhdGVzdChbdGhpcy5hdWRpdFNlcnZpY2UuYXVkaXRNb2RlbCQsIHRoaXMuYXVkaXRTZXJ2aWNlLnJldk1vZGVsJF0pLnN1YnNjcmliZSgoW2VudGl0aWVzLCByZXZNb2RlbF0pID0+IHtcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5yZXZNb2RlbCA9IHJldk1vZGVsO1xuXG4gICAgICAgICAgICAgICAgICAgIGZvciAoY29uc3QgZSBvZiBlbnRpdGllcykge1xuICAgICAgICAgICAgICAgICAgICAgICAgaWYgKGUuZW50aXR5TmFtZSA9PT0gZW50aXR5Q2xhc3MpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB0aGlzLnNlbGVjdGVkUmV2aXNpb25FbnRpdHkgPSBlO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHN1cGVyLm5nT25Jbml0KCk7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgc2V0VGltZW91dCgoKSA9PiB0aGlzLnNob3dUYWJsZXZpZXcuc2V0KHRydWUpKTtcbiAgICAgICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIH0pO1xuICAgICAgICAgICAgfVxuICAgICAgICB9KTtcbiAgICB9XG5cbiAgICBwdWJsaWMgb25SZXZpc2lvbkVudGl0eUNoYW5nZSgpIHtcbiAgICAgICAgdGhpcy5zaG93VGFibGV2aWV3LnNldChmYWxzZSk7XG4gICAgICAgIGlmICh0aGlzLnNlbGVjdGVkUmV2aXNpb25FbnRpdHkpIHtcbiAgICAgICAgICAgIHRoaXMucm91dGVyLm5hdmlnYXRlKFsnL2F1ZGl0L2VudGl0eS1yZXZpc2lvbnMvJyArIHRoaXMuc2VsZWN0ZWRSZXZpc2lvbkVudGl0eS5lbnRpdHlOYW1lXSk7XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICB0aGlzLnJvdXRlci5uYXZpZ2F0ZShbJy9hdWRpdC9lbnRpdHktcmV2aXNpb25zLyddKTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIHByb3RlY3RlZCBjcmVhdGVUYWJsZXZpZXdEZXNjcmlwdG9yKCkge1xuICAgICAgICBpZiAoIXRoaXMucmV2TW9kZWwgfHwgIXRoaXMuc2VsZWN0ZWRSZXZpc2lvbkVudGl0eT8uZW50aXR5TmFtZSkge1xuICAgICAgICAgICAgdGhyb3cgbmV3IE1uZ0Vycm9ySW50ZXJuYWwoJ05vIHJldmlzaW9uIG1vZGVsIG9yIHJldmlzaW9uIGVudGl0eSBpcyBwcm92aWRlZCBmb3IgdGFibGV2aWV3LicpO1xuICAgICAgICB9XG5cbiAgICAgICAgY29uc3QgZGVzYyA9IG5ldyBUYWJsZXZpZXdEZXNjcmlwdG9yKE1uZ1JldkVudGl0eVdpdGhJZCwgJ21lcmdlZElkJywgdW5kZWZpbmVkLCB0aGlzLnNlbGVjdGVkUmV2aXNpb25FbnRpdHkuZW50aXR5TmFtZSk7XG5cbiAgICAgICAgQXVkaXRVdGlsLmJ1aWxkRGVzY3JpcHRvckZvckVudGl0eVJldmlzaW9uKGRlc2MsIHRoaXMucmV2TW9kZWwsIHRoaXMuc2VsZWN0ZWRSZXZpc2lvbkVudGl0eSk7XG5cbiAgICAgICAgZGVzYy50YWJsZS53aXRoQ29sdW1uc1Jlc2l6YWJsZSgpO1xuICAgICAgICBkZXNjLnRhYmxlLndpdGhDdXJyZW50Q29sdW1uc1Jlb3JkZXJhYmxlKCk7XG4gICAgICAgIGRlc2MudGFibGUud2l0aEN1cnJlbnRDb2x1bW5zVG9nZ2xlYWJsZSgpO1xuICAgICAgICBkZXNjLnRhYmxlLndpdGhEYXRhS2V5KGBFbnRpdHlSZXZpc2lvbnNQYWdlXyR7dGhpcy5zZWxlY3RlZFJldmlzaW9uRW50aXR5LmVudGl0eU5hbWV9YCk7XG5cbiAgICAgICAgcmV0dXJuIGRlc2M7XG4gICAgfVxuXG4gICAgcHJvdGVjdGVkIGNyZWF0ZVRhYmxldmlld0RhdGFQcm92aWRlcigpIHtcbiAgICAgICAgaWYgKCF0aGlzLnJldk1vZGVsIHx8ICF0aGlzLnNlbGVjdGVkUmV2aXNpb25FbnRpdHk/LmVudGl0eU5hbWUpIHtcbiAgICAgICAgICAgIHRocm93IG5ldyBNbmdFcnJvckludGVybmFsKCdObyByZXZpc2lvbiBtb2RlbCBvciByZXZpc2lvbiBlbnRpdHkgaXMgcHJvdmlkZWQgZm9yIHRhYmxldmlldy4nKTtcbiAgICAgICAgfVxuXG4gICAgICAgIGNvbnN0IGVudGl0eU5hbWUgPSB0aGlzLnNlbGVjdGVkUmV2aXNpb25FbnRpdHkuZW50aXR5TmFtZTtcbiAgICAgICAgcmV0dXJuIG5ldyBUYWJsZXZpZXdEYXRhUHJvdmlkZXIoTW5nUmV2RW50aXR5V2l0aElkKS53aXRoR2V0QWxsKHFwID0+XG4gICAgICAgICAgICB0aGlzLnNlbGVjdGVkUmV2aXNpb25FbnRpdHk/LmVudGl0eU5hbWVcbiAgICAgICAgICAgICAgICA/IGNvbWJpbmVMYXRlc3QoW1xuICAgICAgICAgICAgICAgICAgICAgIHRoaXMucmV2aXNpc29uc0FwaVNlcnZpY2UuY291bnRSZXZpc2lvbnNXaXRoU3RhdGVGb3JFbnRpdHlUeXBlKHFwLCBlbnRpdHlOYW1lKSxcbiAgICAgICAgICAgICAgICAgICAgICB0aGlzLnJldmlzaXNvbnNBcGlTZXJ2aWNlLmxpc3RSZXZpc2lvbnNXaXRoU3RhdGVGb3JFbnRpdHlUeXBlKHFwLCBlbnRpdHlOYW1lKVxuICAgICAgICAgICAgICAgICAgXSkucGlwZShcbiAgICAgICAgICAgICAgICAgICAgICBtYXAoKFtjb3VudCwgdmFsdWVzXSkgPT4ge1xuICAgICAgICAgICAgICAgICAgICAgICAgICBjb25zdCByZXZFbnRpdHlXaXRoU3RhdGVBbmRJZExpc3QgPSBbXTtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgZm9yIChjb25zdCByZXZFbnRpdHlXaXRoU3RhdGUgb2YgdmFsdWVzKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb25zdCByZXZFbnRpdHlXaXRoU3RhdGVBbmRJZCA9IG5ldyBNbmdSZXZFbnRpdHlXaXRoSWQoKTtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJldkVudGl0eVdpdGhTdGF0ZUFuZElkLm1lcmdlZElkID0gcmV2RW50aXR5V2l0aFN0YXRlLnJldkVudGl0eT8uWydyZXYnXSArICdfJyArIHJldkVudGl0eVdpdGhTdGF0ZS5lbnRpdHlTdGF0ZT8uWydpZCddO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcmV2RW50aXR5V2l0aFN0YXRlQW5kSWQucmV2VHlwZSA9IHJldkVudGl0eVdpdGhTdGF0ZS5yZXZUeXBlO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcmV2RW50aXR5V2l0aFN0YXRlQW5kSWQucmV2RW50aXR5ID0gcmV2RW50aXR5V2l0aFN0YXRlLnJldkVudGl0eTtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJldkVudGl0eVdpdGhTdGF0ZUFuZElkLmVudGl0eVN0YXRlID0gcmV2RW50aXR5V2l0aFN0YXRlLmVudGl0eVN0YXRlO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcmV2RW50aXR5V2l0aFN0YXRlQW5kSWQuZW50aXR5Q2xhc3NOYW1lID0gcmV2RW50aXR5V2l0aFN0YXRlLmVudGl0eUNsYXNzTmFtZTtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJldkVudGl0eVdpdGhTdGF0ZUFuZElkTGlzdC5wdXNoKHJldkVudGl0eVdpdGhTdGF0ZUFuZElkKTtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICAgICAgICByZXR1cm4gTWVkaXVzUXVlcnlSZXN1bHQuZnJvbUFycmF5KHJldkVudGl0eVdpdGhTdGF0ZUFuZElkTGlzdCwgY291bnQpO1xuICAgICAgICAgICAgICAgICAgICAgIH0pXG4gICAgICAgICAgICAgICAgICApXG4gICAgICAgICAgICAgICAgOiB0aHJvd0Vycm9yKCgpID0+IG5ldyBNbmdFcnJvckludGVybmFsKCdObyByZXZpc2lvbiBlbnRpdHkgaXMgcHJvdmlkZWQgZm9yIGxpc3QuJykpXG4gICAgICAgICk7XG4gICAgfVxuXG4gICAgcHVibGljIG92ZXJyaWRlIGNyZWF0ZUFjdGlvbkRlc2NyaXB0b3JzKCk6IEFycmF5PEFjdGlvbkRlc2NyaXB0b3I8TW5nUmV2RW50aXR5V2l0aElkPj4ge1xuICAgICAgICBpZiAoIXRoaXMucmV2TW9kZWwgfHwgIXRoaXMuc2VsZWN0ZWRSZXZpc2lvbkVudGl0eT8uZW50aXR5TmFtZSkge1xuICAgICAgICAgICAgdGhyb3cgbmV3IE1uZ0Vycm9ySW50ZXJuYWwoJ05vIHJldmlzaW9uIG1vZGVsIG9yIHJldmlzaW9uIGVudGl0eSBpcyBwcm92aWRlZCBmb3IgdGFibGV2aWV3LicpO1xuICAgICAgICB9XG5cbiAgICAgICAgY29uc3QgZW50aXR5TmFtZSA9IHRoaXMuc2VsZWN0ZWRSZXZpc2lvbkVudGl0eS5lbnRpdHlOYW1lO1xuICAgICAgICBjb25zdCBkZXRhaWxzQWN0aW9uID0gbmV3IEFjdGlvbkVkaXRvckRlc2NyaXB0b3IodGhpcy5kZXNjcmlwdG9yLmRldGFpbHNFZGl0b3IsICdlbnRpdHktcmV2aXNpb24tZGV0YWlscycpXG4gICAgICAgICAgICAud2l0aFBvc2l0aW9uKEFjdGlvblBvc2l0aW9uRW51bS5Sb3dDbGljaylcbiAgICAgICAgICAgIC53aXRoUm91dGVUcmlnZ2VyKCc6aXRlbUlkJylcbiAgICAgICAgICAgIC53aXRoRmV0Y2hGdW5jdGlvbihBY3Rpb25EYXRhUHJvdmlkZXJVdGlsLnJ1bkZldGNoT3JGYWlsKVxuICAgICAgICAgICAgLndpdGhUYWJsZXZpZXdDYXRlZ29yeShUYWJsZXZpZXdBY3Rpb25EZWZhdWx0Q2F0ZWdvcmllcy5ERVRBSUxTKVxuICAgICAgICAgICAgLndpdGhGZXRjaEZ1bmN0aW9uKGN0eCA9PiB7XG4gICAgICAgICAgICAgICAgaWYgKCFlbnRpdHlOYW1lKSB7XG4gICAgICAgICAgICAgICAgICAgIHJldHVybiB0aHJvd0Vycm9yKCgpID0+IG5ldyBNbmdFcnJvckludGVybmFsKCdObyByZXZpc2lvbiBlbnRpdHkgaXMgcHJvdmlkZWQgZm9yIGRldGFpbHMuJykpO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICBpZiAoIWN0eC5wYXJhbWV0ZXJzLml0ZW1JZCkge1xuICAgICAgICAgICAgICAgICAgICByZXR1cm4gdGhyb3dFcnJvcigoKSA9PiBuZXcgTW5nRXJyb3JJbnRlcm5hbCgnTm8gaXRlbSBpZCBmb3IgcmV2aXNpb24gZW50aXR5IGRldGFpbHMgaXMgcHJvdmlkZWQuJykpO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICBjb25zdCByZXZJZCA9IGN0eC5wYXJhbWV0ZXJzLml0ZW1JZC50b1N0cmluZygpLnNwbGl0KCdfJylbMF07XG4gICAgICAgICAgICAgICAgY29uc3QgaXRlbUlkID0gY3R4LnBhcmFtZXRlcnMuaXRlbUlkLnRvU3RyaW5nKCkuc3BsaXQoJ18nKVsxXTtcbiAgICAgICAgICAgICAgICByZXR1cm4gdGhpcy5yZXZpc2lzb25zQXBpU2VydmljZS5mZXRjaFJldmlzaW9uc1dpdGhTdGF0ZUZvckVudGl0eVR5cGUoZW50aXR5TmFtZSwgcmV2SWQsIGl0ZW1JZCk7XG4gICAgICAgICAgICB9KTtcbiAgICAgICAgZGV0YWlsc0FjdGlvbi53aXRoRWRpdG9yQWN0aW9ucyhbbmV3IEFjdGlvbkVkaXRvclN1Ym1pdERlc2NyaXB0b3IoZGV0YWlsc0FjdGlvbiwgQWN0aW9uRWRpdG9yU3VibWl0VHlwZUVudW0uQ2FuY2VsKV0pO1xuICAgICAgICByZXR1cm4gW2RldGFpbHNBY3Rpb25dO1xuICAgIH1cbn1cbiIsIjxkaXYgY2xhc3M9XCJjYXJkXCI+XG4gICAgPGRpdiBjbGFzcz1cImZpZWxkIG1iLTBcIj5cbiAgICAgICAgPG1uZy1kcm9wZG93blxuICAgICAgICAgICAgaWQ9XCJyZXZpc2lvbkVudGl0eURyb3Bkb3duXCJcbiAgICAgICAgICAgIFtwbGFjZWhvbGRlcl09XCIncGFnZXMuZW50aXR5UmV2aXNpb25zLmRyb3Bkb3duLnBsYWNlaG9sZGVyJyB8IHRyYW5zbGF0ZVwiXG4gICAgICAgICAgICBbaXRlbXNMYWJlbFByb3BlcnR5XT1cIidlbnRpdHlOYW1lJ1wiXG4gICAgICAgICAgICBbKG5nTW9kZWwpXT1cInNlbGVjdGVkUmV2aXNpb25FbnRpdHlcIlxuICAgICAgICAgICAgKHZhbHVlQ2hhbmdlKT1cIm9uUmV2aXNpb25FbnRpdHlDaGFuZ2UoKVwiXG4gICAgICAgICAgICBbZGF0YVByb3ZpZGVyXT1cInJldmlzaW9uRW50aXRpZXNMb29rdXBQcm92aWRlclwiPjwvbW5nLWRyb3Bkb3duPlxuICAgICAgICA8c21hbGwgKm5nSWY9XCIhc2VsZWN0ZWRSZXZpc2lvbkVudGl0eVwiIGNsYXNzPVwiYmxvY2tcIj5cbiAgICAgICAgICAgIHt7ICdwYWdlcy5lbnRpdHlSZXZpc2lvbnMuZHJvcGRvd24uaGVscFRleHQnIHwgdHJhbnNsYXRlIH19XG4gICAgICAgIDwvc21hbGw+XG4gICAgPC9kaXY+XG48L2Rpdj5cbjxkaXYgKm5nSWY9XCJzaG93VGFibGV2aWV3KClcIj5cbiAgICA8bW5nLXRhYmxldmlldy1yb3V0ZSBbZGVzY3JpcHRvcl09XCJkZXNjcmlwdG9yXCIgW2RhdGFQcm92aWRlcl09XCJkYXRhUHJvdmlkZXJcIiBbYWN0aW9uc109XCJhY3Rpb25zXCI+PC9tbmctdGFibGV2aWV3LXJvdXRlPlxuPC9kaXY+XG4iXX0=
133
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYXVkaXQtZW50aXR5LXJldmlzaW9ucy1wYWdlLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3NyYy9saWIvY29tcG9uZW50cy9wYWdlcy9lbnRpdHktcmV2aXNpb25zL2F1ZGl0LWVudGl0eS1yZXZpc2lvbnMtcGFnZS5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi9zcmMvbGliL2NvbXBvbmVudHMvcGFnZXMvZW50aXR5LXJldmlzaW9ucy9hdWRpdC1lbnRpdHktcmV2aXNpb25zLXBhZ2UuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFDLFNBQVMsRUFBRSxJQUFJLEVBQUMsTUFBTSxpQkFBaUIsQ0FBQztBQUNoRCxPQUFPLEVBQUMsU0FBUyxFQUFFLFVBQVUsRUFBMEIsTUFBTSxFQUFFLE1BQU0sRUFBQyxNQUFNLGVBQWUsQ0FBQztBQUM1RixPQUFPLEVBQUMsa0JBQWtCLEVBQUMsTUFBTSw0QkFBNEIsQ0FBQztBQUM5RCxPQUFPLEVBQUMsV0FBVyxFQUFDLE1BQU0sZ0JBQWdCLENBQUM7QUFDM0MsT0FBTyxFQUFDLE1BQU0sRUFBQyxNQUFNLGlCQUFpQixDQUFDO0FBRXZDLE9BQU8sRUFBQyxZQUFZLEVBQUMsTUFBTSxrQkFBa0IsQ0FBQztBQUM5QyxPQUFPLEVBQUMsZUFBZSxFQUFDLE1BQU0scUJBQXFCLENBQUM7QUFDcEQsT0FBTyxFQUFDLGFBQWEsRUFBRSxVQUFVLEVBQUMsTUFBTSxNQUFNLENBQUM7QUFDL0MsT0FBTyxFQUFDLEdBQUcsRUFBQyxNQUFNLGdCQUFnQixDQUFDO0FBRW5DLE9BQU8sRUFDSCwyQkFBMkIsRUFDM0Isc0JBQXNCLEVBRXRCLHNCQUFzQixFQUN0Qiw0QkFBNEIsRUFDNUIsMEJBQTBCLEVBQzFCLGtCQUFrQixFQUNsQixrQkFBa0IsRUFDbEIsaUJBQWlCLEVBQ2pCLG9CQUFvQixFQUNwQixnQkFBZ0IsRUFD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LENBQUMsTUFBTSxDQUFDLFFBQVEsRUFBRSxDQUFDLEtBQUssQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQztZQUM3RCxNQUFNLE1BQU0sR0FBRyxHQUFHLENBQUMsVUFBVSxDQUFDLE1BQU0sQ0FBQyxRQUFRLEVBQUUsQ0FBQyxLQUFLLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUM7WUFDOUQsT0FBTyxJQUFJLENBQUMsb0JBQW9CLENBQUMsb0NBQW9DLENBQUMsVUFBVSxFQUFFLEtBQUssRUFBRSxNQUFNLENBQUMsQ0FBQztRQUNyRyxDQUFDLENBQUMsQ0FBQztRQUNQLGFBQWEsQ0FBQyxpQkFBaUIsQ0FBQyxDQUFDLElBQUksNEJBQTRCLENBQUMsYUFBYSxFQUFFLDBCQUEwQixDQUFDLE1BQU0sQ0FBQyxDQUFDLENBQUMsQ0FBQztRQUN0SCxPQUFPLENBQUMsYUFBYSxDQUFDLENBQUM7SUFDM0IsQ0FBQzs4R0FqSVEsb0NBQW9DO2tHQUFwQyxvQ0FBb0Msa0hDekNqRCw4eEJBaUJBLDRDRHFCYyxvQkFBb0IsaVZBQUUsMEJBQTBCLGtIQUFFLFdBQVcsK1ZBQWEsSUFBSSw0RkFBRSxlQUFlLDJGQUFFLFlBQVk7OzJGQUc5RyxvQ0FBb0M7a0JBTmhELFNBQVM7aUNBQ00sSUFBSSxZQUNOLGlDQUFpQyxXQUNsQyxDQUFDLG9CQUFvQixFQUFFLDBCQUEwQixFQUFFLFdBQVcsRUFBRSxTQUFTLEVBQUUsSUFBSSxFQUFFLGVBQWUsRUFBRSxZQUFZLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge0FzeW5jUGlwZSwgTmdJZn0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uJztcbmltcG9ydCB7Q29tcG9uZW50LCBEZXN0cm95UmVmLCBPbkluaXQsIFdyaXRhYmxlU2lnbmFsLCBpbmplY3QsIHNpZ25hbH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQge3Rha2VVbnRpbERlc3Ryb3llZH0gZnJvbSAnQGFuZ3VsYXIvY29yZS9yeGpzLWludGVyb3AnO1xuaW1wb3J0IHtGb3Jtc01vZHVsZX0gZnJvbSAnQGFuZ3VsYXIvZm9ybXMnO1xuaW1wb3J0IHtSb3V0ZXJ9IGZyb20gJ0Bhbmd1bGFyL3JvdXRlcic7XG5cbmltcG9ydCB7Rm9ybWx5TW9kdWxlfSBmcm9tICdAbmd4LWZvcm1seS9jb3JlJztcbmltcG9ydCB7VHJhbnNsYXRlTW9kdWxlfSBmcm9tICdAbmd4LXRyYW5zbGF0ZS9jb3JlJztcbmltcG9ydCB7Y29tYmluZUxhdGVzdCwgdGhyb3dFcnJvcn0gZnJvbSAncnhqcyc7XG5pbXBvcnQge21hcH0gZnJvbSAncnhqcy9vcGVyYXRvcnMnO1xuXG5pbXBvcnQge1xuICAgIEFNbmdUYWJsZXZpZXdSb3V0ZUNvbXBvbmVudCxcbiAgICBBY3Rpb25EYXRhUHJvdmlkZXJVdGlsLFxuICAgIEFjdGlvbkRlc2NyaXB0b3IsXG4gICAgQWN0aW9uRWRpdG9yRGVzY3JpcHRvcixcbiAgICBBY3Rpb25FZGl0b3JTdWJtaXREZXNjcmlwdG9yLFxuICAgIEFjdGlvbkVkaXRvclN1Ym1pdFR5cGVFbnVtLFxuICAgIEFjdGlvblBvc2l0aW9uRW51bSxcbiAgICBMb29rdXBEYXRhUHJvdmlkZXIsXG4gICAgTWVkaXVzUXVlcnlSZXN1bHQsXG4gICAgTW5nRHJvcGRvd25Db21wb25lbnQsXG4gICAgTW5nSW50ZXJuYWxFcnJvcixcbiAgICBNbmdUYWJsZXZpZXdSb3V0ZUNvbXBvbmVudCxcbiAgICBUYWJsZXZpZXdBY3Rpb25EZWZhdWx0Q2F0ZWdvcmllcyxcbiAgICBUYWJsZXZpZXdEYXRhUHJvdmlkZXIsXG4gICAgVGFibGV2aWV3RGVzY3JpcHRvclxufSBmcm9tICdAbWVkaXVzaW5jL21uZy1jb21tb25zJztcblxuaW1wb3J0IHtNbmdHdWlFbnRpdHlNb2RlbER0b30gZnJvbSAnLi4vLi4vLi4vYXBpL21vZGVscy9ndWlFbnRpdHlNb2RlbCc7XG5pbXBvcnQge01uZ0F1ZGl0UmV2aXNpb25zQXBpU2VydmljZX0gZnJvbSAnLi4vLi4vLi4vYXBpL3NlcnZpY2VzL2F1ZGl0LXJldmlzaW9ucy1hcGkuc2VydmljZSc7XG5pbXBvcnQge01uZ0F1ZGl0U2VydmljZX0gZnJvbSAnLi4vLi4vLi4vYXBpL3NlcnZpY2VzL2F1ZGl0LnNlcnZpY2UnO1xuaW1wb3J0IHtNbmdSZXZFbnRpdHlXaXRoSWR9IGZyb20gJy4uLy4uLy4uL21vZGVscy9yZXZFbnRpdHlXaXRoSWQubW9kZWwnO1xuaW1wb3J0IHtBdWRpdFV0aWx9IGZyb20gJy4uLy4uLy4uL3V0aWxzL2F1ZGl0LnV0aWwnO1xuXG5AQ29tcG9uZW50KHtcbiAgICBzdGFuZGFsb25lOiB0cnVlLFxuICAgIHNlbGVjdG9yOiAnbW5nLWF1ZGl0LWVudGl0eS1yZXZpc2lvbnMtcGFnZScsXG4gICAgaW1wb3J0czogW01uZ0Ryb3Bkb3duQ29tcG9uZW50LCBNbmdUYWJsZXZpZXdSb3V0ZUNvbXBvbmVudCwgRm9ybXNNb2R1bGUsIEFzeW5jUGlwZSwgTmdJZiwgVHJhbnNsYXRlTW9kdWxlLCBGb3JtbHlNb2R1bGVdLFxuICAgIHRlbXBsYXRlVXJsOiAnYXVkaXQtZW50aXR5LXJldmlzaW9ucy1wYWdlLmNvbXBvbmVudC5odG1sJ1xufSlcbmV4cG9ydCBjbGFzcyBNbmdBdWRpdEVudGl0eVJldmlzaW9uc1BhZ2VDb21wb25lbnQgZXh0ZW5kcyBBTW5nVGFibGV2aWV3Um91dGVDb21wb25lbnQ8TW5nUmV2RW50aXR5V2l0aElkLCB1bmtub3duPiBpbXBsZW1lbnRzIE9uSW5pdCB7XG4gICAgcHJpdmF0ZSBkZXN0cm95UmVmID0gaW5qZWN0KERlc3Ryb3lSZWYpO1xuICAgIHByaXZhdGUgYXVkaXRTZXJ2aWNlID0gaW5qZWN0KE1uZ0F1ZGl0U2VydmljZSk7XG4gICAgcHJpdmF0ZSByZXZpc2lzb25zQXBpU2VydmljZSA9IGluamVjdChNbmdBdWRpdFJldmlzaW9uc0FwaVNlcnZpY2UpO1xuXG4gICAgcHVibGljIHJldk1vZGVsPzogTW5nR3VpRW50aXR5TW9kZWxEdG87XG4gICAgcHVibGljIHNlbGVjdGVkUmV2aXNpb25FbnRpdHk/OiBNbmdHdWlFbnRpdHlNb2RlbER0bztcbiAgICBwdWJsaWMgcmV2aXNpb25FbnRpdGllc0xvb2t1cFByb3ZpZGVyPzogTG9va3VwRGF0YVByb3ZpZGVyPE1uZ0d1aUVudGl0eU1vZGVsRHRvLCBuZXZlcj47XG5cbiAgICBwdWJsaWMgc2hvd1RhYmxldmlldzogV3JpdGFibGVTaWduYWw8Ym9vbGVhbj4gPSBzaWduYWwoZmFsc2UpO1xuXG4gICAgY29uc3RydWN0b3IocHJpdmF0ZSByb3V0ZXI6IFJvdXRlcikge1xuICAgICAgICBzdXBlcigpO1xuICAgICAgICB0aGlzLnJldmlzaW9uRW50aXRpZXNMb29rdXBQcm92aWRlciA9IG5ldyBMb29rdXBEYXRhUHJvdmlkZXI8TW5nR3VpRW50aXR5TW9kZWxEdG8sIG5ldmVyPihNbmdHdWlFbnRpdHlNb2RlbER0bykud2l0aExvb2t1cCgoKSA9PlxuICAgICAgICAgICAgdGhpcy5hdWRpdFNlcnZpY2UuYXVkaXRNb2RlbCQucGlwZShcbiAgICAgICAgICAgICAgICBtYXAobW9kZWwgPT5cbiAgICAgICAgICAgICAgICAgICAgbW9kZWwuc29ydCgobTEsIG0yKSA9PiB7XG4gICAgICAgICAgICAgICAgICAgICAgICBpZiAobTEuZW50aXR5TmFtZSAmJiBtMi5lbnRpdHlOYW1lKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuIG0xLmVudGl0eU5hbWUubG9jYWxlQ29tcGFyZShtMi5lbnRpdHlOYW1lKTtcbiAgICAgICAgICAgICAgICAgICAgICAgIH0gZWxzZSBpZiAobTEuZW50aXR5TmFtZSAmJiAhbTIuZW50aXR5TmFtZSkge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybiAxO1xuICAgICAgICAgICAgICAgICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICByZXR1cm4gLTE7XG4gICAgICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgIH0pXG4gICAgICAgICAgICAgICAgKVxuICAgICAgICAgICAgKVxuICAgICAgICApO1xuICAgIH1cblxuICAgIG92ZXJyaWRlIG5nT25Jbml0KCkge1xuICAgICAgICB0aGlzLnJvdXRlLnBhcmFtTWFwLnBpcGUodGFrZVVudGlsRGVzdHJveWVkKHRoaXMuZGVzdHJveVJlZikpLnN1YnNjcmliZShwYXJhbXMgPT4ge1xuICAgICAgICAgICAgY29uc3QgZW50aXR5Q2xhc3MgPSBwYXJhbXMuZ2V0KCdlbnRpdHlDbGFzcycpO1xuICAgICAgICAgICAgaWYgKGVudGl0eUNsYXNzKSB7XG4gICAgICAgICAgICAgICAgY29tYmluZUxhdGVzdChbdGhpcy5hdWRpdFNlcnZpY2UuYXVkaXRNb2RlbCQsIHRoaXMuYXVkaXRTZXJ2aWNlLnJldk1vZGVsJF0pLnN1YnNjcmliZSgoW2VudGl0aWVzLCByZXZNb2RlbF0pID0+IHtcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5yZXZNb2RlbCA9IHJldk1vZGVsO1xuXG4gICAgICAgICAgICAgICAgICAgIGZvciAoY29uc3QgZSBvZiBlbnRpdGllcykge1xuICAgICAgICAgICAgICAgICAgICAgICAgaWYgKGUuZW50aXR5TmFtZSA9PT0gZW50aXR5Q2xhc3MpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB0aGlzLnNlbGVjdGVkUmV2aXNpb25FbnRpdHkgPSBlO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHN1cGVyLm5nT25Jbml0KCk7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgc2V0VGltZW91dCgoKSA9PiB0aGlzLnNob3dUYWJsZXZpZXcuc2V0KHRydWUpKTtcbiAgICAgICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIH0pO1xuICAgICAgICAgICAgfVxuICAgICAgICB9KTtcbiAgICB9XG5cbiAgICBwdWJsaWMgb25SZXZpc2lvbkVudGl0eUNoYW5nZSgpIHtcbiAgICAgICAgdGhpcy5zaG93VGFibGV2aWV3LnNldChmYWxzZSk7XG4gICAgICAgIGlmICh0aGlzLnNlbGVjdGVkUmV2aXNpb25FbnRpdHkpIHtcbiAgICAgICAgICAgIHRoaXMucm91dGVyLm5hdmlnYXRlKFsnL2F1ZGl0L2VudGl0eS1yZXZpc2lvbnMvJyArIHRoaXMuc2VsZWN0ZWRSZXZpc2lvbkVudGl0eS5lbnRpdHlOYW1lXSk7XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICB0aGlzLnJvdXRlci5uYXZpZ2F0ZShbJy9hdWRpdC9lbnRpdHktcmV2aXNpb25zLyddKTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIHByb3RlY3RlZCBjcmVhdGVUYWJsZXZpZXdEZXNjcmlwdG9yKCkge1xuICAgICAgICBpZiAoIXRoaXMucmV2TW9kZWwgfHwgIXRoaXMuc2VsZWN0ZWRSZXZpc2lvbkVudGl0eT8uZW50aXR5TmFtZSkge1xuICAgICAgICAgICAgdGhyb3cgbmV3IE1uZ0ludGVybmFsRXJyb3IoJ05vIHJldmlzaW9uIG1vZGVsIG9yIHJldmlzaW9uIGVudGl0eSBpcyBwcm92aWRlZCBmb3IgdGFibGV2aWV3LicpO1xuICAgICAgICB9XG5cbiAgICAgICAgY29uc3QgZGVzYyA9IG5ldyBUYWJsZXZpZXdEZXNjcmlwdG9yKE1uZ1JldkVudGl0eVdpdGhJZCwgJ21lcmdlZElkJywgdW5kZWZpbmVkLCB0aGlzLnNlbGVjdGVkUmV2aXNpb25FbnRpdHkuZW50aXR5TmFtZSk7XG5cbiAgICAgICAgQXVkaXRVdGlsLmJ1aWxkRGVzY3JpcHRvckZvckVudGl0eVJldmlzaW9uKGRlc2MsIHRoaXMucmV2TW9kZWwsIHRoaXMuc2VsZWN0ZWRSZXZpc2lvbkVudGl0eSk7XG5cbiAgICAgICAgZGVzYy50YWJsZS53aXRoQ29sdW1uc1Jlc2l6YWJsZSgpO1xuICAgICAgICBkZXNjLnRhYmxlLndpdGhDdXJyZW50Q29sdW1uc1Jlb3JkZXJhYmxlKCk7XG4gICAgICAgIGRlc2MudGFibGUud2l0aEN1cnJlbnRDb2x1bW5zVG9nZ2xlYWJsZSgpO1xuICAgICAgICBkZXNjLnRhYmxlLndpdGhEYXRhS2V5KGBFbnRpdHlSZXZpc2lvbnNQYWdlXyR7dGhpcy5zZWxlY3RlZFJldmlzaW9uRW50aXR5LmVudGl0eU5hbWV9YCk7XG5cbiAgICAgICAgcmV0dXJuIGRlc2M7XG4gICAgfVxuXG4gICAgcHJvdGVjdGVkIGNyZWF0ZVRhYmxldmlld0RhdGFQcm92aWRlcigpIHtcbiAgICAgICAgaWYgKCF0aGlzLnJldk1vZGVsIHx8ICF0aGlzLnNlbGVjdGVkUmV2aXNpb25FbnRpdHk/LmVudGl0eU5hbWUpIHtcbiAgICAgICAgICAgIHRocm93IG5ldyBNbmdJbnRlcm5hbEVycm9yKCdObyByZXZpc2lvbiBtb2RlbCBvciByZXZpc2lvbiBlbnRpdHkgaXMgcHJvdmlkZWQgZm9yIHRhYmxldmlldy4nKTtcbiAgICAgICAgfVxuXG4gICAgICAgIGNvbnN0IGVudGl0eU5hbWUgPSB0aGlzLnNlbGVjdGVkUmV2aXNpb25FbnRpdHkuZW50aXR5TmFtZTtcbiAgICAgICAgcmV0dXJuIG5ldyBUYWJsZXZpZXdEYXRhUHJvdmlkZXIoTW5nUmV2RW50aXR5V2l0aElkKS53aXRoR2V0QWxsKHFwID0+XG4gICAgICAgICAgICB0aGlzLnNlbGVjdGVkUmV2aXNpb25FbnRpdHk/LmVudGl0eU5hbWVcbiAgICAgICAgICAgICAgICA/IGNvbWJpbmVMYXRlc3QoW1xuICAgICAgICAgICAgICAgICAgICAgIHRoaXMucmV2aXNpc29uc0FwaVNlcnZpY2UuY291bnRSZXZpc2lvbnNXaXRoU3RhdGVGb3JFbnRpdHlUeXBlKHFwLCBlbnRpdHlOYW1lKSxcbiAgICAgICAgICAgICAgICAgICAgICB0aGlzLnJldmlzaXNvbnNBcGlTZXJ2aWNlLmxpc3RSZXZpc2lvbnNXaXRoU3RhdGVGb3JFbnRpdHlUeXBlKHFwLCBlbnRpdHlOYW1lKVxuICAgICAgICAgICAgICAgICAgXSkucGlwZShcbiAgICAgICAgICAgICAgICAgICAgICBtYXAoKFtjb3VudCwgdmFsdWVzXSkgPT4ge1xuICAgICAgICAgICAgICAgICAgICAgICAgICBjb25zdCByZXZFbnRpdHlXaXRoU3RhdGVBbmRJZExpc3QgPSBbXTtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgZm9yIChjb25zdCByZXZFbnRpdHlXaXRoU3RhdGUgb2YgdmFsdWVzKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb25zdCByZXZFbnRpdHlXaXRoU3RhdGVBbmRJZCA9IG5ldyBNbmdSZXZFbnRpdHlXaXRoSWQoKTtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJldkVudGl0eVdpdGhTdGF0ZUFuZElkLm1lcmdlZElkID0gcmV2RW50aXR5V2l0aFN0YXRlLnJldkVudGl0eT8uWydyZXYnXSArICdfJyArIHJldkVudGl0eVdpdGhTdGF0ZS5lbnRpdHlTdGF0ZT8uWydpZCddO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcmV2RW50aXR5V2l0aFN0YXRlQW5kSWQucmV2VHlwZSA9IHJldkVudGl0eVdpdGhTdGF0ZS5yZXZUeXBlO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcmV2RW50aXR5V2l0aFN0YXRlQW5kSWQucmV2RW50aXR5ID0gcmV2RW50aXR5V2l0aFN0YXRlLnJldkVudGl0eTtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJldkVudGl0eVdpdGhTdGF0ZUFuZElkLmVudGl0eVN0YXRlID0gcmV2RW50aXR5V2l0aFN0YXRlLmVudGl0eVN0YXRlO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcmV2RW50aXR5V2l0aFN0YXRlQW5kSWQuZW50aXR5Q2xhc3NOYW1lID0gcmV2RW50aXR5V2l0aFN0YXRlLmVudGl0eUNsYXNzTmFtZTtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJldkVudGl0eVdpdGhTdGF0ZUFuZElkTGlzdC5wdXNoKHJldkVudGl0eVdpdGhTdGF0ZUFuZElkKTtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICAgICAgICByZXR1cm4gTWVkaXVzUXVlcnlSZXN1bHQuZnJvbUFycmF5KHJldkVudGl0eVdpdGhTdGF0ZUFuZElkTGlzdCwgY291bnQpO1xuICAgICAgICAgICAgICAgICAgICAgIH0pXG4gICAgICAgICAgICAgICAgICApXG4gICAgICAgICAgICAgICAgOiB0aHJvd0Vycm9yKCgpID0+IG5ldyBNbmdJbnRlcm5hbEVycm9yKCdObyByZXZpc2lvbiBlbnRpdHkgaXMgcHJvdmlkZWQgZm9yIGxpc3QuJykpXG4gICAgICAgICk7XG4gICAgfVxuXG4gICAgcHVibGljIG92ZXJyaWRlIGNyZWF0ZUFjdGlvbkRlc2NyaXB0b3JzKCk6IEFycmF5PEFjdGlvbkRlc2NyaXB0b3I8TW5nUmV2RW50aXR5V2l0aElkPj4ge1xuICAgICAgICBpZiAoIXRoaXMucmV2TW9kZWwgfHwgIXRoaXMuc2VsZWN0ZWRSZXZpc2lvbkVudGl0eT8uZW50aXR5TmFtZSkge1xuICAgICAgICAgICAgdGhyb3cgbmV3IE1uZ0ludGVybmFsRXJyb3IoJ05vIHJldmlzaW9uIG1vZGVsIG9yIHJldmlzaW9uIGVudGl0eSBpcyBwcm92aWRlZCBmb3IgdGFibGV2aWV3LicpO1xuICAgICAgICB9XG5cbiAgICAgICAgY29uc3QgZW50aXR5TmFtZSA9IHRoaXMuc2VsZWN0ZWRSZXZpc2lvbkVudGl0eS5lbnRpdHlOYW1lO1xuICAgICAgICBjb25zdCBkZXRhaWxzQWN0aW9uID0gbmV3IEFjdGlvbkVkaXRvckRlc2NyaXB0b3IodGhpcy5kZXNjcmlwdG9yLmRldGFpbHNFZGl0b3IsICdlbnRpdHktcmV2aXNpb24tZGV0YWlscycpXG4gICAgICAgICAgICAud2l0aFBvc2l0aW9uKEFjdGlvblBvc2l0aW9uRW51bS5Sb3dDbGljaylcbiAgICAgICAgICAgIC53aXRoUm91dGVUcmlnZ2VyKCc6aXRlbUlkJylcbiAgICAgICAgICAgIC53aXRoRmV0Y2hGdW5jdGlvbihBY3Rpb25EYXRhUHJvdmlkZXJVdGlsLnJ1bkZldGNoT3JGYWlsKVxuICAgICAgICAgICAgLndpdGhUYWJsZXZpZXdDYXRlZ29yeShUYWJsZXZpZXdBY3Rpb25EZWZhdWx0Q2F0ZWdvcmllcy5ERVRBSUxTKVxuICAgICAgICAgICAgLndpdGhGZXRjaEZ1bmN0aW9uKGN0eCA9PiB7XG4gICAgICAgICAgICAgICAgaWYgKCFlbnRpdHlOYW1lKSB7XG4gICAgICAgICAgICAgICAgICAgIHJldHVybiB0aHJvd0Vycm9yKCgpID0+IG5ldyBNbmdJbnRlcm5hbEVycm9yKCdObyByZXZpc2lvbiBlbnRpdHkgaXMgcHJvdmlkZWQgZm9yIGRldGFpbHMuJykpO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICBpZiAoIWN0eC5wYXJhbWV0ZXJzLml0ZW1JZCkge1xuICAgICAgICAgICAgICAgICAgICByZXR1cm4gdGhyb3dFcnJvcigoKSA9PiBuZXcgTW5nSW50ZXJuYWxFcnJvcignTm8gaXRlbSBpZCBmb3IgcmV2aXNpb24gZW50aXR5IGRldGFpbHMgaXMgcHJvdmlkZWQuJykpO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICBjb25zdCByZXZJZCA9IGN0eC5wYXJhbWV0ZXJzLml0ZW1JZC50b1N0cmluZygpLnNwbGl0KCdfJylbMF07XG4gICAgICAgICAgICAgICAgY29uc3QgaXRlbUlkID0gY3R4LnBhcmFtZXRlcnMuaXRlbUlkLnRvU3RyaW5nKCkuc3BsaXQoJ18nKVsxXTtcbiAgICAgICAgICAgICAgICByZXR1cm4gdGhpcy5yZXZpc2lzb25zQXBpU2VydmljZS5mZXRjaFJldmlzaW9uc1dpdGhTdGF0ZUZvckVudGl0eVR5cGUoZW50aXR5TmFtZSwgcmV2SWQsIGl0ZW1JZCk7XG4gICAgICAgICAgICB9KTtcbiAgICAgICAgZGV0YWlsc0FjdGlvbi53aXRoRWRpdG9yQWN0aW9ucyhbbmV3IEFjdGlvbkVkaXRvclN1Ym1pdERlc2NyaXB0b3IoZGV0YWlsc0FjdGlvbiwgQWN0aW9uRWRpdG9yU3VibWl0VHlwZUVudW0uQ2FuY2VsKV0pO1xuICAgICAgICByZXR1cm4gW2RldGFpbHNBY3Rpb25dO1xuICAgIH1cbn1cbiIsIjxkaXYgY2xhc3M9XCJjYXJkXCI+XG4gICAgPGRpdiBjbGFzcz1cImZpZWxkIG1iLTBcIj5cbiAgICAgICAgPG1uZy1kcm9wZG93blxuICAgICAgICAgICAgaWQ9XCJyZXZpc2lvbkVudGl0eURyb3Bkb3duXCJcbiAgICAgICAgICAgIFtwbGFjZWhvbGRlcl09XCIncGFnZXMuZW50aXR5UmV2aXNpb25zLmRyb3Bkb3duLnBsYWNlaG9sZGVyJyB8IHRyYW5zbGF0ZVwiXG4gICAgICAgICAgICBbaXRlbXNMYWJlbFByb3BlcnR5XT1cIidlbnRpdHlOYW1lJ1wiXG4gICAgICAgICAgICBbKG5nTW9kZWwpXT1cInNlbGVjdGVkUmV2aXNpb25FbnRpdHlcIlxuICAgICAgICAgICAgKHZhbHVlQ2hhbmdlKT1cIm9uUmV2aXNpb25FbnRpdHlDaGFuZ2UoKVwiXG4gICAgICAgICAgICBbZGF0YVByb3ZpZGVyXT1cInJldmlzaW9uRW50aXRpZXNMb29rdXBQcm92aWRlclwiPjwvbW5nLWRyb3Bkb3duPlxuICAgICAgICA8c21hbGwgKm5nSWY9XCIhc2VsZWN0ZWRSZXZpc2lvbkVudGl0eVwiIGNsYXNzPVwiYmxvY2tcIj5cbiAgICAgICAgICAgIHt7ICdwYWdlcy5lbnRpdHlSZXZpc2lvbnMuZHJvcGRvd24uaGVscFRleHQnIHwgdHJhbnNsYXRlIH19XG4gICAgICAgIDwvc21hbGw+XG4gICAgPC9kaXY+XG48L2Rpdj5cbjxkaXYgKm5nSWY9XCJzaG93VGFibGV2aWV3KClcIj5cbiAgICA8bW5nLXRhYmxldmlldy1yb3V0ZSBbZGVzY3JpcHRvcl09XCJkZXNjcmlwdG9yXCIgW2RhdGFQcm92aWRlcl09XCJkYXRhUHJvdmlkZXJcIiBbYWN0aW9uc109XCJhY3Rpb25zXCI+PC9tbmctdGFibGV2aWV3LXJvdXRlPlxuPC9kaXY+XG4iXX0=
@@ -4,7 +4,7 @@ import { takeUntilDestroyed } from '@angular/core/rxjs-interop';
4
4
  import { RouterOutlet } from '@angular/router';
5
5
  import { combineLatest, throwError } from 'rxjs';
6
6
  import { map } from 'rxjs/operators';
7
- import { AMngTableviewRouteComponent, ActionEditorDescriptor, ActionEditorSubmitDescriptor, ActionEditorSubmitTypeEnum, ActionPositionEnum, EditorDescriptor, MediusQueryResult, MngErrorInternal, MngTableviewComponent, MngTableviewRouteComponent, TableFilterDisplayEnum, TableviewActionDefaultCategories, TableviewDataProvider, TableviewDescriptor, TableviewEditorTypeEnum } from '@mediusinc/mng-commons';
7
+ import { AMngTableviewRouteComponent, ActionEditorDescriptor, ActionEditorSubmitDescriptor, ActionEditorSubmitTypeEnum, ActionPositionEnum, EditorDescriptor, MediusQueryResult, MngInternalError, MngTableviewComponent, MngTableviewRouteComponent, TableFilterDisplayEnum, TableviewActionDefaultCategories, TableviewDataProvider, TableviewDescriptor, TableviewEditorTypeEnum } from '@mediusinc/mng-commons';
8
8
  import { MngRevEntityWithChangesDto } from '../../../api/models/revEntityWithChangesDto';
9
9
  import { MngAuditRevisionsApiService } from '../../../api/services/audit-revisions-api.service';
10
10
  import { MngAuditService } from '../../../api/services/audit.service';
@@ -66,7 +66,7 @@ export class MngAuditRevisionsPageComponent extends AMngTableviewRouteComponent
66
66
  revEntityWithChanges.entityNameChangesMap = item.entityNameChangesMap;
67
67
  return revEntityWithChanges;
68
68
  }))
69
- : throwError(() => new MngErrorInternal('No revision id provided for fetch function')));
69
+ : throwError(() => new MngInternalError('No revision id provided for fetch function')));
70
70
  detailsAction.withEditorActions([new ActionEditorSubmitDescriptor(detailsAction, ActionEditorSubmitTypeEnum.Cancel)]);
71
71
  return [detailsAction];
72
72
  }
@@ -77,4 +77,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.1.7", ngImpor
77
77
  type: Component,
78
78
  args: [{ standalone: true, selector: 'mng-audit-revisions-page', imports: [NgIf, MngTableviewComponent, AsyncPipe, MngTableviewComponent, RouterOutlet, JsonPipe, MngTableviewRouteComponent], changeDetection: ChangeDetectionStrategy.OnPush, template: "<mng-tableview-route *ngIf=\"showTableview()\" [descriptor]=\"descriptor\" [dataProvider]=\"dataProvider\" [actions]=\"actions\"></mng-tableview-route>\n" }]
79
79
  }] });
80
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYXVkaXQtcmV2aXNpb25zLXBhZ2UuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vc3JjL2xpYi9jb21wb25lbnRzL3BhZ2VzL3JldmlzaW9ucy9hdWRpdC1yZXZpc2lvbnMtcGFnZS5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi9zcmMvbGliL2NvbXBvbmVudHMvcGFnZXMvcmV2aXNpb25zL2F1ZGl0LXJldmlzaW9ucy1wYWdlLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBQyxTQUFTLEVBQUUsUUFBUSxFQUFFLElBQUksRUFBQyxNQUFNLGlCQUFpQixDQUFDO0FBQzFELE9BQU8sRUFBQyx1QkFBdUIsRUFBRSxTQUFTLEVBQUUsVUFBVSxFQUFFLFFBQVEsRUFBMEIsTUFBTSxFQUFFLE1BQU0sRUFBQyxNQUFNLGVBQWUsQ0FBQztBQUMvSCxPQUFPLEVBQUMsa0JBQWtCLEVBQUMsTUFBTSw0QkFBNEIsQ0FBQztBQUM5RCxPQUFPLEVBQUMsWUFBWSxFQUFDLE1BQU0saUJBQWlCLENBQUM7QUFFN0MsT0FBTyxFQUFDLGFBQWEsRUFBRSxVQUFVLEVBQUMsTUFBTSxNQUFNLENBQUM7QUFDL0MsT0FBTyxFQUFDLEdBQUcsRUFBQyxNQUFNLGdCQUFnQixDQUFDO0FBRW5DLE9BQU8sRUFDSCwyQkFBMkIsRUFFM0Isc0JBQXNCLEVBQ3RCLDRCQUE0QixFQUM1QiwwQkFBMEIsRUFDMUIsa0JBQWtCLEVBQ2xCLGdCQUFnQixFQUVoQixpQkFBaUIsRUFDakIsZ0JBQWdCLEVBQ2hCLHFCQUFxQixFQUNyQiwwQkFBMEIsRUFDMUIsc0JBQXNCLEVBQ3RCLGdDQUFnQyxFQUNoQyxxQkFBcUIsRUFDckIsbUJBQW1CLEVBQ25CLHVCQUF1QixFQUMxQixNQUFNLHdCQUF3QixDQUFDO0FBR2hDLE9BQU8sRUFBQywwQkFBMEIsRUFBQyxNQUFNLDZDQUE2QyxDQUFDO0FB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QkFBb0IsQ0FBQyxHQUFHLEdBQUcsR0FBRyxDQUFDLFVBQVUsQ0FBQyxNQUFNLENBQUM7Z0JBQ2pELG9CQUFvQixDQUFDLFNBQVMsR0FBRyxJQUFJLENBQUMsU0FBUyxDQUFDO2dCQUNoRCxvQkFBb0IsQ0FBQyxvQkFBb0IsR0FBRyxJQUFJLENBQUMsb0JBQW9CLENBQUM7Z0JBQ3RFLE9BQU8sb0JBQW9CLENBQUM7WUFDaEMsQ0FBQyxDQUFDLENBQ0w7WUFDSCxDQUFDLENBQUMsVUFBVSxDQUFDLEdBQUcsRUFBRSxDQUFDLElBQUksZ0JBQWdCLENBQUMsNENBQTRDLENBQUMsQ0FBQyxDQUM3RixDQUFDO1FBQ04sYUFBYSxDQUFDLGlCQUFpQixDQUFDLENBQUMsSUFBSSw0QkFBNEIsQ0FBQyxhQUFhLEVBQUUsMEJBQTBCLENBQUMsTUFBTSxDQUFDLENBQUMsQ0FBQyxDQUFDO1FBQ3RILE9BQU8sQ0FBQyxhQUFhLENBQUMsQ0FBQztJQUMzQixDQUFDOzhHQXZFUSw4QkFBOEI7a0dBQTlCLDhCQUE4QiwyR0M1QzNDLDJKQUNBLDRDRHdDYyxJQUFJLDZGQUFtRiwwQkFBMEI7OzJGQUdsSCw4QkFBOEI7a0JBUDFDLFNBQVM7aUNBQ00sSUFBSSxZQUNOLDBCQUEwQixXQUUzQixDQUFDLElBQUksRUFBRSxxQkFBcUIsRUFBRSxTQUFTLEVBQUUscUJBQXFCLEVBQUUsWUFBWSxFQUFFLFFBQVEsRUFBRSwwQkFBMEIsQ0FBQyxtQkFDM0csdUJBQXVCLENBQUMsTUFBTSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7QXN5bmNQaXBlLCBKc29uUGlwZSwgTmdJZn0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uJztcbmltcG9ydCB7Q2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3ksIENvbXBvbmVudCwgRGVzdHJveVJlZiwgSW5qZWN0b3IsIE9uSW5pdCwgV3JpdGFibGVTaWduYWwsIGluamVjdCwgc2lnbmFsfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7dGFrZVVudGlsRGVzdHJveWVkfSBmcm9tICdAYW5ndWxhci9jb3JlL3J4anMtaW50ZXJvcCc7XG5pbXBvcnQge1JvdXRlck91dGxldH0gZnJvbSAnQGFuZ3VsYXIvcm91dGVyJztcblxuaW1wb3J0IHtjb21iaW5lTGF0ZXN0LCB0aHJvd0Vycm9yfSBmcm9tICdyeGpzJztcbmltcG9ydCB7bWFwfSBmcm9tICdyeGpzL29wZXJhdG9ycyc7XG5cbmltcG9ydCB7XG4gICAgQU1uZ1RhYmxldmlld1JvdXRlQ29tcG9uZW50LFxuICAgIEFjdGlvbkRlc2NyaXB0b3IsXG4gICAgQWN0aW9uRWRpdG9yRGVzY3JpcHRvcixcbiAgICBBY3Rpb25FZGl0b3JTdWJtaXREZXNjcmlwdG9yLFxuICAgIEFjdGlvbkVkaXRvclN1Ym1pdFR5cGVFbnVtLFxuICAgIEFjdGlvblBvc2l0aW9uRW51bSxcbiAgICBFZGl0b3JEZXNjcmlwdG9yLFxuICAgIElUYWJsZXZpZXdEYXRhUHJvdmlkZXIsXG4gICAgTWVkaXVzUXVlcnlSZXN1bHQsXG4gICAgTW5nRXJyb3JJbnRlcm5hbCxcbiAgICBNbmdUYWJsZXZpZXdDb21wb25lbnQsXG4gICAgTW5nVGFibGV2aWV3Um91dGVDb21wb25lbnQsXG4gICAgVGFibGVGaWx0ZXJEaXNwbGF5RW51bSxcbiAgICBUYWJsZXZpZXdBY3Rpb25EZWZhdWx0Q2F0ZWdvcmllcyxcbiAgICBUYWJsZXZpZXdEYXRhUHJvdmlkZXIsXG4gICAgVGFibGV2aWV3RGVzY3JpcHRvcixcbiAgICBUYWJsZXZpZXdFZGl0b3JUeXBlRW51bVxufSBmcm9tICdAbWVkaXVzaW5jL21uZy1jb21tb25zJztcblxuaW1wb3J0IHtNbmdHdWlFbnRpdHlNb2RlbER0b30gZnJvbSAnLi4vLi4vLi4vYXBpL21vZGVscy9ndWlFbnRpdHlNb2RlbCc7XG5pbXBvcnQge01uZ1JldkVudGl0eVdpdGhDaGFuZ2VzRHRvfSBmcm9tICcuLi8uLi8uLi9hcGkvbW9kZWxzL3JldkVudGl0eVdpdGhDaGFuZ2VzRHRvJztcbmltcG9ydCB7TW5nQXVkaXRSZXZpc2lvbnNBcGlTZXJ2aWNlfSBmcm9tICcuLi8uLi8uLi9hcGkvc2VydmljZXMvYXVkaXQtcmV2aXNpb25zLWFwaS5zZXJ2aWNlJztcbmltcG9ydCB7TW5nQXVkaXRTZXJ2aWNlfSBmcm9tICcuLi8uLi8uLi9hcGkvc2VydmljZXMvYXVkaXQuc2VydmljZSc7XG5pbXBvcnQge01uZ1JldkVudGl0eURldGFpbGVkfSBmcm9tICcuLi8uLi8uLi9tb2RlbHMvcmV2LWVudGl0eS1kZXRhaWxlZC5tb2RlbCc7XG5pbXBvcnQge01uZ1JldkVudGl0eX0gZnJvbSAnLi4vLi4vLi4vbW9kZWxzL3Jldi1lbnRpdHkubW9kZWwnO1xuaW1wb3J0IHtBdWRpdFV0aWx9IGZyb20gJy4uLy4uLy4uL3V0aWxzL2F1ZGl0LnV0aWwnO1xuaW1wb3J0IHtFbnRpdHlDaGFuZ2VzRmllbGRDb21wb25lbnR9IGZyb20gJy4uLy4uL2VudGl0eS1jaGFuZ2VzLWZpZWxkL2VudGl0eS1jaGFuZ2VzLWZpZWxkLmNvbXBvbmVudCc7XG5cbkBDb21wb25lbnQoe1xuICAgIHN0YW5kYWxvbmU6IHRydWUsXG4gICAgc2VsZWN0b3I6ICdtbmctYXVkaXQtcmV2aXNpb25zLXBhZ2UnLFxuICAgIHRlbXBsYXRlVXJsOiAnLi9hdWRpdC1yZXZpc2lvbnMtcGFnZS5jb21wb25lbnQuaHRtbCcsXG4gICAgaW1wb3J0czogW05nSWYsIE1uZ1RhYmxldmlld0NvbXBvbmVudCwgQXN5bmNQaXBlLCBNbmdUYWJsZXZpZXdDb21wb25lbnQsIFJvdXRlck91dGxldCwgSnNvblBpcGUsIE1uZ1RhYmxldmlld1JvdXRlQ29tcG9uZW50XSxcbiAgICBjaGFuZ2VEZXRlY3Rpb246IENoYW5nZURldGVjdGlvblN0cmF0ZWd5Lk9uUHVzaFxufSlcbmV4cG9ydCBjbGFzcyBNbmdBdWRpdFJldmlzaW9uc1BhZ2VDb21wb25lbnQgZXh0ZW5kcyBBTW5nVGFibGV2aWV3Um91dGVDb21wb25lbnQ8TW5nUmV2RW50aXR5LCB1bmtub3duPiBpbXBsZW1lbnRzIE9uSW5pdCB7XG4gICAgcHJpdmF0ZSBkZXN0cm95UmVmID0gaW5qZWN0KERlc3Ryb3lSZWYpO1xuICAgIHByaXZhdGUgaW5qZWN0b3IgPSBpbmplY3QoSW5qZWN0b3IpO1xuICAgIHByaXZhdGUgYXVkaXRTZXJ2aWNlID0gaW5qZWN0KE1uZ0F1ZGl0U2VydmljZSk7XG4gICAgcHJpdmF0ZSByZXZpc2lzb25zQXBpU2VydmljZSA9IGluamVjdChNbmdBdWRpdFJldmlzaW9uc0FwaVNlcnZpY2UpO1xuXG4gICAgcHJpdmF0ZSByZXZNb2RlbD86IE1uZ0d1aUVudGl0eU1vZGVsRHRvO1xuICAgIHB1YmxpYyBzaG93VGFibGV2aWV3OiBXcml0YWJsZVNpZ25hbDxib29sZWFuPiA9IHNpZ25hbChmYWxzZSk7XG5cbiAgICBvdmVycmlkZSBuZ09uSW5pdCgpOiB2b2lkIHtcbiAgICAgICAgdGhpcy5hdWRpdFNlcnZpY2UucmV2TW9kZWwkLnBpcGUodGFrZVVudGlsRGVzdHJveWVkKHRoaXMuZGVzdHJveVJlZikpLnN1YnNjcmliZSh7XG4gICAgICAgICAgICBuZXh0OiBtb2RlbCA9PiB7XG4gICAgICAgICAgICAgICAgdGhpcy5yZXZNb2RlbCA9IG1vZGVsO1xuICAgICAgICAgICAgICAgIHN1cGVyLm5nT25Jbml0KCk7XG4gICAgICAgICAgICAgICAgc2V0VGltZW91dCgoKSA9PiB0aGlzLnNob3dUYWJsZXZpZXcuc2V0KHRydWUpKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfSk7XG4gICAgfVxuXG4gICAgcHJvdGVjdGVkIGNyZWF0ZVRhYmxldmlld0Rlc2NyaXB0b3IoKTogVGFibGV2aWV3RGVzY3JpcHRvcjxNbmdSZXZFbnRpdHk+IHtcbiAgICAgICAgaWYgKHRoaXMucmV2TW9kZWwpIHtcbiAgICAgICAgICAgIGNvbnN0IGlkUHJvcGVydHkgPSB0aGlzLnJldk1vZGVsLnByb3BlcnRpZXM/LmZpbHRlcihwcm9wID0+IHByb3AuaXNJZCkubWFwKHByb3AgPT4gcHJvcC5yZXNvbHZlZFByb3BlcnR5TmFtZSlbMF07XG4gICAgICAgICAgICBjb25zdCBkZXNjID0gbmV3IFRhYmxldmlld0Rlc2NyaXB0b3IoTW5nUmV2RW50aXR5LCBpZFByb3BlcnR5LCB1bmRlZmluZWQsIHRoaXMucmV2TW9kZWwuZW50aXR5TmFtZSk7XG4gICAgICAgICAgICBjb25zdCBkZXRhaWxzRGVzY3JpcHRvciA9IG5ldyBFZGl0b3JEZXNjcmlwdG9yKE1uZ1JldkVudGl0eVdpdGhDaGFuZ2VzRHRvLCAncmV2RW50aXR5LicgKyBpZFByb3BlcnR5LCB1bmRlZmluZWQsIFRhYmxldmlld0VkaXRvclR5cGVFbnVtLkRldGFpbHMpO1xuXG4gICAgICAgICAgICBpZiAodGhpcy5yZXZNb2RlbC5wcm9wZXJ0aWVzKSB7XG4gICAgICAgICAgICAgICAgQXVkaXRVdGlsLmFkZENvbHVtbnNGcm9tTW9kZWwoZGVzYy50YWJsZSwgdGhpcy5yZXZNb2RlbC5wcm9wZXJ0aWVzKTtcbiAgICAgICAgICAgICAgICBBdWRpdFV0aWwuYWRkRmllbGRzRnJvbU1vZGVsPE1uZ1JldkVudGl0eVdpdGhDaGFuZ2VzRHRvPihkZXRhaWxzRGVzY3JpcHRvciwgdGhpcy5yZXZNb2RlbC5wcm9wZXJ0aWVzKTtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgZGV0YWlsc0Rlc2NyaXB0b3IuYWRkRmllbGQoJ2VudGl0eU5hbWVDaGFuZ2VzTWFwJykuYXNDdXN0b21Db21wb25lbnQoRW50aXR5Q2hhbmdlc0ZpZWxkQ29tcG9uZW50LCBbJ2ZpZWxkLW5vLWxhYmVsJ10sIHtpbmplY3RvcjogdGhpcy5pbmplY3Rvcn0pLndpdGhEaXNhYmxlZCgpO1xuXG4gICAgICAgICAgICBkZXNjLndpdGhEZXRhaWxzRGVzY3JpcHRvcihkZXRhaWxzRGVzY3JpcHRvciBhcyBFZGl0b3JEZXNjcmlwdG9yPE1uZ1JldkVudGl0eT4pOyAvLyBNbmdSZXZFbnRpdHkgaXMgZXh0ZW5kZWQgYnkgTW5nUmV2RW50aXR5V2l0aENoYW5nZXNEdG8sIHNvIG5vIHJlYWwgaGFybSBoZXJlXG4gICAgICAgICAgICBkZXNjLnRhYmxlLndpdGhGaWx0ZXJEaXNwbGF5KFRhYmxlRmlsdGVyRGlzcGxheUVudW0uUm93KTtcblxuICAgICAgICAgICAgcmV0dXJuIGRlc2M7XG4gICAgICAgIH1cbiAgICAgICAgcmV0dXJuIG5ldyBUYWJsZXZpZXdEZXNjcmlwdG9yKE1uZ1JldkVudGl0eSk7XG4gICAgfVxuXG4gICAgcHJvdGVjdGVkIGNyZWF0ZVRhYmxldmlld0RhdGFQcm92aWRlcigpOiBJVGFibGV2aWV3RGF0YVByb3ZpZGVyPE1uZ1JldkVudGl0eSwgdW5rbm93bj4ge1xuICAgICAgICBpZiAodGhpcy5yZXZNb2RlbCkge1xuICAgICAgICAgICAgcmV0dXJuIG5ldyBUYWJsZXZpZXdEYXRhUHJvdmlkZXIoTW5nUmV2RW50aXR5KS53aXRoR2V0QWxsKHFwID0+XG4gICAgICAgICAgICAgICAgY29tYmluZUxhdGVzdChbdGhpcy5yZXZpc2lzb25zQXBpU2VydmljZS5nZXRSZXZpc2lvbkNvdW50KHFwKSwgdGhpcy5yZXZpc2lzb25zQXBpU2VydmljZS5nZXRSZXZpc2lvbkxpc3QocXApXSkucGlwZShcbiAgICAgICAgICAgICAgICAgICAgbWFwKChbY291bnQsIHZhbHVlc10pID0+IE1lZGl1c1F1ZXJ5UmVzdWx0LmZyb21BcnJheSh2YWx1ZXMsIGNvdW50KSlcbiAgICAgICAgICAgICAgICApXG4gICAgICAgICAgICApO1xuICAgICAgICB9XG4gICAgICAgIHJldHVybiBuZXcgVGFibGV2aWV3RGF0YVByb3ZpZGVyKE1uZ1JldkVudGl0eSk7XG4gICAgfVxuXG4gICAgcHJvdGVjdGVkIG92ZXJyaWRlIGNyZWF0ZUFjdGlvbkRlc2NyaXB0b3JzKCk6IEFycmF5PEFjdGlvbkRlc2NyaXB0b3I8TW5nUmV2RW50aXR5Pj4ge1xuICAgICAgICBjb25zdCBkZXRhaWxzQWN0aW9uID0gbmV3IEFjdGlvbkVkaXRvckRlc2NyaXB0b3IodGhpcy5kZXNjcmlwdG9yLmRldGFpbHNFZGl0b3IsICdyZXZpc2lvbi1kZXRhaWxzJylcbiAgICAgICAgICAgIC53aXRoUG9zaXRpb24oQWN0aW9uUG9zaXRpb25FbnVtLlJvd0NsaWNrKVxuICAgICAgICAgICAgLndpdGhSb3V0ZVRyaWdnZXIoJzppdGVtSWQnKVxuICAgICAgICAgICAgLndpdGhUYWJsZXZpZXdDYXRlZ29yeShUYWJsZXZpZXdBY3Rpb25EZWZhdWx0Q2F0ZWdvcmllcy5ERVRBSUxTKVxuICAgICAgICAgICAgLndpdGhGZXRjaEZ1bmN0aW9uKGN0eCA9PlxuICAgICAgICAgICAgICAgIGN0eC5wYXJhbWV0ZXJzLml0ZW1JZFxuICAgICAgICAgICAgICAgICAgICA/IHRoaXMucmV2aXNpc29uc0FwaVNlcnZpY2UuZ2V0QWxsQ2hhbmdlc0ZvclJldmlzaW9uKGN0eC5wYXJhbWV0ZXJzLml0ZW1JZCkucGlwZShcbiAgICAgICAgICAgICAgICAgICAgICAgICAgbWFwKGl0ZW0gPT4ge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY29uc3QgcmV2RW50aXR5V2l0aENoYW5nZXMgPSBuZXcgTW5nUmV2RW50aXR5RGV0YWlsZWQoKTtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJldkVudGl0eVdpdGhDaGFuZ2VzLnJldiA9IGN0eC5wYXJhbWV0ZXJzLml0ZW1JZDtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJldkVudGl0eVdpdGhDaGFuZ2VzLnJldkVudGl0eSA9IGl0ZW0ucmV2RW50aXR5O1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcmV2RW50aXR5V2l0aENoYW5nZXMuZW50aXR5TmFtZUNoYW5nZXNNYXAgPSBpdGVtLmVudGl0eU5hbWVDaGFuZ2VzTWFwO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuIHJldkVudGl0eVdpdGhDaGFuZ2VzO1xuICAgICAgICAgICAgICAgICAgICAgICAgICB9KVxuICAgICAgICAgICAgICAgICAgICAgIClcbiAgICAgICAgICAgICAgICAgICAgOiB0aHJvd0Vycm9yKCgpID0+IG5ldyBNbmdFcnJvckludGVybmFsKCdObyByZXZpc2lvbiBpZCBwcm92aWRlZCBmb3IgZmV0Y2ggZnVuY3Rpb24nKSlcbiAgICAgICAgICAgICk7XG4gICAgICAgIGRldGFpbHNBY3Rpb24ud2l0aEVkaXRvckFjdGlvbnMoW25ldyBBY3Rpb25FZGl0b3JTdWJtaXREZXNjcmlwdG9yKGRldGFpbHNBY3Rpb24sIEFjdGlvbkVkaXRvclN1Ym1pdFR5cGVFbnVtLkNhbmNlbCldKTtcbiAgICAgICAgcmV0dXJuIFtkZXRhaWxzQWN0aW9uXTtcbiAgICB9XG59XG4iLCI8bW5nLXRhYmxldmlldy1yb3V0ZSAqbmdJZj1cInNob3dUYWJsZXZpZXcoKVwiIFtkZXNjcmlwdG9yXT1cImRlc2NyaXB0b3JcIiBbZGF0YVByb3ZpZGVyXT1cImRhdGFQcm92aWRlclwiIFthY3Rpb25zXT1cImFjdGlvbnNcIj48L21uZy10YWJsZXZpZXctcm91dGU+XG4iXX0=
80
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYXVkaXQtcmV2aXNpb25zLXBhZ2UuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vc3JjL2xpYi9jb21wb25lbnRzL3BhZ2VzL3JldmlzaW9ucy9hdWRpdC1yZXZpc2lvbnMtcGFnZS5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi9zcmMvbGliL2NvbXBvbmVudHMvcGFnZXMvcmV2aXNpb25zL2F1ZGl0LXJldmlzaW9ucy1wYWdlLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBQyxTQUFTLEVBQUUsUUFBUSxFQUFFLElBQUksRUFBQyxNQUFNLGlCQUFpQixDQUFDO0FBQzFELE9BQU8sRUFBQyx1QkFBdUIsRUFBRSxTQUFTLEVBQUUsVUFBVSxFQUFFLFFBQVEsRUFBMEIsTUFBTSxFQUFFLE1BQU0sRUFBQyxNQUFNLGVBQWUsQ0FBQztBQUMvSCxPQUFPLEVBQUMsa0JBQWtCLEVBQUMsTUFBTSw0QkFBNEIsQ0FBQztBQUM5RCxPQUFPLEVBQUMsWUFBWSxFQUFDLE1BQU0saUJBQWlCLENBQUM7QUFFN0MsT0FBTyxFQUFDLGFBQWEsRUFBRSxVQUFVLEVBQUMsTUFBTSxNQUFNLENBQUM7QUFDL0MsT0FBTyxFQUFDLEdBQUcsRUFBQyxNQUFNLGdCQUFnQixDQUFDO0FBRW5DLE9BQU8sRUFDSCwyQkFBMkIsRUFFM0Isc0JBQXNCLEVBQ3RCLDRCQUE0QixFQUM1QiwwQkFBMEIsRUFDMUIsa0JBQWtCLEVBQ2xCLGdCQUFnQixFQUVoQixpQkFBaUIsRUFDakIsZ0JBQWdCLEVBQ2hCLHFCQUFxQixFQUNyQiwwQkFBMEIsRUFDMUIsc0JBQXNCLEVBQ3RCLGdDQUFnQyxFQUNoQyxxQkFBcUIsRUFDckIsbUJBQW1CLEVBQ25CLHVCQUF1QixFQUMxQixNQUFNLHdCQUF3QixDQUFDO0FBR2hDLE9BQU8sRUFBQywwQkFBMEIsRUFBQyxNQUFNLDZDQUE2QyxDQUFDO0FB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QkFBb0IsQ0FBQyxHQUFHLEdBQUcsR0FBRyxDQUFDLFVBQVUsQ0FBQyxNQUFNLENBQUM7Z0JBQ2pELG9CQUFvQixDQUFDLFNBQVMsR0FBRyxJQUFJLENBQUMsU0FBUyxDQUFDO2dCQUNoRCxvQkFBb0IsQ0FBQyxvQkFBb0IsR0FBRyxJQUFJLENBQUMsb0JBQW9CLENBQUM7Z0JBQ3RFLE9BQU8sb0JBQW9CLENBQUM7WUFDaEMsQ0FBQyxDQUFDLENBQ0w7WUFDSCxDQUFDLENBQUMsVUFBVSxDQUFDLEdBQUcsRUFBRSxDQUFDLElBQUksZ0JBQWdCLENBQUMsNENBQTRDLENBQUMsQ0FBQyxDQUM3RixDQUFDO1FBQ04sYUFBYSxDQUFDLGlCQUFpQixDQUFDLENBQUMsSUFBSSw0QkFBNEIsQ0FBQyxhQUFhLEVBQUUsMEJBQTBCLENBQUMsTUFBTSxDQUFDLENBQUMsQ0FBQyxDQUFDO1FBQ3RILE9BQU8sQ0FBQyxhQUFhLENBQUMsQ0FBQztJQUMzQixDQUFDOzhHQXZFUSw4QkFBOEI7a0dBQTlCLDhCQUE4QiwyR0M1QzNDLDJKQUNBLDRDRHdDYyxJQUFJLDZGQUFtRiwwQkFBMEI7OzJGQUdsSCw4QkFBOEI7a0JBUDFDLFNBQVM7aUNBQ00sSUFBSSxZQUNOLDBCQUEwQixXQUUzQixDQUFDLElBQUksRUFBRSxxQkFBcUIsRUFBRSxTQUFTLEVBQUUscUJBQXFCLEVBQUUsWUFBWSxFQUFFLFFBQVEsRUFBRSwwQkFBMEIsQ0FBQyxtQkFDM0csdUJBQXVCLENBQUMsTUFBTSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7QXN5bmNQaXBlLCBKc29uUGlwZSwgTmdJZn0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uJztcbmltcG9ydCB7Q2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3ksIENvbXBvbmVudCwgRGVzdHJveVJlZiwgSW5qZWN0b3IsIE9uSW5pdCwgV3JpdGFibGVTaWduYWwsIGluamVjdCwgc2lnbmFsfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7dGFrZVVudGlsRGVzdHJveWVkfSBmcm9tICdAYW5ndWxhci9jb3JlL3J4anMtaW50ZXJvcCc7XG5pbXBvcnQge1JvdXRlck91dGxldH0gZnJvbSAnQGFuZ3VsYXIvcm91dGVyJztcblxuaW1wb3J0IHtjb21iaW5lTGF0ZXN0LCB0aHJvd0Vycm9yfSBmcm9tICdyeGpzJztcbmltcG9ydCB7bWFwfSBmcm9tICdyeGpzL29wZXJhdG9ycyc7XG5cbmltcG9ydCB7XG4gICAgQU1uZ1RhYmxldmlld1JvdXRlQ29tcG9uZW50LFxuICAgIEFjdGlvbkRlc2NyaXB0b3IsXG4gICAgQWN0aW9uRWRpdG9yRGVzY3JpcHRvcixcbiAgICBBY3Rpb25FZGl0b3JTdWJtaXREZXNjcmlwdG9yLFxuICAgIEFjdGlvbkVkaXRvclN1Ym1pdFR5cGVFbnVtLFxuICAgIEFjdGlvblBvc2l0aW9uRW51bSxcbiAgICBFZGl0b3JEZXNjcmlwdG9yLFxuICAgIElUYWJsZXZpZXdEYXRhUHJvdmlkZXIsXG4gICAgTWVkaXVzUXVlcnlSZXN1bHQsXG4gICAgTW5nSW50ZXJuYWxFcnJvcixcbiAgICBNbmdUYWJsZXZpZXdDb21wb25lbnQsXG4gICAgTW5nVGFibGV2aWV3Um91dGVDb21wb25lbnQsXG4gICAgVGFibGVGaWx0ZXJEaXNwbGF5RW51bSxcbiAgICBUYWJsZXZpZXdBY3Rpb25EZWZhdWx0Q2F0ZWdvcmllcyxcbiAgICBUYWJsZXZpZXdEYXRhUHJvdmlkZXIsXG4gICAgVGFibGV2aWV3RGVzY3JpcHRvcixcbiAgICBUYWJsZXZpZXdFZGl0b3JUeXBlRW51bVxufSBmcm9tICdAbWVkaXVzaW5jL21uZy1jb21tb25zJztcblxuaW1wb3J0IHtNbmdHdWlFbnRpdHlNb2RlbER0b30gZnJvbSAnLi4vLi4vLi4vYXBpL21vZGVscy9ndWlFbnRpdHlNb2RlbCc7XG5pbXBvcnQge01uZ1JldkVudGl0eVdpdGhDaGFuZ2VzRHRvfSBmcm9tICcuLi8uLi8uLi9hcGkvbW9kZWxzL3JldkVudGl0eVdpdGhDaGFuZ2VzRHRvJztcbmltcG9ydCB7TW5nQXVkaXRSZXZpc2lvbnNBcGlTZXJ2aWNlfSBmcm9tICcuLi8uLi8uLi9hcGkvc2VydmljZXMvYXVkaXQtcmV2aXNpb25zLWFwaS5zZXJ2aWNlJztcbmltcG9ydCB7TW5nQXVkaXRTZXJ2aWNlfSBmcm9tICcuLi8uLi8uLi9hcGkvc2VydmljZXMvYXVkaXQuc2VydmljZSc7XG5pbXBvcnQge01uZ1JldkVudGl0eURldGFpbGVkfSBmcm9tICcuLi8uLi8uLi9tb2RlbHMvcmV2LWVudGl0eS1kZXRhaWxlZC5tb2RlbCc7XG5pbXBvcnQge01uZ1JldkVudGl0eX0gZnJvbSAnLi4vLi4vLi4vbW9kZWxzL3Jldi1lbnRpdHkubW9kZWwnO1xuaW1wb3J0IHtBdWRpdFV0aWx9IGZyb20gJy4uLy4uLy4uL3V0aWxzL2F1ZGl0LnV0aWwnO1xuaW1wb3J0IHtFbnRpdHlDaGFuZ2VzRmllbGRDb21wb25lbnR9IGZyb20gJy4uLy4uL2VudGl0eS1jaGFuZ2VzLWZpZWxkL2VudGl0eS1jaGFuZ2VzLWZpZWxkLmNvbXBvbmVudCc7XG5cbkBDb21wb25lbnQoe1xuICAgIHN0YW5kYWxvbmU6IHRydWUsXG4gICAgc2VsZWN0b3I6ICdtbmctYXVkaXQtcmV2aXNpb25zLXBhZ2UnLFxuICAgIHRlbXBsYXRlVXJsOiAnLi9hdWRpdC1yZXZpc2lvbnMtcGFnZS5jb21wb25lbnQuaHRtbCcsXG4gICAgaW1wb3J0czogW05nSWYsIE1uZ1RhYmxldmlld0NvbXBvbmVudCwgQXN5bmNQaXBlLCBNbmdUYWJsZXZpZXdDb21wb25lbnQsIFJvdXRlck91dGxldCwgSnNvblBpcGUsIE1uZ1RhYmxldmlld1JvdXRlQ29tcG9uZW50XSxcbiAgICBjaGFuZ2VEZXRlY3Rpb246IENoYW5nZURldGVjdGlvblN0cmF0ZWd5Lk9uUHVzaFxufSlcbmV4cG9ydCBjbGFzcyBNbmdBdWRpdFJldmlzaW9uc1BhZ2VDb21wb25lbnQgZXh0ZW5kcyBBTW5nVGFibGV2aWV3Um91dGVDb21wb25lbnQ8TW5nUmV2RW50aXR5LCB1bmtub3duPiBpbXBsZW1lbnRzIE9uSW5pdCB7XG4gICAgcHJpdmF0ZSBkZXN0cm95UmVmID0gaW5qZWN0KERlc3Ryb3lSZWYpO1xuICAgIHByaXZhdGUgaW5qZWN0b3IgPSBpbmplY3QoSW5qZWN0b3IpO1xuICAgIHByaXZhdGUgYXVkaXRTZXJ2aWNlID0gaW5qZWN0KE1uZ0F1ZGl0U2VydmljZSk7XG4gICAgcHJpdmF0ZSByZXZpc2lzb25zQXBpU2VydmljZSA9IGluamVjdChNbmdBdWRpdFJldmlzaW9uc0FwaVNlcnZpY2UpO1xuXG4gICAgcHJpdmF0ZSByZXZNb2RlbD86IE1uZ0d1aUVudGl0eU1vZGVsRHRvO1xuICAgIHB1YmxpYyBzaG93VGFibGV2aWV3OiBXcml0YWJsZVNpZ25hbDxib29sZWFuPiA9IHNpZ25hbChmYWxzZSk7XG5cbiAgICBvdmVycmlkZSBuZ09uSW5pdCgpOiB2b2lkIHtcbiAgICAgICAgdGhpcy5hdWRpdFNlcnZpY2UucmV2TW9kZWwkLnBpcGUodGFrZVVudGlsRGVzdHJveWVkKHRoaXMuZGVzdHJveVJlZikpLnN1YnNjcmliZSh7XG4gICAgICAgICAgICBuZXh0OiBtb2RlbCA9PiB7XG4gICAgICAgICAgICAgICAgdGhpcy5yZXZNb2RlbCA9IG1vZGVsO1xuICAgICAgICAgICAgICAgIHN1cGVyLm5nT25Jbml0KCk7XG4gICAgICAgICAgICAgICAgc2V0VGltZW91dCgoKSA9PiB0aGlzLnNob3dUYWJsZXZpZXcuc2V0KHRydWUpKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfSk7XG4gICAgfVxuXG4gICAgcHJvdGVjdGVkIGNyZWF0ZVRhYmxldmlld0Rlc2NyaXB0b3IoKTogVGFibGV2aWV3RGVzY3JpcHRvcjxNbmdSZXZFbnRpdHk+IHtcbiAgICAgICAgaWYgKHRoaXMucmV2TW9kZWwpIHtcbiAgICAgICAgICAgIGNvbnN0IGlkUHJvcGVydHkgPSB0aGlzLnJldk1vZGVsLnByb3BlcnRpZXM/LmZpbHRlcihwcm9wID0+IHByb3AuaXNJZCkubWFwKHByb3AgPT4gcHJvcC5yZXNvbHZlZFByb3BlcnR5TmFtZSlbMF07XG4gICAgICAgICAgICBjb25zdCBkZXNjID0gbmV3IFRhYmxldmlld0Rlc2NyaXB0b3IoTW5nUmV2RW50aXR5LCBpZFByb3BlcnR5LCB1bmRlZmluZWQsIHRoaXMucmV2TW9kZWwuZW50aXR5TmFtZSk7XG4gICAgICAgICAgICBjb25zdCBkZXRhaWxzRGVzY3JpcHRvciA9IG5ldyBFZGl0b3JEZXNjcmlwdG9yKE1uZ1JldkVudGl0eVdpdGhDaGFuZ2VzRHRvLCAncmV2RW50aXR5LicgKyBpZFByb3BlcnR5LCB1bmRlZmluZWQsIFRhYmxldmlld0VkaXRvclR5cGVFbnVtLkRldGFpbHMpO1xuXG4gICAgICAgICAgICBpZiAodGhpcy5yZXZNb2RlbC5wcm9wZXJ0aWVzKSB7XG4gICAgICAgICAgICAgICAgQXVkaXRVdGlsLmFkZENvbHVtbnNGcm9tTW9kZWwoZGVzYy50YWJsZSwgdGhpcy5yZXZNb2RlbC5wcm9wZXJ0aWVzKTtcbiAgICAgICAgICAgICAgICBBdWRpdFV0aWwuYWRkRmllbGRzRnJvbU1vZGVsPE1uZ1JldkVudGl0eVdpdGhDaGFuZ2VzRHRvPihkZXRhaWxzRGVzY3JpcHRvciwgdGhpcy5yZXZNb2RlbC5wcm9wZXJ0aWVzKTtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgZGV0YWlsc0Rlc2NyaXB0b3IuYWRkRmllbGQoJ2VudGl0eU5hbWVDaGFuZ2VzTWFwJykuYXNDdXN0b21Db21wb25lbnQoRW50aXR5Q2hhbmdlc0ZpZWxkQ29tcG9uZW50LCBbJ2ZpZWxkLW5vLWxhYmVsJ10sIHtpbmplY3RvcjogdGhpcy5pbmplY3Rvcn0pLndpdGhEaXNhYmxlZCgpO1xuXG4gICAgICAgICAgICBkZXNjLndpdGhEZXRhaWxzRGVzY3JpcHRvcihkZXRhaWxzRGVzY3JpcHRvciBhcyBFZGl0b3JEZXNjcmlwdG9yPE1uZ1JldkVudGl0eT4pOyAvLyBNbmdSZXZFbnRpdHkgaXMgZXh0ZW5kZWQgYnkgTW5nUmV2RW50aXR5V2l0aENoYW5nZXNEdG8sIHNvIG5vIHJlYWwgaGFybSBoZXJlXG4gICAgICAgICAgICBkZXNjLnRhYmxlLndpdGhGaWx0ZXJEaXNwbGF5KFRhYmxlRmlsdGVyRGlzcGxheUVudW0uUm93KTtcblxuICAgICAgICAgICAgcmV0dXJuIGRlc2M7XG4gICAgICAgIH1cbiAgICAgICAgcmV0dXJuIG5ldyBUYWJsZXZpZXdEZXNjcmlwdG9yKE1uZ1JldkVudGl0eSk7XG4gICAgfVxuXG4gICAgcHJvdGVjdGVkIGNyZWF0ZVRhYmxldmlld0RhdGFQcm92aWRlcigpOiBJVGFibGV2aWV3RGF0YVByb3ZpZGVyPE1uZ1JldkVudGl0eSwgdW5rbm93bj4ge1xuICAgICAgICBpZiAodGhpcy5yZXZNb2RlbCkge1xuICAgICAgICAgICAgcmV0dXJuIG5ldyBUYWJsZXZpZXdEYXRhUHJvdmlkZXIoTW5nUmV2RW50aXR5KS53aXRoR2V0QWxsKHFwID0+XG4gICAgICAgICAgICAgICAgY29tYmluZUxhdGVzdChbdGhpcy5yZXZpc2lzb25zQXBpU2VydmljZS5nZXRSZXZpc2lvbkNvdW50KHFwKSwgdGhpcy5yZXZpc2lzb25zQXBpU2VydmljZS5nZXRSZXZpc2lvbkxpc3QocXApXSkucGlwZShcbiAgICAgICAgICAgICAgICAgICAgbWFwKChbY291bnQsIHZhbHVlc10pID0+IE1lZGl1c1F1ZXJ5UmVzdWx0LmZyb21BcnJheSh2YWx1ZXMsIGNvdW50KSlcbiAgICAgICAgICAgICAgICApXG4gICAgICAgICAgICApO1xuICAgICAgICB9XG4gICAgICAgIHJldHVybiBuZXcgVGFibGV2aWV3RGF0YVByb3ZpZGVyKE1uZ1JldkVudGl0eSk7XG4gICAgfVxuXG4gICAgcHJvdGVjdGVkIG92ZXJyaWRlIGNyZWF0ZUFjdGlvbkRlc2NyaXB0b3JzKCk6IEFycmF5PEFjdGlvbkRlc2NyaXB0b3I8TW5nUmV2RW50aXR5Pj4ge1xuICAgICAgICBjb25zdCBkZXRhaWxzQWN0aW9uID0gbmV3IEFjdGlvbkVkaXRvckRlc2NyaXB0b3IodGhpcy5kZXNjcmlwdG9yLmRldGFpbHNFZGl0b3IsICdyZXZpc2lvbi1kZXRhaWxzJylcbiAgICAgICAgICAgIC53aXRoUG9zaXRpb24oQWN0aW9uUG9zaXRpb25FbnVtLlJvd0NsaWNrKVxuICAgICAgICAgICAgLndpdGhSb3V0ZVRyaWdnZXIoJzppdGVtSWQnKVxuICAgICAgICAgICAgLndpdGhUYWJsZXZpZXdDYXRlZ29yeShUYWJsZXZpZXdBY3Rpb25EZWZhdWx0Q2F0ZWdvcmllcy5ERVRBSUxTKVxuICAgICAgICAgICAgLndpdGhGZXRjaEZ1bmN0aW9uKGN0eCA9PlxuICAgICAgICAgICAgICAgIGN0eC5wYXJhbWV0ZXJzLml0ZW1JZFxuICAgICAgICAgICAgICAgICAgICA/IHRoaXMucmV2aXNpc29uc0FwaVNlcnZpY2UuZ2V0QWxsQ2hhbmdlc0ZvclJldmlzaW9uKGN0eC5wYXJhbWV0ZXJzLml0ZW1JZCkucGlwZShcbiAgICAgICAgICAgICAgICAgICAgICAgICAgbWFwKGl0ZW0gPT4ge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY29uc3QgcmV2RW50aXR5V2l0aENoYW5nZXMgPSBuZXcgTW5nUmV2RW50aXR5RGV0YWlsZWQoKTtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJldkVudGl0eVdpdGhDaGFuZ2VzLnJldiA9IGN0eC5wYXJhbWV0ZXJzLml0ZW1JZDtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJldkVudGl0eVdpdGhDaGFuZ2VzLnJldkVudGl0eSA9IGl0ZW0ucmV2RW50aXR5O1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcmV2RW50aXR5V2l0aENoYW5nZXMuZW50aXR5TmFtZUNoYW5nZXNNYXAgPSBpdGVtLmVudGl0eU5hbWVDaGFuZ2VzTWFwO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuIHJldkVudGl0eVdpdGhDaGFuZ2VzO1xuICAgICAgICAgICAgICAgICAgICAgICAgICB9KVxuICAgICAgICAgICAgICAgICAgICAgIClcbiAgICAgICAgICAgICAgICAgICAgOiB0aHJvd0Vycm9yKCgpID0+IG5ldyBNbmdJbnRlcm5hbEVycm9yKCdObyByZXZpc2lvbiBpZCBwcm92aWRlZCBmb3IgZmV0Y2ggZnVuY3Rpb24nKSlcbiAgICAgICAgICAgICk7XG4gICAgICAgIGRldGFpbHNBY3Rpb24ud2l0aEVkaXRvckFjdGlvbnMoW25ldyBBY3Rpb25FZGl0b3JTdWJtaXREZXNjcmlwdG9yKGRldGFpbHNBY3Rpb24sIEFjdGlvbkVkaXRvclN1Ym1pdFR5cGVFbnVtLkNhbmNlbCldKTtcbiAgICAgICAgcmV0dXJuIFtkZXRhaWxzQWN0aW9uXTtcbiAgICB9XG59XG4iLCI8bW5nLXRhYmxldmlldy1yb3V0ZSAqbmdJZj1cInNob3dUYWJsZXZpZXcoKVwiIFtkZXNjcmlwdG9yXT1cImRlc2NyaXB0b3JcIiBbZGF0YVByb3ZpZGVyXT1cImRhdGFQcm92aWRlclwiIFthY3Rpb25zXT1cImFjdGlvbnNcIj48L21uZy10YWJsZXZpZXctcm91dGU+XG4iXX0=
@@ -1,4 +1,4 @@
1
- import { TypeName, ObjectSerializer, MediusFilterMatchType, AMngBaseApiService, MngConfigurationService, MngErrorInternal, AMngTableviewRouteComponent, LookupDataProvider, TableviewDescriptor, TableviewDataProvider, MediusQueryResult, ActionEditorDescriptor, ActionPositionEnum, ActionDataProviderUtil, TableviewActionDefaultCategories, ActionEditorSubmitDescriptor, ActionEditorSubmitTypeEnum, MngDropdownComponent, MngTableviewRouteComponent, AMngFormlyCustomFieldComponent, TableDescriptor, TablePaginationModeEnum, MngTableComponent, EditorDescriptor, TableviewEditorTypeEnum, TableFilterDisplayEnum, MngTableviewComponent, RoutesBuilder, RouteBuilder, TableviewRouteBuilder } from '@mediusinc/mng-commons';
1
+ import { TypeName, ObjectSerializer, MediusFilterMatchType, AMngBaseApiService, MngConfigurationService, MngInternalError, AMngTableviewRouteComponent, LookupDataProvider, TableviewDescriptor, TableviewDataProvider, MediusQueryResult, ActionEditorDescriptor, ActionPositionEnum, ActionDataProviderUtil, TableviewActionDefaultCategories, ActionEditorSubmitDescriptor, ActionEditorSubmitTypeEnum, MngDropdownComponent, MngTableviewRouteComponent, AMngFormlyCustomFieldComponent, TableDescriptor, TablePaginationModeEnum, MngTableComponent, EditorDescriptor, TableviewEditorTypeEnum, TableFilterDisplayEnum, MngTableviewComponent, RouteBuilder, TableviewRouteBuilder, RoutesBuilder } from '@mediusinc/mng-commons';
2
2
  import * as i0 from '@angular/core';
3
3
  import { InjectionToken, inject, Injectable, Component, DestroyRef, signal, Input, Injector, ChangeDetectionStrategy } from '@angular/core';
4
4
  import { map } from 'rxjs/operators';
@@ -361,7 +361,7 @@ class MngAuditRevisionsApiService extends AMngBaseApiService {
361
361
  if (items.length > 0) {
362
362
  return items[0];
363
363
  }
364
- throw new MngErrorInternal(`Entity revision ${revId} for ${entityType} with id ${itemId} was not found`);
364
+ throw new MngInternalError(`Entity revision ${revId} for ${entityType} with id ${itemId} was not found`);
365
365
  }));
366
366
  }
367
367
  countRevisionsWithStateForEntityType(queryParams, entityType) {
@@ -493,7 +493,7 @@ class MngAuditEntityRevisionsPageComponent extends AMngTableviewRouteComponent {
493
493
  }
494
494
  createTableviewDescriptor() {
495
495
  if (!this.revModel || !this.selectedRevisionEntity?.entityName) {
496
- throw new MngErrorInternal('No revision model or revision entity is provided for tableview.');
496
+ throw new MngInternalError('No revision model or revision entity is provided for tableview.');
497
497
  }
498
498
  const desc = new TableviewDescriptor(MngRevEntityWithId, 'mergedId', undefined, this.selectedRevisionEntity.entityName);
499
499
  AuditUtil.buildDescriptorForEntityRevision(desc, this.revModel, this.selectedRevisionEntity);
@@ -505,7 +505,7 @@ class MngAuditEntityRevisionsPageComponent extends AMngTableviewRouteComponent {
505
505
  }
506
506
  createTableviewDataProvider() {
507
507
  if (!this.revModel || !this.selectedRevisionEntity?.entityName) {
508
- throw new MngErrorInternal('No revision model or revision entity is provided for tableview.');
508
+ throw new MngInternalError('No revision model or revision entity is provided for tableview.');
509
509
  }
510
510
  const entityName = this.selectedRevisionEntity.entityName;
511
511
  return new TableviewDataProvider(MngRevEntityWithId).withGetAll(qp => this.selectedRevisionEntity?.entityName
@@ -525,11 +525,11 @@ class MngAuditEntityRevisionsPageComponent extends AMngTableviewRouteComponent {
525
525
  }
526
526
  return MediusQueryResult.fromArray(revEntityWithStateAndIdList, count);
527
527
  }))
528
- : throwError(() => new MngErrorInternal('No revision entity is provided for list.')));
528
+ : throwError(() => new MngInternalError('No revision entity is provided for list.')));
529
529
  }
530
530
  createActionDescriptors() {
531
531
  if (!this.revModel || !this.selectedRevisionEntity?.entityName) {
532
- throw new MngErrorInternal('No revision model or revision entity is provided for tableview.');
532
+ throw new MngInternalError('No revision model or revision entity is provided for tableview.');
533
533
  }
534
534
  const entityName = this.selectedRevisionEntity.entityName;
535
535
  const detailsAction = new ActionEditorDescriptor(this.descriptor.detailsEditor, 'entity-revision-details')
@@ -539,10 +539,10 @@ class MngAuditEntityRevisionsPageComponent extends AMngTableviewRouteComponent {
539
539
  .withTableviewCategory(TableviewActionDefaultCategories.DETAILS)
540
540
  .withFetchFunction(ctx => {
541
541
  if (!entityName) {
542
- return throwError(() => new MngErrorInternal('No revision entity is provided for details.'));
542
+ return throwError(() => new MngInternalError('No revision entity is provided for details.'));
543
543
  }
544
544
  if (!ctx.parameters.itemId) {
545
- return throwError(() => new MngErrorInternal('No item id for revision entity details is provided.'));
545
+ return throwError(() => new MngInternalError('No item id for revision entity details is provided.'));
546
546
  }
547
547
  const revId = ctx.parameters.itemId.toString().split('_')[0];
548
548
  const itemId = ctx.parameters.itemId.toString().split('_')[1];
@@ -756,7 +756,7 @@ class MngAuditRevisionsPageComponent extends AMngTableviewRouteComponent {
756
756
  revEntityWithChanges.entityNameChangesMap = item.entityNameChangesMap;
757
757
  return revEntityWithChanges;
758
758
  }))
759
- : throwError(() => new MngErrorInternal('No revision id provided for fetch function')));
759
+ : throwError(() => new MngInternalError('No revision id provided for fetch function')));
760
760
  detailsAction.withEditorActions([new ActionEditorSubmitDescriptor(detailsAction, ActionEditorSubmitTypeEnum.Cancel)]);
761
761
  return [detailsAction];
762
762
  }
@@ -768,9 +768,13 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.1.7", ngImpor
768
768
  args: [{ standalone: true, selector: 'mng-audit-revisions-page', imports: [NgIf, MngTableviewComponent, AsyncPipe, MngTableviewComponent, RouterOutlet, JsonPipe, MngTableviewRouteComponent], changeDetection: ChangeDetectionStrategy.OnPush, template: "<mng-tableview-route *ngIf=\"showTableview()\" [descriptor]=\"descriptor\" [dataProvider]=\"dataProvider\" [actions]=\"actions\"></mng-tableview-route>\n" }]
769
769
  }] });
770
770
 
771
- function provideMngAuditRoutes(config) {
772
- return RoutesBuilder.create()
773
- .addRouteBuilder(RouteBuilder.create('', MngAuditPageComponent)
771
+ /**
772
+ * Provides routes for the mng-commons-audit functionalities.
773
+ * @param config Module config for audit section.
774
+ * @param routeConfig Optionally provide route configs.
775
+ */
776
+ function provideMngAuditRoutes(config, routeConfig) {
777
+ const routeBuilder = RouteBuilder.create('', MngAuditPageComponent)
774
778
  .withProvider(MngAuditService)
775
779
  .withProvider(MngAuditService)
776
780
  .withProvider(MngAuditRevisionsApiService)
@@ -778,15 +782,36 @@ function provideMngAuditRoutes(config) {
778
782
  provide: MNG_AUDIT_MODULE_CONFIG_IT,
779
783
  useValue: config
780
784
  })
781
- .addChildBuilder(RouteBuilder.createRedirect('', 'revisions', 'full'))
782
- .addChildBuilder(TableviewRouteBuilder.fromComponent('revisions', MngAuditRevisionsPageComponent)
783
- .withMenuItem('pi pi-history', 'pages.revisions.title')
784
- .withTitle('pages.revisions.title'))
785
- .addChildBuilder(RouteBuilder.create('entity-revisions', MngAuditEntityRevisionsPageComponent)
786
- .withMenuItem('pi pi-history', 'pages.entityRevisions.title')
787
- .withTitle('pages.entityRevisions.title'))
788
- .addChildBuilder(TableviewRouteBuilder.fromComponent('entity-revisions/:entityClass', MngAuditEntityRevisionsPageComponent).withTitle('pages.entityRevisions.title')))
789
- .build();
785
+ .addChildBuilder(RouteBuilder.createRedirect('', routeConfig?.defaultRedirect ?? 'revisions', 'full'));
786
+ if (routeConfig?.preRevisionRoutes?.length) {
787
+ routeConfig.preRevisionRoutes.forEach(r => routeBuilder.addChildBuilder(r));
788
+ }
789
+ const revisionsRouteBuilder = TableviewRouteBuilder.fromComponent('revisions', MngAuditRevisionsPageComponent)
790
+ .withTitle('pages.revisions.title')
791
+ .withAdd(false)
792
+ .withDelete(false)
793
+ .withEdit(false);
794
+ if (routeConfig?.revisionsMenuItem) {
795
+ revisionsRouteBuilder.withMngMenuItem(routeConfig.revisionsMenuItem);
796
+ }
797
+ else {
798
+ revisionsRouteBuilder.withMenuItem('pi pi-history', 'pages.revisions.title');
799
+ }
800
+ const entityRevisionsRouteBuilder = RouteBuilder.create('entity-revisions', MngAuditEntityRevisionsPageComponent).withTitle('pages.entityRevisions.title');
801
+ if (routeConfig?.entityRevisionsMenuItem) {
802
+ entityRevisionsRouteBuilder.withMngMenuItem(routeConfig.entityRevisionsMenuItem);
803
+ }
804
+ else {
805
+ entityRevisionsRouteBuilder.withMenuItem('pi pi-history', 'pages.entityRevisions.title');
806
+ }
807
+ routeBuilder
808
+ .addChildBuilder(revisionsRouteBuilder)
809
+ .addChildBuilder(entityRevisionsRouteBuilder)
810
+ .addChildBuilder(TableviewRouteBuilder.fromComponent('entity-revisions/:entityClass', MngAuditEntityRevisionsPageComponent).withTitle('pages.entityRevisions.title'));
811
+ if (routeConfig?.postRevisionRoutes?.length) {
812
+ routeConfig.postRevisionRoutes.forEach(r => routeBuilder.addChildBuilder(r));
813
+ }
814
+ return RoutesBuilder.create().addRouteBuilder(routeBuilder).build();
790
815
  }
791
816
 
792
817
  /**
@@ -1 +1 @@
1
- {"version":3,"file":"mediusinc-mng-commons-audit.mjs","sources":["../../src/lib/api/models/revEntityWithStateDto.ts","../../src/lib/models/revEntityWithId.model.ts","../../src/lib/service/module-config.token.ts","../../src/lib/api/models/guiPropertyType.ts","../../src/lib/api/models/revisionType.ts","../../src/lib/models/new-filter-match-type.model.ts","../../src/lib/utils/audit.util.ts","../../src/lib/api/services/audit-revisions-api.service.ts","../../src/lib/api/models/guiEntityModel.ts","../../src/lib/api/services/audit.service.ts","../../src/lib/components/pages/audit/audit-page.component.ts","../../src/lib/components/pages/audit/audit-page.component.html","../../src/lib/components/pages/entity-revisions/audit-entity-revisions-page.component.ts","../../src/lib/components/pages/entity-revisions/audit-entity-revisions-page.component.html","../../src/lib/api/models/revEntityWithChangesDto.ts","../../src/lib/models/rev-entity.model.ts","../../src/lib/models/rev-entity-detailed.model.ts","../../src/lib/models/entity-revision-change-state.model.ts","../../src/lib/models/entity-revision-changes.model.ts","../../src/lib/components/entity-changes-field/entity-changes-field.component.ts","../../src/lib/components/entity-changes-field/entity-changes-field.component.html","../../src/lib/components/pages/revisions/audit-revisions-page.component.ts","../../src/lib/components/pages/revisions/audit-revisions-page.component.html","../../src/lib/audit.routes.ts","../../src/mediusinc-mng-commons-audit.ts"],"sourcesContent":["/**\n * Medius quarkus sampler\n * Sampler OPENAPI definition\n *\n * The version of the OpenAPI document: 1.0.0\n * Contact: info@medius.si\n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\nimport {AttributeDef, ObjectSerializer, TypeName} from '@mediusinc/mng-commons';\n\nimport {MngRevisionTypeDto} from './revisionType';\n\n@TypeName('MngRevEntityWithStateDto')\nexport class MngRevEntityWithStateDto {\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n revEntity?: {[key: string]: any};\n revType?: MngRevisionTypeDto;\n entityClassName?: string;\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n entityState?: {[key: string]: any};\n\n public static discriminator?: string;\n\n public static attributeTypeMap: Array<AttributeDef> = [\n {\n name: 'revEntity',\n baseName: 'revEntity',\n type: '{ [key: string]: any; }'\n },\n {\n name: 'revType',\n baseName: 'revType',\n type: 'RevisionType'\n },\n {\n name: 'entityClassName',\n baseName: 'entityClassName',\n type: 'string'\n },\n {\n name: 'entityState',\n baseName: 'entityState',\n type: '{ [key: string]: any; }'\n }\n ];\n\n public static getAttributeTypeMap() {\n return MngRevEntityWithStateDto.attributeTypeMap;\n }\n}\n\nObjectSerializer.get().registerType(MngRevEntityWithStateDto);\n","import {ObjectSerializer, TypeName} from '@mediusinc/mng-commons';\n\nimport {MngRevEntityWithStateDto} from '../api/models/revEntityWithStateDto';\n\n@TypeName('MngRevEntityWithId')\nexport class MngRevEntityWithId extends MngRevEntityWithStateDto {\n mergedId?: string;\n}\n\nObjectSerializer.get().registerType(MngRevEntityWithId);\n","import {InjectionToken} from '@angular/core';\n\nimport {MngAuditModuleConfig} from '../models/config.model';\n\nexport const MNG_AUDIT_MODULE_CONFIG_IT = new InjectionToken<MngAuditModuleConfig>('MngAuditModuleConfig');\n","/**\n * Medius quarkus sampler\n * Sampler OPENAPI definition\n *\n * The version of the OpenAPI document: 1.0.0\n * Contact: info@medius.si\n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\nimport {ObjectSerializer} from '@mediusinc/mng-commons';\n\nexport enum MngGuiPropertyTypeDto {\n LocalDate = 'LOCAL_DATE',\n OffsetDateTime = 'OFFSET_DATE_TIME',\n String = 'STRING',\n Number = 'NUMBER',\n Boolean = 'BOOLEAN',\n Enum = 'ENUM',\n Wildcard = 'WILDCARD'\n}\n\nObjectSerializer.get().registerEnum(MngGuiPropertyTypeDto, 'MngGuiPropertyTypeDto');\n","/**\n * Medius quarkus sampler\n * Sampler OPENAPI definition\n *\n * The version of the OpenAPI document: 1.0.0\n * Contact: info@medius.si\n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\nimport {ObjectSerializer} from '@mediusinc/mng-commons';\n\nexport enum MngRevisionTypeDto {\n Add = 'ADD',\n Mod = 'MOD',\n Del = 'DEL'\n}\n\nObjectSerializer.get().registerEnum(MngRevisionTypeDto, 'MngRevisionTypeDto');\n","export enum NewMediusFilterMatchType {\n Equals = 'eq',\n NotEquals = 'ne',\n Between = 'bt',\n Contains = 'cn',\n NotContains = 'nc',\n StartsWith = 'sw',\n EndsWith = 'ew',\n In = 'in',\n NotIn = 'ni',\n LessThan = 'lt',\n LessThanOrEqualTo = 'le',\n GreaterThan = 'gt',\n GreaterThanOrEqualTo = 'ge',\n Exists = 'ex',\n DoesNotExist = 'nx'\n}\n","import {of} from 'rxjs';\n\nimport {\n ColumnDescriptor,\n EditorDescriptor,\n FilterLookupDescriptor,\n MediusFilterMatchType,\n MediusQueryParam,\n ObjectSerializer,\n TableDescriptor,\n TableviewDescriptor\n} from '@mediusinc/mng-commons';\n\nimport {MngGuiEntityModelDto} from '../api/models/guiEntityModel';\nimport {MngGuiPropertyModelDto} from '../api/models/guiPropertyModel';\nimport {MngGuiPropertyTypeDto} from '../api/models/guiPropertyType';\nimport {MngRevEntityWithStateDto} from '../api/models/revEntityWithStateDto';\nimport {MngRevisionTypeDto} from '../api/models/revisionType';\nimport {NewMediusFilterMatchType} from '../models/new-filter-match-type.model';\n\nexport class AuditUtil {\n public static addColumnsFromModel<T>(\n descriptor: TableDescriptor<T>,\n properties: MngGuiPropertyModelDto[],\n modelType: 'revEntity' | 'entityState' | undefined = undefined,\n addFilters = true,\n addSorts = true\n ): TableDescriptor<T> {\n for (const property of properties) {\n if (!property.resolvedPropertyName) {\n continue;\n }\n\n const columnPrepend = modelType ? `${modelType}.` : '';\n\n const isEnum = property.propertyType === MngGuiPropertyTypeDto.Enum;\n let column: ColumnDescriptor<string, T> | null = null;\n if (isEnum) {\n if (!property.possibleEnumValues) {\n continue;\n }\n\n const enumType = AuditUtil.findEnumType(property);\n if (enumType) {\n column = descriptor.addColumn(columnPrepend + property.resolvedPropertyName).asEnum(enumType);\n if (addFilters) {\n column.withFilterLookupEnum(property.possibleEnumValues);\n }\n } else {\n column = descriptor.addColumn(columnPrepend + property.resolvedPropertyName);\n if (addFilters) {\n (column?.withFilterLookup() as FilterLookupDescriptor<string>).withLookup(() => of(property.possibleEnumValues ?? []));\n }\n }\n } else if (property.propertyType === MngGuiPropertyTypeDto.Number) {\n column = descriptor.addColumn(columnPrepend + property.resolvedPropertyName).asNumber();\n } else if (property.propertyType === MngGuiPropertyTypeDto.Boolean) {\n column = descriptor.addColumn(columnPrepend + property.resolvedPropertyName).asBoolean();\n } else if (property.propertyType === MngGuiPropertyTypeDto.LocalDate) {\n column = descriptor.addColumn(columnPrepend + property.resolvedPropertyName).asDate('dd. MM yyyy');\n } else if (property.propertyType === MngGuiPropertyTypeDto.OffsetDateTime) {\n column = descriptor.addColumn(columnPrepend + property.resolvedPropertyName).asDate('dd. MM yyyy HH:mm');\n } else {\n // string / wildcard\n column = descriptor.addColumn(columnPrepend + property.resolvedPropertyName).withTitle(AuditUtil.getPropertyTitleKey(property, modelType));\n }\n\n column.withTitle(AuditUtil.getPropertyTitleKey(property, modelType));\n\n if (!isEnum && addFilters) {\n column?.withFilter();\n }\n if (addSorts) {\n column?.withSort();\n }\n }\n return descriptor;\n }\n\n public static getPropertyTitleKey(property: MngGuiPropertyModelDto, modelType: 'revEntity' | 'entityState' | undefined = undefined) {\n if (modelType === 'revEntity') {\n return 'MngRevEntity.properties.' + property.resolvedPropertyName;\n }\n return property.resolvedPropertyName ?? '';\n }\n\n public static addFieldsFromModel<T>(\n descriptor: EditorDescriptor<T>,\n properties: MngGuiPropertyModelDto[],\n modelType: 'revEntity' | 'entityState' = 'revEntity'\n ): EditorDescriptor<T> {\n for (const property of properties) {\n if (!property.resolvedPropertyName) {\n continue;\n }\n\n const fieldPrepend = `${modelType}.`;\n\n if (property.propertyType === MngGuiPropertyTypeDto.Enum) {\n const enumType = AuditUtil.findEnumType(property);\n if (enumType) {\n if (!property.possibleEnumValues) {\n continue;\n }\n\n descriptor.addFieldLookupEnum(fieldPrepend + property.resolvedPropertyName, enumType, property.possibleEnumValues).withDisabled();\n } else {\n descriptor.addField(fieldPrepend + property.resolvedPropertyName).withLabel(AuditUtil.getPropertyTitleKey(property, modelType));\n }\n } else if (property.propertyType === MngGuiPropertyTypeDto.Number) {\n descriptor\n .addField(fieldPrepend + property.resolvedPropertyName)\n .withLabel(AuditUtil.getPropertyTitleKey(property, modelType))\n .asNumber()\n .withDisabled();\n } else if (property.propertyType === MngGuiPropertyTypeDto.Boolean) {\n descriptor\n .addField(fieldPrepend + property.resolvedPropertyName)\n .withLabel(AuditUtil.getPropertyTitleKey(property, modelType))\n .withDisabled();\n } else if (property.propertyType === MngGuiPropertyTypeDto.LocalDate) {\n descriptor\n .addField(fieldPrepend + property.resolvedPropertyName)\n .withLabel(AuditUtil.getPropertyTitleKey(property, modelType))\n .asDatePicker('dd. MMM yyyy')\n .withDisabled();\n } else if (property.propertyType === MngGuiPropertyTypeDto.OffsetDateTime) {\n descriptor\n .addField(fieldPrepend + property.resolvedPropertyName)\n .withLabel(AuditUtil.getPropertyTitleKey(property, modelType))\n .asDatePicker('dd. MM yy', undefined, undefined, true, false)\n .withDisabled();\n } else {\n // string / wildcard\n descriptor\n .addField(fieldPrepend + property.resolvedPropertyName)\n .withLabel(AuditUtil.getPropertyTitleKey(property, modelType))\n .withDisabled();\n }\n }\n return descriptor;\n }\n\n public static buildDescriptorForEntityRevision(\n descriptor: TableviewDescriptor<MngRevEntityWithStateDto>,\n revModel: MngGuiEntityModelDto,\n entityModel: MngGuiEntityModelDto\n ): TableviewDescriptor<MngRevEntityWithStateDto> {\n descriptor.addColumn('revType').withTitle('MngEntityRevisionChangeState.properties.revType').asEnum(MngRevisionTypeDto).withFilter();\n descriptor.addFieldLookupEnum('revType', MngRevisionTypeDto).withLabel('MngEntityRevisionChangeState.properties.revType');\n\n if (revModel.properties) {\n AuditUtil.addColumnsFromModel(descriptor.table, revModel.properties, 'revEntity');\n AuditUtil.addFieldsFromModel(descriptor.detailsEditor, revModel.properties, 'revEntity');\n }\n if (entityModel.properties) {\n AuditUtil.addColumnsFromModel(descriptor.table, entityModel.properties, 'entityState');\n AuditUtil.addFieldsFromModel(descriptor.detailsEditor, entityModel.properties, 'entityState');\n }\n\n return descriptor;\n }\n\n private static findEnumType(property: MngGuiPropertyModelDto) {\n if (!property.enumClassSimpleName) {\n return undefined;\n }\n\n let enumType = ObjectSerializer.get().findEnum(property.enumClassSimpleName);\n if (!enumType) {\n enumType = ObjectSerializer.get().findEnum(property.enumClassSimpleName + 'Dto');\n }\n return enumType;\n }\n\n private static extractPropertyName(fullPropertyName: string | undefined): string | undefined {\n if (fullPropertyName?.includes('entityState.')) {\n return fullPropertyName.replace('entityState.', '');\n } else if (fullPropertyName?.includes('revEntity.')) {\n return fullPropertyName?.replace('revEntity.', '');\n }\n return fullPropertyName;\n }\n\n public static appendMediusQueryParamsToUrl(queryParams: MediusQueryParam): string {\n let url = `?firstResult=${queryParams.itemsOffset}&maxResults=${queryParams.itemsPerPage}`;\n if (queryParams.sortProperty && queryParams.sortProperty.length > 0) {\n url += '&sorts=';\n const sortingQPs = [];\n for (let i = 0; i < queryParams.sortProperty.length; i++) {\n sortingQPs.push(`${queryParams.sortAsc?.[i] ?? true ? 'asc' : 'desc'}:${this.extractPropertyName(queryParams.sortProperty[i])}`);\n }\n url += sortingQPs.join(',');\n }\n if (queryParams.filterParams && queryParams.filterParams.length > 0) {\n const filterQPs = [];\n for (const mfp of queryParams.filterParams) {\n switch (mfp.filterMatchType) {\n case MediusFilterMatchType.Equals: {\n filterQPs.push(`${this.extractPropertyName(mfp.property)}=${NewMediusFilterMatchType.Equals}:${mfp.filterValue}`);\n break;\n }\n case MediusFilterMatchType.NotEquals: {\n filterQPs.push(`${this.extractPropertyName(mfp.property)}=${NewMediusFilterMatchType.NotEquals}:${mfp.filterValue}`);\n break;\n }\n case MediusFilterMatchType.FromTo: {\n filterQPs.push(`${this.extractPropertyName(mfp.property)}=${NewMediusFilterMatchType.Between}:${mfp.filterValue},${mfp.filterValueTo}`);\n break;\n }\n case MediusFilterMatchType.Contains: {\n filterQPs.push(`${this.extractPropertyName(mfp.property)}=${NewMediusFilterMatchType.Contains}:${mfp.filterValue}`);\n break;\n }\n case MediusFilterMatchType.StartsWith: {\n filterQPs.push(`${this.extractPropertyName(mfp.property)}=${NewMediusFilterMatchType.StartsWith}:${mfp.filterValue}`);\n break;\n }\n case MediusFilterMatchType.EndsWith: {\n filterQPs.push(`${this.extractPropertyName(mfp.property)}=${NewMediusFilterMatchType.EndsWith}:${mfp.filterValue}`);\n break;\n }\n case MediusFilterMatchType.In: {\n filterQPs.push(`${this.extractPropertyName(mfp.property)}=${NewMediusFilterMatchType.In}:${mfp.filterValue}`);\n break;\n }\n case MediusFilterMatchType.NotIn: {\n filterQPs.push(`${this.extractPropertyName(mfp.property)}=${NewMediusFilterMatchType.NotIn}:${mfp.filterValue}`);\n break;\n }\n case MediusFilterMatchType.SmallerThan: {\n filterQPs.push(`${this.extractPropertyName(mfp.property)}=${NewMediusFilterMatchType.LessThan}:${mfp.filterValue}`);\n break;\n }\n case MediusFilterMatchType.GreaterThan: {\n filterQPs.push(`${this.extractPropertyName(mfp.property)}=${NewMediusFilterMatchType.GreaterThan}:${mfp.filterValue}`);\n break;\n }\n }\n }\n url += '&';\n url += filterQPs.join('&');\n }\n return url;\n }\n}\n","import {Injectable, inject} from '@angular/core';\n\nimport {Observable} from 'rxjs';\nimport {map} from 'rxjs/operators';\n\nimport {AMngBaseApiService, IdType, MediusQueryParam, MngConfigurationService, MngErrorInternal} from '@mediusinc/mng-commons';\n\nimport {MngRevEntityWithId} from '../../models/revEntityWithId.model';\nimport {MNG_AUDIT_MODULE_CONFIG_IT} from '../../service/module-config.token';\nimport {AuditUtil} from '../../utils/audit.util';\nimport {MngRevEntityWithChangesDto} from '../models/revEntityWithChangesDto';\nimport {MngRevEntityWithStateDto} from '../models/revEntityWithStateDto';\n\n@Injectable()\nexport class MngAuditRevisionsApiService extends AMngBaseApiService {\n protected readonly configService: MngConfigurationService;\n\n protected readonly moduleConfig = inject(MNG_AUDIT_MODULE_CONFIG_IT);\n\n constructor() {\n super();\n this.configService = MngConfigurationService.get();\n }\n\n protected getServiceBasePath(): string | null {\n return this.moduleConfig.apiServiceBasePath ?? '';\n }\n\n protected getBasePath(): string {\n return `${this.configService.getConfigValue(this.moduleConfig.apiBasePathConfigKey)}`;\n }\n\n public getRevisionList(queryParams: MediusQueryParam): Observable<Array<{[key: string]: unknown}>> {\n return this.http.get<Array<{[key: string]: unknown}>>(this.getUrl(AuditUtil.appendMediusQueryParamsToUrl(queryParams)));\n }\n\n public getRevisionCount(queryParams: MediusQueryParam): Observable<number> {\n return this.http.get<number>(this.getUrl('/count', AuditUtil.appendMediusQueryParamsToUrl(queryParams)));\n }\n\n public getAllChangesForRevision(revId: IdType): Observable<MngRevEntityWithChangesDto> {\n return this.http.get(this.getUrl(`/changes/${revId}`));\n }\n\n public listRevisionsWithStateForEntityType(queryParams: MediusQueryParam, entityType: string): Observable<Array<MngRevEntityWithStateDto>> {\n return this.http\n .get(this.getUrl(`/states/${entityType}`, AuditUtil.appendMediusQueryParamsToUrl(queryParams)))\n .pipe(map(response => this.deserializeClassArray(response, MngRevEntityWithStateDto)));\n }\n\n public fetchRevisionsWithStateForEntityType(entityType: string, revId: IdType, itemId: IdType): Observable<MngRevEntityWithId> {\n return this.http.get(this.getUrl(`/states/${entityType}?rev=eq:${revId}&id=eq:${itemId}`)).pipe(\n map(response =>\n this.deserializeClassArray(response, MngRevEntityWithId).map(i => {\n i.mergedId = i.revEntity?.['rev'] + '_' + i.entityState?.['id'];\n return i;\n })\n ),\n map(items => {\n if (items.length > 0) {\n return items[0];\n }\n throw new MngErrorInternal(`Entity revision ${revId} for ${entityType} with id ${itemId} was not found`);\n })\n );\n }\n\n public countRevisionsWithStateForEntityType(queryParams: MediusQueryParam, entityType: string): Observable<number> {\n return this.http.get<number>(this.getUrl(`/states/${entityType}/count`, AuditUtil.appendMediusQueryParamsToUrl(queryParams)));\n }\n}\n","/**\n * Medius quarkus sampler\n * Sampler OPENAPI definition\n *\n * The version of the OpenAPI document: 1.0.0\n * Contact: info@medius.si\n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\nimport {AttributeDef, ObjectSerializer, TypeName} from '@mediusinc/mng-commons';\n\nimport {MngGuiPropertyModelDto} from './guiPropertyModel';\n\n@TypeName('MngGuiEntityModelDto')\nexport class MngGuiEntityModelDto {\n entityName?: string;\n properties?: Array<MngGuiPropertyModelDto>;\n\n public static discriminator?: string;\n\n public static attributeTypeMap: Array<AttributeDef> = [\n {\n name: 'entityName',\n baseName: 'entityName',\n type: 'string'\n },\n {\n name: 'properties',\n baseName: 'properties',\n type: 'Array<GuiPropertyModel>'\n }\n ];\n\n public static getAttributeTypeMap() {\n return MngGuiEntityModelDto.attributeTypeMap;\n }\n}\n\nObjectSerializer.get().registerType(MngGuiEntityModelDto);\n","import {Injectable, inject} from '@angular/core';\n\nimport {Observable, shareReplay} from 'rxjs';\nimport {map} from 'rxjs/operators';\n\nimport {AMngBaseApiService, MngConfigurationService} from '@mediusinc/mng-commons';\n\nimport {MNG_AUDIT_MODULE_CONFIG_IT} from '../../service/module-config.token';\nimport {MngGuiEntityModelDto} from '../models/guiEntityModel';\n\n@Injectable()\nexport class MngAuditService extends AMngBaseApiService {\n private readonly CACHE_SIZE = 1;\n private readonly configService: MngConfigurationService;\n private readonly moduleConfig = inject(MNG_AUDIT_MODULE_CONFIG_IT);\n\n private revModelObs?: Observable<MngGuiEntityModelDto>;\n private auditModelObs?: Observable<Array<MngGuiEntityModelDto>>;\n\n constructor() {\n super();\n this.configService = MngConfigurationService.get();\n }\n\n protected getServiceBasePath(): string | null {\n return this.moduleConfig.apiServiceBasePath ?? '';\n }\n\n protected getBasePath(): string {\n return `${this.configService.getConfigValue(this.moduleConfig.apiBasePathConfigKey)}`;\n }\n\n public get revModel$() {\n if (!this.revModelObs) {\n this.revModelObs = this.requestRevModel().pipe(shareReplay(this.CACHE_SIZE));\n }\n return this.revModelObs;\n }\n\n public get auditModel$() {\n if (!this.auditModelObs) {\n this.auditModelObs = this.requestAuditModel().pipe(shareReplay(this.CACHE_SIZE));\n }\n return this.auditModelObs;\n }\n\n private requestRevModel(): Observable<MngGuiEntityModelDto> {\n return this.http.get(this.getUrl('/rev-model'));\n }\n\n private requestAuditModel(): Observable<Array<MngGuiEntityModelDto>> {\n return this.http.get(this.getUrl('/audit-models')).pipe(map(response => this.deserializeClassArray(response, MngGuiEntityModelDto)));\n }\n}\n","import {Component} from '@angular/core';\nimport {RouterOutlet} from '@angular/router';\n\n@Component({\n standalone: true,\n selector: 'mng-audit-page',\n imports: [RouterOutlet],\n templateUrl: 'audit-page.component.html'\n})\nexport class MngAuditPageComponent {}\n","<router-outlet></router-outlet>\n","import {AsyncPipe, NgIf} from '@angular/common';\nimport {Component, DestroyRef, OnInit, WritableSignal, inject, signal} from '@angular/core';\nimport {takeUntilDestroyed} from '@angular/core/rxjs-interop';\nimport {FormsModule} from '@angular/forms';\nimport {Router} from '@angular/router';\n\nimport {FormlyModule} from '@ngx-formly/core';\nimport {TranslateModule} from '@ngx-translate/core';\nimport {combineLatest, throwError} from 'rxjs';\nimport {map} from 'rxjs/operators';\n\nimport {\n AMngTableviewRouteComponent,\n ActionDataProviderUtil,\n ActionDescriptor,\n ActionEditorDescriptor,\n ActionEditorSubmitDescriptor,\n ActionEditorSubmitTypeEnum,\n ActionPositionEnum,\n LookupDataProvider,\n MediusQueryResult,\n MngDropdownComponent,\n MngErrorInternal,\n MngTableviewRouteComponent,\n TableviewActionDefaultCategories,\n TableviewDataProvider,\n TableviewDescriptor\n} from '@mediusinc/mng-commons';\n\nimport {MngGuiEntityModelDto} from '../../../api/models/guiEntityModel';\nimport {MngAuditRevisionsApiService} from '../../../api/services/audit-revisions-api.service';\nimport {MngAuditService} from '../../../api/services/audit.service';\nimport {MngRevEntityWithId} from '../../../models/revEntityWithId.model';\nimport {AuditUtil} from '../../../utils/audit.util';\n\n@Component({\n standalone: true,\n selector: 'mng-audit-entity-revisions-page',\n imports: [MngDropdownComponent, MngTableviewRouteComponent, FormsModule, AsyncPipe, NgIf, TranslateModule, FormlyModule],\n templateUrl: 'audit-entity-revisions-page.component.html'\n})\nexport class MngAuditEntityRevisionsPageComponent extends AMngTableviewRouteComponent<MngRevEntityWithId, unknown> implements OnInit {\n private destroyRef = inject(DestroyRef);\n private auditService = inject(MngAuditService);\n private revisisonsApiService = inject(MngAuditRevisionsApiService);\n\n public revModel?: MngGuiEntityModelDto;\n public selectedRevisionEntity?: MngGuiEntityModelDto;\n public revisionEntitiesLookupProvider?: LookupDataProvider<MngGuiEntityModelDto, never>;\n\n public showTableview: WritableSignal<boolean> = signal(false);\n\n constructor(private router: Router) {\n super();\n this.revisionEntitiesLookupProvider = new LookupDataProvider<MngGuiEntityModelDto, never>(MngGuiEntityModelDto).withLookup(() =>\n this.auditService.auditModel$.pipe(\n map(model =>\n model.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 )\n )\n );\n }\n\n override ngOnInit() {\n this.route.paramMap.pipe(takeUntilDestroyed(this.destroyRef)).subscribe(params => {\n const entityClass = params.get('entityClass');\n if (entityClass) {\n combineLatest([this.auditService.auditModel$, this.auditService.revModel$]).subscribe(([entities, revModel]) => {\n this.revModel = revModel;\n\n for (const e of entities) {\n if (e.entityName === entityClass) {\n this.selectedRevisionEntity = e;\n super.ngOnInit();\n setTimeout(() => this.showTableview.set(true));\n }\n }\n });\n }\n });\n }\n\n public onRevisionEntityChange() {\n this.showTableview.set(false);\n if (this.selectedRevisionEntity) {\n this.router.navigate(['/audit/entity-revisions/' + this.selectedRevisionEntity.entityName]);\n } else {\n this.router.navigate(['/audit/entity-revisions/']);\n }\n }\n\n protected createTableviewDescriptor() {\n if (!this.revModel || !this.selectedRevisionEntity?.entityName) {\n throw new MngErrorInternal('No revision model or revision entity is provided for tableview.');\n }\n\n const desc = new TableviewDescriptor(MngRevEntityWithId, 'mergedId', undefined, this.selectedRevisionEntity.entityName);\n\n AuditUtil.buildDescriptorForEntityRevision(desc, this.revModel, this.selectedRevisionEntity);\n\n desc.table.withColumnsResizable();\n desc.table.withCurrentColumnsReorderable();\n desc.table.withCurrentColumnsToggleable();\n desc.table.withDataKey(`EntityRevisionsPage_${this.selectedRevisionEntity.entityName}`);\n\n return desc;\n }\n\n protected createTableviewDataProvider() {\n if (!this.revModel || !this.selectedRevisionEntity?.entityName) {\n throw new MngErrorInternal('No revision model or revision entity is provided for tableview.');\n }\n\n const entityName = this.selectedRevisionEntity.entityName;\n return new TableviewDataProvider(MngRevEntityWithId).withGetAll(qp =>\n this.selectedRevisionEntity?.entityName\n ? combineLatest([\n this.revisisonsApiService.countRevisionsWithStateForEntityType(qp, entityName),\n this.revisisonsApiService.listRevisionsWithStateForEntityType(qp, entityName)\n ]).pipe(\n map(([count, values]) => {\n const revEntityWithStateAndIdList = [];\n for (const revEntityWithState of values) {\n const revEntityWithStateAndId = new MngRevEntityWithId();\n revEntityWithStateAndId.mergedId = revEntityWithState.revEntity?.['rev'] + '_' + revEntityWithState.entityState?.['id'];\n revEntityWithStateAndId.revType = revEntityWithState.revType;\n revEntityWithStateAndId.revEntity = revEntityWithState.revEntity;\n revEntityWithStateAndId.entityState = revEntityWithState.entityState;\n revEntityWithStateAndId.entityClassName = revEntityWithState.entityClassName;\n revEntityWithStateAndIdList.push(revEntityWithStateAndId);\n }\n return MediusQueryResult.fromArray(revEntityWithStateAndIdList, count);\n })\n )\n : throwError(() => new MngErrorInternal('No revision entity is provided for list.'))\n );\n }\n\n public override createActionDescriptors(): Array<ActionDescriptor<MngRevEntityWithId>> {\n if (!this.revModel || !this.selectedRevisionEntity?.entityName) {\n throw new MngErrorInternal('No revision model or revision entity is provided for tableview.');\n }\n\n const entityName = this.selectedRevisionEntity.entityName;\n const detailsAction = new ActionEditorDescriptor(this.descriptor.detailsEditor, 'entity-revision-details')\n .withPosition(ActionPositionEnum.RowClick)\n .withRouteTrigger(':itemId')\n .withFetchFunction(ActionDataProviderUtil.runFetchOrFail)\n .withTableviewCategory(TableviewActionDefaultCategories.DETAILS)\n .withFetchFunction(ctx => {\n if (!entityName) {\n return throwError(() => new MngErrorInternal('No revision entity is provided for details.'));\n }\n if (!ctx.parameters.itemId) {\n return throwError(() => new MngErrorInternal('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 this.revisisonsApiService.fetchRevisionsWithStateForEntityType(entityName, revId, itemId);\n });\n detailsAction.withEditorActions([new ActionEditorSubmitDescriptor(detailsAction, ActionEditorSubmitTypeEnum.Cancel)]);\n return [detailsAction];\n }\n}\n","<div class=\"card\">\n <div class=\"field mb-0\">\n <mng-dropdown\n id=\"revisionEntityDropdown\"\n [placeholder]=\"'pages.entityRevisions.dropdown.placeholder' | translate\"\n [itemsLabelProperty]=\"'entityName'\"\n [(ngModel)]=\"selectedRevisionEntity\"\n (valueChange)=\"onRevisionEntityChange()\"\n [dataProvider]=\"revisionEntitiesLookupProvider\"></mng-dropdown>\n <small *ngIf=\"!selectedRevisionEntity\" class=\"block\">\n {{ 'pages.entityRevisions.dropdown.helpText' | translate }}\n </small>\n </div>\n</div>\n<div *ngIf=\"showTableview()\">\n <mng-tableview-route [descriptor]=\"descriptor\" [dataProvider]=\"dataProvider\" [actions]=\"actions\"></mng-tableview-route>\n</div>\n","/**\n * Medius quarkus sampler\n * Sampler OPENAPI definition\n *\n * The version of the OpenAPI document: 1.0.0\n * Contact: info@medius.si\n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\nimport {AttributeDef, ObjectSerializer, TypeName} from '@mediusinc/mng-commons';\n\nimport {MngEntityChangeDto} from './entityChange';\n\n@TypeName('MngRevEntityWithChangesDto')\nexport class MngRevEntityWithChangesDto {\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n revEntity?: {[key: string]: any};\n entityNameChangesMap?: {[key: string]: Array<MngEntityChangeDto>};\n\n public static discriminator?: string;\n\n public static attributeTypeMap: Array<AttributeDef> = [\n {\n name: 'revEntity',\n baseName: 'revEntity',\n type: '{ [key: string]: any; }'\n },\n {\n name: 'entityNameChangesMap',\n baseName: 'entityNameChangesMap',\n type: '{ [key: string]: Array<EntityChange>; }'\n }\n ];\n\n public static getAttributeTypeMap() {\n return MngRevEntityWithChangesDto.attributeTypeMap;\n }\n}\n\nObjectSerializer.get().registerType(MngRevEntityWithChangesDto);\n","import {IdType, TypeName} from '@mediusinc/mng-commons';\n\n@TypeName('MngRevEntity')\nexport class MngRevEntity {\n rev?: IdType; // usually a number\n revUsername?: string;\n timestamp?: Date;\n}\n","import {TypeName} from '@mediusinc/mng-commons';\n\nimport {MngEntityChangeDto} from '../api/models/entityChange';\nimport {MngRevEntity} from './rev-entity.model';\n\n@TypeName('MngRevEntityDetailed')\nexport class MngRevEntityDetailed extends MngRevEntity {\n revEntity?: {[key: string]: unknown};\n entityNameChangesMap?: {[key: string]: Array<MngEntityChangeDto>};\n}\n","import {TypeName} from '@mediusinc/mng-commons';\n\nimport {MngRevisionTypeDto} from '../api/models/revisionType';\n\n@TypeName('MngEntityRevisionChangeState')\nexport class MngEntityRevisionChangeState {\n revType?: MngRevisionTypeDto;\n color?: 'green' | 'red';\n [key: string]: unknown;\n}\n","import {TypeName} from '@mediusinc/mng-commons';\n\nimport {MngEntityRevisionChangeState} from './entity-revision-change-state.model';\n\n@TypeName('MngEntityChanges')\nexport class MngEntityRevisionChanges {\n entityType?: string;\n items?: MngEntityRevisionChangeState[];\n}\n","import {AsyncPipe, NgForOf, NgIf} from '@angular/common';\nimport {Component, DestroyRef, Injector, Input, OnInit, inject} from '@angular/core';\nimport {takeUntilDestroyed} from '@angular/core/rxjs-interop';\n\nimport {BehaviorSubject} from 'rxjs';\n\nimport {AMngFormlyCustomFieldComponent, MngTableComponent, TableDescriptor, TablePaginationModeEnum} from '@mediusinc/mng-commons';\n\nimport {MngEntityChangeDto} from '../../api/models/entityChange';\nimport {MngGuiEntityModelDto} from '../../api/models/guiEntityModel';\nimport {MngRevisionTypeDto} from '../../api/models/revisionType';\nimport {MngAuditService} from '../../api/services/audit.service';\nimport {MngEntityRevisionChangeState} from '../../models/entity-revision-change-state.model';\nimport {MngEntityRevisionChanges} from '../../models/entity-revision-changes.model';\nimport {AuditUtil} from '../../utils/audit.util';\n\n@Component({\n standalone: true,\n selector: 'mng-entity-changes-field',\n imports: [NgForOf, MngTableComponent, NgIf, AsyncPipe],\n styleUrls: ['entity-changes-field.component.scss'],\n templateUrl: 'entity-changes-field.component.html'\n})\nexport class EntityChangesFieldComponent extends AMngFormlyCustomFieldComponent implements OnInit {\n @Input() public injector?: Injector;\n\n private destroyRef = inject(DestroyRef);\n\n public entityChanges: MngEntityRevisionChanges[] = [];\n public modelFetched = new BehaviorSubject(false);\n\n private auditModel: MngGuiEntityModelDto[] = [];\n private fieldValue?: {[key: string]: Array<MngEntityChangeDto>};\n\n ngOnInit(): void {\n this.fieldValue = this.formControl.value as {[key: string]: Array<MngEntityChangeDto>};\n this.injector\n ?.get(MngAuditService, undefined, {optional: true})\n ?.auditModel$.pipe(takeUntilDestroyed(this.destroyRef))\n .subscribe({\n next: model => {\n this.auditModel = model;\n\n if (this.fieldValue) {\n for (const key of Object.keys(this.fieldValue)) {\n const ec = new MngEntityRevisionChanges();\n ec.entityType = key;\n ec.items = [];\n for (const change of this.fieldValue[key]) {\n if (change.revType === MngRevisionTypeDto.Add && change.entityNewState) {\n const item = new MngEntityRevisionChangeState();\n item.revType = change.revType;\n item.color = 'green';\n Object.entries(change.entityNewState).forEach(([key, value]) => (item[key] = value));\n ec.items.push(item);\n } else if (change.revType === MngRevisionTypeDto.Del && change.entityOldState) {\n const item = new MngEntityRevisionChangeState();\n item.revType = change.revType;\n item.color = 'red';\n Object.entries(change.entityOldState).forEach(([key, value]) => (item[key] = value));\n ec.items.push(item);\n } else if (change.revType === MngRevisionTypeDto.Mod && change.entityOldState && change.entityNewState) {\n const itemOld = new MngEntityRevisionChangeState();\n itemOld.revType = change.revType;\n itemOld.color = 'red';\n Object.entries(change.entityOldState).forEach(([key, value]) => (itemOld[key] = value));\n\n const itemNew = new MngEntityRevisionChangeState();\n itemNew.revType = change.revType;\n itemNew.color = 'green';\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 this.entityChanges.push(ec);\n }\n this.modelFetched.next(true);\n }\n }\n });\n }\n\n public createDescriptor(entityChanges: MngEntityRevisionChanges) {\n const changedFields: string[] = [];\n if (entityChanges.items && entityChanges.items[0].revType === MngRevisionTypeDto.Mod) {\n for (const key in entityChanges.items[0]) {\n if (entityChanges.items[0][key] !== entityChanges.items[1][key]) {\n changedFields.push(key);\n }\n }\n }\n\n const guiEntityModel = this.auditModel.filter(m => m.entityName === entityChanges.entityType)[0];\n\n const desc = new TableDescriptor(MngEntityRevisionChangeState, undefined, undefined, guiEntityModel.entityName).withClassName('py-2');\n if (guiEntityModel.entityName) {\n desc.withTitle(guiEntityModel.entityName);\n }\n\n desc.addColumn('revType').withTitle('MngEntityRevisionChangeState.properties.revType').asEnum(MngRevisionTypeDto);\n\n if (guiEntityModel.properties) {\n AuditUtil.addColumnsFromModel(desc, guiEntityModel.properties, undefined, false, false);\n }\n\n desc.withRowClassName(undefined, (_, item) => (item ? (item.color === '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.withDataKey(`EntityChangeField_${entityChanges.entityType ?? 'default'}`);\n\n return desc;\n }\n}\n","<div *ngIf=\"modelFetched | async; else loading\">\n <mng-table *ngFor=\"let ec of entityChanges\" [items]=\"ec.items\" [descriptor]=\"createDescriptor(ec)\"></mng-table>\n</div>\n<ng-template #loading>\n <div class=\"text-center\">\n <i class=\"pi pi-spin pi-spinner\" style=\"font-size: 2rem\"></i>\n </div>\n</ng-template>\n","import {AsyncPipe, JsonPipe, NgIf} from '@angular/common';\nimport {ChangeDetectionStrategy, Component, DestroyRef, Injector, OnInit, WritableSignal, inject, signal} from '@angular/core';\nimport {takeUntilDestroyed} from '@angular/core/rxjs-interop';\nimport {RouterOutlet} from '@angular/router';\n\nimport {combineLatest, throwError} from 'rxjs';\nimport {map} from 'rxjs/operators';\n\nimport {\n AMngTableviewRouteComponent,\n ActionDescriptor,\n ActionEditorDescriptor,\n ActionEditorSubmitDescriptor,\n ActionEditorSubmitTypeEnum,\n ActionPositionEnum,\n EditorDescriptor,\n ITableviewDataProvider,\n MediusQueryResult,\n MngErrorInternal,\n MngTableviewComponent,\n MngTableviewRouteComponent,\n TableFilterDisplayEnum,\n TableviewActionDefaultCategories,\n TableviewDataProvider,\n TableviewDescriptor,\n TableviewEditorTypeEnum\n} from '@mediusinc/mng-commons';\n\nimport {MngGuiEntityModelDto} from '../../../api/models/guiEntityModel';\nimport {MngRevEntityWithChangesDto} from '../../../api/models/revEntityWithChangesDto';\nimport {MngAuditRevisionsApiService} from '../../../api/services/audit-revisions-api.service';\nimport {MngAuditService} from '../../../api/services/audit.service';\nimport {MngRevEntityDetailed} from '../../../models/rev-entity-detailed.model';\nimport {MngRevEntity} from '../../../models/rev-entity.model';\nimport {AuditUtil} from '../../../utils/audit.util';\nimport {EntityChangesFieldComponent} from '../../entity-changes-field/entity-changes-field.component';\n\n@Component({\n standalone: true,\n selector: 'mng-audit-revisions-page',\n templateUrl: './audit-revisions-page.component.html',\n imports: [NgIf, MngTableviewComponent, AsyncPipe, MngTableviewComponent, RouterOutlet, JsonPipe, MngTableviewRouteComponent],\n changeDetection: ChangeDetectionStrategy.OnPush\n})\nexport class MngAuditRevisionsPageComponent extends AMngTableviewRouteComponent<MngRevEntity, unknown> implements OnInit {\n private destroyRef = inject(DestroyRef);\n private injector = inject(Injector);\n private auditService = inject(MngAuditService);\n private revisisonsApiService = inject(MngAuditRevisionsApiService);\n\n private revModel?: MngGuiEntityModelDto;\n public showTableview: WritableSignal<boolean> = signal(false);\n\n override ngOnInit(): void {\n this.auditService.revModel$.pipe(takeUntilDestroyed(this.destroyRef)).subscribe({\n next: model => {\n this.revModel = model;\n super.ngOnInit();\n setTimeout(() => this.showTableview.set(true));\n }\n });\n }\n\n protected createTableviewDescriptor(): TableviewDescriptor<MngRevEntity> {\n if (this.revModel) {\n const idProperty = this.revModel.properties?.filter(prop => prop.isId).map(prop => prop.resolvedPropertyName)[0];\n const desc = new TableviewDescriptor(MngRevEntity, idProperty, undefined, this.revModel.entityName);\n const detailsDescriptor = new EditorDescriptor(MngRevEntityWithChangesDto, 'revEntity.' + idProperty, undefined, TableviewEditorTypeEnum.Details);\n\n if (this.revModel.properties) {\n AuditUtil.addColumnsFromModel(desc.table, this.revModel.properties);\n AuditUtil.addFieldsFromModel<MngRevEntityWithChangesDto>(detailsDescriptor, this.revModel.properties);\n }\n\n detailsDescriptor.addField('entityNameChangesMap').asCustomComponent(EntityChangesFieldComponent, ['field-no-label'], {injector: this.injector}).withDisabled();\n\n desc.withDetailsDescriptor(detailsDescriptor as EditorDescriptor<MngRevEntity>); // MngRevEntity is extended by MngRevEntityWithChangesDto, so no real harm here\n desc.table.withFilterDisplay(TableFilterDisplayEnum.Row);\n\n return desc;\n }\n return new TableviewDescriptor(MngRevEntity);\n }\n\n protected createTableviewDataProvider(): ITableviewDataProvider<MngRevEntity, unknown> {\n if (this.revModel) {\n return new TableviewDataProvider(MngRevEntity).withGetAll(qp =>\n combineLatest([this.revisisonsApiService.getRevisionCount(qp), this.revisisonsApiService.getRevisionList(qp)]).pipe(\n map(([count, values]) => MediusQueryResult.fromArray(values, count))\n )\n );\n }\n return new TableviewDataProvider(MngRevEntity);\n }\n\n protected override createActionDescriptors(): Array<ActionDescriptor<MngRevEntity>> {\n const detailsAction = new ActionEditorDescriptor(this.descriptor.detailsEditor, 'revision-details')\n .withPosition(ActionPositionEnum.RowClick)\n .withRouteTrigger(':itemId')\n .withTableviewCategory(TableviewActionDefaultCategories.DETAILS)\n .withFetchFunction(ctx =>\n ctx.parameters.itemId\n ? this.revisisonsApiService.getAllChangesForRevision(ctx.parameters.itemId).pipe(\n map(item => {\n const revEntityWithChanges = new MngRevEntityDetailed();\n revEntityWithChanges.rev = ctx.parameters.itemId;\n revEntityWithChanges.revEntity = item.revEntity;\n revEntityWithChanges.entityNameChangesMap = item.entityNameChangesMap;\n return revEntityWithChanges;\n })\n )\n : throwError(() => new MngErrorInternal('No revision id provided for fetch function'))\n );\n detailsAction.withEditorActions([new ActionEditorSubmitDescriptor(detailsAction, ActionEditorSubmitTypeEnum.Cancel)]);\n return [detailsAction];\n }\n}\n","<mng-tableview-route *ngIf=\"showTableview()\" [descriptor]=\"descriptor\" [dataProvider]=\"dataProvider\" [actions]=\"actions\"></mng-tableview-route>\n","import {Routes} from '@angular/router';\n\nimport {RouteBuilder, RoutesBuilder, TableviewRouteBuilder} from '@mediusinc/mng-commons';\n\nimport {MngAuditRevisionsApiService} from './api/services/audit-revisions-api.service';\nimport {MngAuditService} from './api/services/audit.service';\nimport {MngAuditPageComponent} from './components/pages/audit/audit-page.component';\nimport {MngAuditEntityRevisionsPageComponent} from './components/pages/entity-revisions/audit-entity-revisions-page.component';\nimport {MngAuditRevisionsPageComponent} from './components/pages/revisions/audit-revisions-page.component';\nimport {MngAuditModuleConfig} from './models/config.model';\nimport {MNG_AUDIT_MODULE_CONFIG_IT} from './service/module-config.token';\n\nexport function provideMngAuditRoutes(config: MngAuditModuleConfig): Routes {\n return RoutesBuilder.create()\n .addRouteBuilder(\n RouteBuilder.create('', MngAuditPageComponent)\n .withProvider(MngAuditService)\n .withProvider(MngAuditService)\n .withProvider(MngAuditRevisionsApiService)\n .withProvider({\n provide: MNG_AUDIT_MODULE_CONFIG_IT,\n useValue: config\n })\n .addChildBuilder(RouteBuilder.createRedirect('', 'revisions', 'full'))\n .addChildBuilder(\n TableviewRouteBuilder.fromComponent('revisions', MngAuditRevisionsPageComponent)\n .withMenuItem('pi pi-history', 'pages.revisions.title')\n .withTitle('pages.revisions.title')\n )\n .addChildBuilder(\n RouteBuilder.create('entity-revisions', MngAuditEntityRevisionsPageComponent)\n .withMenuItem('pi pi-history', 'pages.entityRevisions.title')\n .withTitle('pages.entityRevisions.title')\n )\n .addChildBuilder(\n TableviewRouteBuilder.fromComponent('entity-revisions/:entityClass', MngAuditEntityRevisionsPageComponent).withTitle('pages.entityRevisions.title')\n )\n )\n .build();\n}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"mediusinc-mng-commons-audit.mjs","sources":["../../src/lib/api/models/revEntityWithStateDto.ts","../../src/lib/models/revEntityWithId.model.ts","../../src/lib/service/module-config.token.ts","../../src/lib/api/models/guiPropertyType.ts","../../src/lib/api/models/revisionType.ts","../../src/lib/models/new-filter-match-type.model.ts","../../src/lib/utils/audit.util.ts","../../src/lib/api/services/audit-revisions-api.service.ts","../../src/lib/api/models/guiEntityModel.ts","../../src/lib/api/services/audit.service.ts","../../src/lib/components/pages/audit/audit-page.component.ts","../../src/lib/components/pages/audit/audit-page.component.html","../../src/lib/components/pages/entity-revisions/audit-entity-revisions-page.component.ts","../../src/lib/components/pages/entity-revisions/audit-entity-revisions-page.component.html","../../src/lib/api/models/revEntityWithChangesDto.ts","../../src/lib/models/rev-entity.model.ts","../../src/lib/models/rev-entity-detailed.model.ts","../../src/lib/models/entity-revision-change-state.model.ts","../../src/lib/models/entity-revision-changes.model.ts","../../src/lib/components/entity-changes-field/entity-changes-field.component.ts","../../src/lib/components/entity-changes-field/entity-changes-field.component.html","../../src/lib/components/pages/revisions/audit-revisions-page.component.ts","../../src/lib/components/pages/revisions/audit-revisions-page.component.html","../../src/lib/audit.routes.ts","../../src/mediusinc-mng-commons-audit.ts"],"sourcesContent":["/**\n * Medius quarkus sampler\n * Sampler OPENAPI definition\n *\n * The version of the OpenAPI document: 1.0.0\n * Contact: info@medius.si\n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\nimport {AttributeDef, ObjectSerializer, TypeName} from '@mediusinc/mng-commons';\n\nimport {MngRevisionTypeDto} from './revisionType';\n\n@TypeName('MngRevEntityWithStateDto')\nexport class MngRevEntityWithStateDto {\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n revEntity?: {[key: string]: any};\n revType?: MngRevisionTypeDto;\n entityClassName?: string;\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n entityState?: {[key: string]: any};\n\n public static discriminator?: string;\n\n public static attributeTypeMap: Array<AttributeDef> = [\n {\n name: 'revEntity',\n baseName: 'revEntity',\n type: '{ [key: string]: any; }'\n },\n {\n name: 'revType',\n baseName: 'revType',\n type: 'RevisionType'\n },\n {\n name: 'entityClassName',\n baseName: 'entityClassName',\n type: 'string'\n },\n {\n name: 'entityState',\n baseName: 'entityState',\n type: '{ [key: string]: any; }'\n }\n ];\n\n public static getAttributeTypeMap() {\n return MngRevEntityWithStateDto.attributeTypeMap;\n }\n}\n\nObjectSerializer.get().registerType(MngRevEntityWithStateDto);\n","import {ObjectSerializer, TypeName} from '@mediusinc/mng-commons';\n\nimport {MngRevEntityWithStateDto} from '../api/models/revEntityWithStateDto';\n\n@TypeName('MngRevEntityWithId')\nexport class MngRevEntityWithId extends MngRevEntityWithStateDto {\n mergedId?: string;\n}\n\nObjectSerializer.get().registerType(MngRevEntityWithId);\n","import {InjectionToken} from '@angular/core';\n\nimport {MngAuditModuleConfig} from '../models/config.model';\n\nexport const MNG_AUDIT_MODULE_CONFIG_IT = new InjectionToken<MngAuditModuleConfig>('MngAuditModuleConfig');\n","/**\n * Medius quarkus sampler\n * Sampler OPENAPI definition\n *\n * The version of the OpenAPI document: 1.0.0\n * Contact: info@medius.si\n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\nimport {ObjectSerializer} from '@mediusinc/mng-commons';\n\nexport enum MngGuiPropertyTypeDto {\n LocalDate = 'LOCAL_DATE',\n OffsetDateTime = 'OFFSET_DATE_TIME',\n String = 'STRING',\n Number = 'NUMBER',\n Boolean = 'BOOLEAN',\n Enum = 'ENUM',\n Wildcard = 'WILDCARD'\n}\n\nObjectSerializer.get().registerEnum(MngGuiPropertyTypeDto, 'MngGuiPropertyTypeDto');\n","/**\n * Medius quarkus sampler\n * Sampler OPENAPI definition\n *\n * The version of the OpenAPI document: 1.0.0\n * Contact: info@medius.si\n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\nimport {ObjectSerializer} from '@mediusinc/mng-commons';\n\nexport enum MngRevisionTypeDto {\n Add = 'ADD',\n Mod = 'MOD',\n Del = 'DEL'\n}\n\nObjectSerializer.get().registerEnum(MngRevisionTypeDto, 'MngRevisionTypeDto');\n","export enum NewMediusFilterMatchType {\n Equals = 'eq',\n NotEquals = 'ne',\n Between = 'bt',\n Contains = 'cn',\n NotContains = 'nc',\n StartsWith = 'sw',\n EndsWith = 'ew',\n In = 'in',\n NotIn = 'ni',\n LessThan = 'lt',\n LessThanOrEqualTo = 'le',\n GreaterThan = 'gt',\n GreaterThanOrEqualTo = 'ge',\n Exists = 'ex',\n DoesNotExist = 'nx'\n}\n","import {of} from 'rxjs';\n\nimport {\n ColumnDescriptor,\n EditorDescriptor,\n FilterLookupDescriptor,\n MediusFilterMatchType,\n MediusQueryParam,\n ObjectSerializer,\n TableDescriptor,\n TableviewDescriptor\n} from '@mediusinc/mng-commons';\n\nimport {MngGuiEntityModelDto} from '../api/models/guiEntityModel';\nimport {MngGuiPropertyModelDto} from '../api/models/guiPropertyModel';\nimport {MngGuiPropertyTypeDto} from '../api/models/guiPropertyType';\nimport {MngRevEntityWithStateDto} from '../api/models/revEntityWithStateDto';\nimport {MngRevisionTypeDto} from '../api/models/revisionType';\nimport {NewMediusFilterMatchType} from '../models/new-filter-match-type.model';\n\nexport class AuditUtil {\n public static addColumnsFromModel<T>(\n descriptor: TableDescriptor<T>,\n properties: MngGuiPropertyModelDto[],\n modelType: 'revEntity' | 'entityState' | undefined = undefined,\n addFilters = true,\n addSorts = true\n ): TableDescriptor<T> {\n for (const property of properties) {\n if (!property.resolvedPropertyName) {\n continue;\n }\n\n const columnPrepend = modelType ? `${modelType}.` : '';\n\n const isEnum = property.propertyType === MngGuiPropertyTypeDto.Enum;\n let column: ColumnDescriptor<string, T> | null = null;\n if (isEnum) {\n if (!property.possibleEnumValues) {\n continue;\n }\n\n const enumType = AuditUtil.findEnumType(property);\n if (enumType) {\n column = descriptor.addColumn(columnPrepend + property.resolvedPropertyName).asEnum(enumType);\n if (addFilters) {\n column.withFilterLookupEnum(property.possibleEnumValues);\n }\n } else {\n column = descriptor.addColumn(columnPrepend + property.resolvedPropertyName);\n if (addFilters) {\n (column?.withFilterLookup() as FilterLookupDescriptor<string>).withLookup(() => of(property.possibleEnumValues ?? []));\n }\n }\n } else if (property.propertyType === MngGuiPropertyTypeDto.Number) {\n column = descriptor.addColumn(columnPrepend + property.resolvedPropertyName).asNumber();\n } else if (property.propertyType === MngGuiPropertyTypeDto.Boolean) {\n column = descriptor.addColumn(columnPrepend + property.resolvedPropertyName).asBoolean();\n } else if (property.propertyType === MngGuiPropertyTypeDto.LocalDate) {\n column = descriptor.addColumn(columnPrepend + property.resolvedPropertyName).asDate('dd. MM yyyy');\n } else if (property.propertyType === MngGuiPropertyTypeDto.OffsetDateTime) {\n column = descriptor.addColumn(columnPrepend + property.resolvedPropertyName).asDate('dd. MM yyyy HH:mm');\n } else {\n // string / wildcard\n column = descriptor.addColumn(columnPrepend + property.resolvedPropertyName).withTitle(AuditUtil.getPropertyTitleKey(property, modelType));\n }\n\n column.withTitle(AuditUtil.getPropertyTitleKey(property, modelType));\n\n if (!isEnum && addFilters) {\n column?.withFilter();\n }\n if (addSorts) {\n column?.withSort();\n }\n }\n return descriptor;\n }\n\n public static getPropertyTitleKey(property: MngGuiPropertyModelDto, modelType: 'revEntity' | 'entityState' | undefined = undefined) {\n if (modelType === 'revEntity') {\n return 'MngRevEntity.properties.' + property.resolvedPropertyName;\n }\n return property.resolvedPropertyName ?? '';\n }\n\n public static addFieldsFromModel<T>(\n descriptor: EditorDescriptor<T>,\n properties: MngGuiPropertyModelDto[],\n modelType: 'revEntity' | 'entityState' = 'revEntity'\n ): EditorDescriptor<T> {\n for (const property of properties) {\n if (!property.resolvedPropertyName) {\n continue;\n }\n\n const fieldPrepend = `${modelType}.`;\n\n if (property.propertyType === MngGuiPropertyTypeDto.Enum) {\n const enumType = AuditUtil.findEnumType(property);\n if (enumType) {\n if (!property.possibleEnumValues) {\n continue;\n }\n\n descriptor.addFieldLookupEnum(fieldPrepend + property.resolvedPropertyName, enumType, property.possibleEnumValues).withDisabled();\n } else {\n descriptor.addField(fieldPrepend + property.resolvedPropertyName).withLabel(AuditUtil.getPropertyTitleKey(property, modelType));\n }\n } else if (property.propertyType === MngGuiPropertyTypeDto.Number) {\n descriptor\n .addField(fieldPrepend + property.resolvedPropertyName)\n .withLabel(AuditUtil.getPropertyTitleKey(property, modelType))\n .asNumber()\n .withDisabled();\n } else if (property.propertyType === MngGuiPropertyTypeDto.Boolean) {\n descriptor\n .addField(fieldPrepend + property.resolvedPropertyName)\n .withLabel(AuditUtil.getPropertyTitleKey(property, modelType))\n .withDisabled();\n } else if (property.propertyType === MngGuiPropertyTypeDto.LocalDate) {\n descriptor\n .addField(fieldPrepend + property.resolvedPropertyName)\n .withLabel(AuditUtil.getPropertyTitleKey(property, modelType))\n .asDatePicker('dd. MMM yyyy')\n .withDisabled();\n } else if (property.propertyType === MngGuiPropertyTypeDto.OffsetDateTime) {\n descriptor\n .addField(fieldPrepend + property.resolvedPropertyName)\n .withLabel(AuditUtil.getPropertyTitleKey(property, modelType))\n .asDatePicker('dd. MM yy', undefined, undefined, true, false)\n .withDisabled();\n } else {\n // string / wildcard\n descriptor\n .addField(fieldPrepend + property.resolvedPropertyName)\n .withLabel(AuditUtil.getPropertyTitleKey(property, modelType))\n .withDisabled();\n }\n }\n return descriptor;\n }\n\n public static buildDescriptorForEntityRevision(\n descriptor: TableviewDescriptor<MngRevEntityWithStateDto>,\n revModel: MngGuiEntityModelDto,\n entityModel: MngGuiEntityModelDto\n ): TableviewDescriptor<MngRevEntityWithStateDto> {\n descriptor.addColumn('revType').withTitle('MngEntityRevisionChangeState.properties.revType').asEnum(MngRevisionTypeDto).withFilter();\n descriptor.addFieldLookupEnum('revType', MngRevisionTypeDto).withLabel('MngEntityRevisionChangeState.properties.revType');\n\n if (revModel.properties) {\n AuditUtil.addColumnsFromModel(descriptor.table, revModel.properties, 'revEntity');\n AuditUtil.addFieldsFromModel(descriptor.detailsEditor, revModel.properties, 'revEntity');\n }\n if (entityModel.properties) {\n AuditUtil.addColumnsFromModel(descriptor.table, entityModel.properties, 'entityState');\n AuditUtil.addFieldsFromModel(descriptor.detailsEditor, entityModel.properties, 'entityState');\n }\n\n return descriptor;\n }\n\n private static findEnumType(property: MngGuiPropertyModelDto) {\n if (!property.enumClassSimpleName) {\n return undefined;\n }\n\n let enumType = ObjectSerializer.get().findEnum(property.enumClassSimpleName);\n if (!enumType) {\n enumType = ObjectSerializer.get().findEnum(property.enumClassSimpleName + 'Dto');\n }\n return enumType;\n }\n\n private static extractPropertyName(fullPropertyName: string | undefined): string | undefined {\n if (fullPropertyName?.includes('entityState.')) {\n return fullPropertyName.replace('entityState.', '');\n } else if (fullPropertyName?.includes('revEntity.')) {\n return fullPropertyName?.replace('revEntity.', '');\n }\n return fullPropertyName;\n }\n\n public static appendMediusQueryParamsToUrl(queryParams: MediusQueryParam): string {\n let url = `?firstResult=${queryParams.itemsOffset}&maxResults=${queryParams.itemsPerPage}`;\n if (queryParams.sortProperty && queryParams.sortProperty.length > 0) {\n url += '&sorts=';\n const sortingQPs = [];\n for (let i = 0; i < queryParams.sortProperty.length; i++) {\n sortingQPs.push(`${queryParams.sortAsc?.[i] ?? true ? 'asc' : 'desc'}:${this.extractPropertyName(queryParams.sortProperty[i])}`);\n }\n url += sortingQPs.join(',');\n }\n if (queryParams.filterParams && queryParams.filterParams.length > 0) {\n const filterQPs = [];\n for (const mfp of queryParams.filterParams) {\n switch (mfp.filterMatchType) {\n case MediusFilterMatchType.Equals: {\n filterQPs.push(`${this.extractPropertyName(mfp.property)}=${NewMediusFilterMatchType.Equals}:${mfp.filterValue}`);\n break;\n }\n case MediusFilterMatchType.NotEquals: {\n filterQPs.push(`${this.extractPropertyName(mfp.property)}=${NewMediusFilterMatchType.NotEquals}:${mfp.filterValue}`);\n break;\n }\n case MediusFilterMatchType.FromTo: {\n filterQPs.push(`${this.extractPropertyName(mfp.property)}=${NewMediusFilterMatchType.Between}:${mfp.filterValue},${mfp.filterValueTo}`);\n break;\n }\n case MediusFilterMatchType.Contains: {\n filterQPs.push(`${this.extractPropertyName(mfp.property)}=${NewMediusFilterMatchType.Contains}:${mfp.filterValue}`);\n break;\n }\n case MediusFilterMatchType.StartsWith: {\n filterQPs.push(`${this.extractPropertyName(mfp.property)}=${NewMediusFilterMatchType.StartsWith}:${mfp.filterValue}`);\n break;\n }\n case MediusFilterMatchType.EndsWith: {\n filterQPs.push(`${this.extractPropertyName(mfp.property)}=${NewMediusFilterMatchType.EndsWith}:${mfp.filterValue}`);\n break;\n }\n case MediusFilterMatchType.In: {\n filterQPs.push(`${this.extractPropertyName(mfp.property)}=${NewMediusFilterMatchType.In}:${mfp.filterValue}`);\n break;\n }\n case MediusFilterMatchType.NotIn: {\n filterQPs.push(`${this.extractPropertyName(mfp.property)}=${NewMediusFilterMatchType.NotIn}:${mfp.filterValue}`);\n break;\n }\n case MediusFilterMatchType.SmallerThan: {\n filterQPs.push(`${this.extractPropertyName(mfp.property)}=${NewMediusFilterMatchType.LessThan}:${mfp.filterValue}`);\n break;\n }\n case MediusFilterMatchType.GreaterThan: {\n filterQPs.push(`${this.extractPropertyName(mfp.property)}=${NewMediusFilterMatchType.GreaterThan}:${mfp.filterValue}`);\n break;\n }\n }\n }\n url += '&';\n url += filterQPs.join('&');\n }\n return url;\n }\n}\n","import {Injectable, inject} from '@angular/core';\n\nimport {Observable} from 'rxjs';\nimport {map} from 'rxjs/operators';\n\nimport {AMngBaseApiService, IdType, MediusQueryParam, MngConfigurationService, MngInternalError} from '@mediusinc/mng-commons';\n\nimport {MngRevEntityWithId} from '../../models/revEntityWithId.model';\nimport {MNG_AUDIT_MODULE_CONFIG_IT} from '../../service/module-config.token';\nimport {AuditUtil} from '../../utils/audit.util';\nimport {MngRevEntityWithChangesDto} from '../models/revEntityWithChangesDto';\nimport {MngRevEntityWithStateDto} from '../models/revEntityWithStateDto';\n\n@Injectable()\nexport class MngAuditRevisionsApiService extends AMngBaseApiService {\n protected readonly configService: MngConfigurationService;\n\n protected readonly moduleConfig = inject(MNG_AUDIT_MODULE_CONFIG_IT);\n\n constructor() {\n super();\n this.configService = MngConfigurationService.get();\n }\n\n protected getServiceBasePath(): string | null {\n return this.moduleConfig.apiServiceBasePath ?? '';\n }\n\n protected getBasePath(): string {\n return `${this.configService.getConfigValue(this.moduleConfig.apiBasePathConfigKey)}`;\n }\n\n public getRevisionList(queryParams: MediusQueryParam): Observable<Array<{[key: string]: unknown}>> {\n return this.http.get<Array<{[key: string]: unknown}>>(this.getUrl(AuditUtil.appendMediusQueryParamsToUrl(queryParams)));\n }\n\n public getRevisionCount(queryParams: MediusQueryParam): Observable<number> {\n return this.http.get<number>(this.getUrl('/count', AuditUtil.appendMediusQueryParamsToUrl(queryParams)));\n }\n\n public getAllChangesForRevision(revId: IdType): Observable<MngRevEntityWithChangesDto> {\n return this.http.get(this.getUrl(`/changes/${revId}`));\n }\n\n public listRevisionsWithStateForEntityType(queryParams: MediusQueryParam, entityType: string): Observable<Array<MngRevEntityWithStateDto>> {\n return this.http\n .get(this.getUrl(`/states/${entityType}`, AuditUtil.appendMediusQueryParamsToUrl(queryParams)))\n .pipe(map(response => this.deserializeClassArray(response, MngRevEntityWithStateDto)));\n }\n\n public fetchRevisionsWithStateForEntityType(entityType: string, revId: IdType, itemId: IdType): Observable<MngRevEntityWithId> {\n return this.http.get(this.getUrl(`/states/${entityType}?rev=eq:${revId}&id=eq:${itemId}`)).pipe(\n map(response =>\n this.deserializeClassArray(response, MngRevEntityWithId).map(i => {\n i.mergedId = i.revEntity?.['rev'] + '_' + i.entityState?.['id'];\n return i;\n })\n ),\n map(items => {\n if (items.length > 0) {\n return items[0];\n }\n throw new MngInternalError(`Entity revision ${revId} for ${entityType} with id ${itemId} was not found`);\n })\n );\n }\n\n public countRevisionsWithStateForEntityType(queryParams: MediusQueryParam, entityType: string): Observable<number> {\n return this.http.get<number>(this.getUrl(`/states/${entityType}/count`, AuditUtil.appendMediusQueryParamsToUrl(queryParams)));\n }\n}\n","/**\n * Medius quarkus sampler\n * Sampler OPENAPI definition\n *\n * The version of the OpenAPI document: 1.0.0\n * Contact: info@medius.si\n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\nimport {AttributeDef, ObjectSerializer, TypeName} from '@mediusinc/mng-commons';\n\nimport {MngGuiPropertyModelDto} from './guiPropertyModel';\n\n@TypeName('MngGuiEntityModelDto')\nexport class MngGuiEntityModelDto {\n entityName?: string;\n properties?: Array<MngGuiPropertyModelDto>;\n\n public static discriminator?: string;\n\n public static attributeTypeMap: Array<AttributeDef> = [\n {\n name: 'entityName',\n baseName: 'entityName',\n type: 'string'\n },\n {\n name: 'properties',\n baseName: 'properties',\n type: 'Array<GuiPropertyModel>'\n }\n ];\n\n public static getAttributeTypeMap() {\n return MngGuiEntityModelDto.attributeTypeMap;\n }\n}\n\nObjectSerializer.get().registerType(MngGuiEntityModelDto);\n","import {Injectable, inject} from '@angular/core';\n\nimport {Observable, shareReplay} from 'rxjs';\nimport {map} from 'rxjs/operators';\n\nimport {AMngBaseApiService, MngConfigurationService} from '@mediusinc/mng-commons';\n\nimport {MNG_AUDIT_MODULE_CONFIG_IT} from '../../service/module-config.token';\nimport {MngGuiEntityModelDto} from '../models/guiEntityModel';\n\n@Injectable()\nexport class MngAuditService extends AMngBaseApiService {\n private readonly CACHE_SIZE = 1;\n private readonly configService: MngConfigurationService;\n private readonly moduleConfig = inject(MNG_AUDIT_MODULE_CONFIG_IT);\n\n private revModelObs?: Observable<MngGuiEntityModelDto>;\n private auditModelObs?: Observable<Array<MngGuiEntityModelDto>>;\n\n constructor() {\n super();\n this.configService = MngConfigurationService.get();\n }\n\n protected getServiceBasePath(): string | null {\n return this.moduleConfig.apiServiceBasePath ?? '';\n }\n\n protected getBasePath(): string {\n return `${this.configService.getConfigValue(this.moduleConfig.apiBasePathConfigKey)}`;\n }\n\n public get revModel$() {\n if (!this.revModelObs) {\n this.revModelObs = this.requestRevModel().pipe(shareReplay(this.CACHE_SIZE));\n }\n return this.revModelObs;\n }\n\n public get auditModel$() {\n if (!this.auditModelObs) {\n this.auditModelObs = this.requestAuditModel().pipe(shareReplay(this.CACHE_SIZE));\n }\n return this.auditModelObs;\n }\n\n private requestRevModel(): Observable<MngGuiEntityModelDto> {\n return this.http.get(this.getUrl('/rev-model'));\n }\n\n private requestAuditModel(): Observable<Array<MngGuiEntityModelDto>> {\n return this.http.get(this.getUrl('/audit-models')).pipe(map(response => this.deserializeClassArray(response, MngGuiEntityModelDto)));\n }\n}\n","import {Component} from '@angular/core';\nimport {RouterOutlet} from '@angular/router';\n\n@Component({\n standalone: true,\n selector: 'mng-audit-page',\n imports: [RouterOutlet],\n templateUrl: 'audit-page.component.html'\n})\nexport class MngAuditPageComponent {}\n","<router-outlet></router-outlet>\n","import {AsyncPipe, NgIf} from '@angular/common';\nimport {Component, DestroyRef, OnInit, WritableSignal, inject, signal} from '@angular/core';\nimport {takeUntilDestroyed} from '@angular/core/rxjs-interop';\nimport {FormsModule} from '@angular/forms';\nimport {Router} from '@angular/router';\n\nimport {FormlyModule} from '@ngx-formly/core';\nimport {TranslateModule} from '@ngx-translate/core';\nimport {combineLatest, throwError} from 'rxjs';\nimport {map} from 'rxjs/operators';\n\nimport {\n AMngTableviewRouteComponent,\n ActionDataProviderUtil,\n ActionDescriptor,\n ActionEditorDescriptor,\n ActionEditorSubmitDescriptor,\n ActionEditorSubmitTypeEnum,\n ActionPositionEnum,\n LookupDataProvider,\n MediusQueryResult,\n MngDropdownComponent,\n MngInternalError,\n MngTableviewRouteComponent,\n TableviewActionDefaultCategories,\n TableviewDataProvider,\n TableviewDescriptor\n} from '@mediusinc/mng-commons';\n\nimport {MngGuiEntityModelDto} from '../../../api/models/guiEntityModel';\nimport {MngAuditRevisionsApiService} from '../../../api/services/audit-revisions-api.service';\nimport {MngAuditService} from '../../../api/services/audit.service';\nimport {MngRevEntityWithId} from '../../../models/revEntityWithId.model';\nimport {AuditUtil} from '../../../utils/audit.util';\n\n@Component({\n standalone: true,\n selector: 'mng-audit-entity-revisions-page',\n imports: [MngDropdownComponent, MngTableviewRouteComponent, FormsModule, AsyncPipe, NgIf, TranslateModule, FormlyModule],\n templateUrl: 'audit-entity-revisions-page.component.html'\n})\nexport class MngAuditEntityRevisionsPageComponent extends AMngTableviewRouteComponent<MngRevEntityWithId, unknown> implements OnInit {\n private destroyRef = inject(DestroyRef);\n private auditService = inject(MngAuditService);\n private revisisonsApiService = inject(MngAuditRevisionsApiService);\n\n public revModel?: MngGuiEntityModelDto;\n public selectedRevisionEntity?: MngGuiEntityModelDto;\n public revisionEntitiesLookupProvider?: LookupDataProvider<MngGuiEntityModelDto, never>;\n\n public showTableview: WritableSignal<boolean> = signal(false);\n\n constructor(private router: Router) {\n super();\n this.revisionEntitiesLookupProvider = new LookupDataProvider<MngGuiEntityModelDto, never>(MngGuiEntityModelDto).withLookup(() =>\n this.auditService.auditModel$.pipe(\n map(model =>\n model.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 )\n )\n );\n }\n\n override ngOnInit() {\n this.route.paramMap.pipe(takeUntilDestroyed(this.destroyRef)).subscribe(params => {\n const entityClass = params.get('entityClass');\n if (entityClass) {\n combineLatest([this.auditService.auditModel$, this.auditService.revModel$]).subscribe(([entities, revModel]) => {\n this.revModel = revModel;\n\n for (const e of entities) {\n if (e.entityName === entityClass) {\n this.selectedRevisionEntity = e;\n super.ngOnInit();\n setTimeout(() => this.showTableview.set(true));\n }\n }\n });\n }\n });\n }\n\n public onRevisionEntityChange() {\n this.showTableview.set(false);\n if (this.selectedRevisionEntity) {\n this.router.navigate(['/audit/entity-revisions/' + this.selectedRevisionEntity.entityName]);\n } else {\n this.router.navigate(['/audit/entity-revisions/']);\n }\n }\n\n protected createTableviewDescriptor() {\n if (!this.revModel || !this.selectedRevisionEntity?.entityName) {\n throw new MngInternalError('No revision model or revision entity is provided for tableview.');\n }\n\n const desc = new TableviewDescriptor(MngRevEntityWithId, 'mergedId', undefined, this.selectedRevisionEntity.entityName);\n\n AuditUtil.buildDescriptorForEntityRevision(desc, this.revModel, this.selectedRevisionEntity);\n\n desc.table.withColumnsResizable();\n desc.table.withCurrentColumnsReorderable();\n desc.table.withCurrentColumnsToggleable();\n desc.table.withDataKey(`EntityRevisionsPage_${this.selectedRevisionEntity.entityName}`);\n\n return desc;\n }\n\n protected createTableviewDataProvider() {\n if (!this.revModel || !this.selectedRevisionEntity?.entityName) {\n throw new MngInternalError('No revision model or revision entity is provided for tableview.');\n }\n\n const entityName = this.selectedRevisionEntity.entityName;\n return new TableviewDataProvider(MngRevEntityWithId).withGetAll(qp =>\n this.selectedRevisionEntity?.entityName\n ? combineLatest([\n this.revisisonsApiService.countRevisionsWithStateForEntityType(qp, entityName),\n this.revisisonsApiService.listRevisionsWithStateForEntityType(qp, entityName)\n ]).pipe(\n map(([count, values]) => {\n const revEntityWithStateAndIdList = [];\n for (const revEntityWithState of values) {\n const revEntityWithStateAndId = new MngRevEntityWithId();\n revEntityWithStateAndId.mergedId = revEntityWithState.revEntity?.['rev'] + '_' + revEntityWithState.entityState?.['id'];\n revEntityWithStateAndId.revType = revEntityWithState.revType;\n revEntityWithStateAndId.revEntity = revEntityWithState.revEntity;\n revEntityWithStateAndId.entityState = revEntityWithState.entityState;\n revEntityWithStateAndId.entityClassName = revEntityWithState.entityClassName;\n revEntityWithStateAndIdList.push(revEntityWithStateAndId);\n }\n return MediusQueryResult.fromArray(revEntityWithStateAndIdList, count);\n })\n )\n : throwError(() => new MngInternalError('No revision entity is provided for list.'))\n );\n }\n\n public override createActionDescriptors(): Array<ActionDescriptor<MngRevEntityWithId>> {\n if (!this.revModel || !this.selectedRevisionEntity?.entityName) {\n throw new MngInternalError('No revision model or revision entity is provided for tableview.');\n }\n\n const entityName = this.selectedRevisionEntity.entityName;\n const detailsAction = new ActionEditorDescriptor(this.descriptor.detailsEditor, 'entity-revision-details')\n .withPosition(ActionPositionEnum.RowClick)\n .withRouteTrigger(':itemId')\n .withFetchFunction(ActionDataProviderUtil.runFetchOrFail)\n .withTableviewCategory(TableviewActionDefaultCategories.DETAILS)\n .withFetchFunction(ctx => {\n if (!entityName) {\n return throwError(() => new MngInternalError('No revision entity is provided for details.'));\n }\n if (!ctx.parameters.itemId) {\n return throwError(() => new MngInternalError('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 this.revisisonsApiService.fetchRevisionsWithStateForEntityType(entityName, revId, itemId);\n });\n detailsAction.withEditorActions([new ActionEditorSubmitDescriptor(detailsAction, ActionEditorSubmitTypeEnum.Cancel)]);\n return [detailsAction];\n }\n}\n","<div class=\"card\">\n <div class=\"field mb-0\">\n <mng-dropdown\n id=\"revisionEntityDropdown\"\n [placeholder]=\"'pages.entityRevisions.dropdown.placeholder' | translate\"\n [itemsLabelProperty]=\"'entityName'\"\n [(ngModel)]=\"selectedRevisionEntity\"\n (valueChange)=\"onRevisionEntityChange()\"\n [dataProvider]=\"revisionEntitiesLookupProvider\"></mng-dropdown>\n <small *ngIf=\"!selectedRevisionEntity\" class=\"block\">\n {{ 'pages.entityRevisions.dropdown.helpText' | translate }}\n </small>\n </div>\n</div>\n<div *ngIf=\"showTableview()\">\n <mng-tableview-route [descriptor]=\"descriptor\" [dataProvider]=\"dataProvider\" [actions]=\"actions\"></mng-tableview-route>\n</div>\n","/**\n * Medius quarkus sampler\n * Sampler OPENAPI definition\n *\n * The version of the OpenAPI document: 1.0.0\n * Contact: info@medius.si\n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\nimport {AttributeDef, ObjectSerializer, TypeName} from '@mediusinc/mng-commons';\n\nimport {MngEntityChangeDto} from './entityChange';\n\n@TypeName('MngRevEntityWithChangesDto')\nexport class MngRevEntityWithChangesDto {\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n revEntity?: {[key: string]: any};\n entityNameChangesMap?: {[key: string]: Array<MngEntityChangeDto>};\n\n public static discriminator?: string;\n\n public static attributeTypeMap: Array<AttributeDef> = [\n {\n name: 'revEntity',\n baseName: 'revEntity',\n type: '{ [key: string]: any; }'\n },\n {\n name: 'entityNameChangesMap',\n baseName: 'entityNameChangesMap',\n type: '{ [key: string]: Array<EntityChange>; }'\n }\n ];\n\n public static getAttributeTypeMap() {\n return MngRevEntityWithChangesDto.attributeTypeMap;\n }\n}\n\nObjectSerializer.get().registerType(MngRevEntityWithChangesDto);\n","import {IdType, TypeName} from '@mediusinc/mng-commons';\n\n@TypeName('MngRevEntity')\nexport class MngRevEntity {\n rev?: IdType; // usually a number\n revUsername?: string;\n timestamp?: Date;\n}\n","import {TypeName} from '@mediusinc/mng-commons';\n\nimport {MngEntityChangeDto} from '../api/models/entityChange';\nimport {MngRevEntity} from './rev-entity.model';\n\n@TypeName('MngRevEntityDetailed')\nexport class MngRevEntityDetailed extends MngRevEntity {\n revEntity?: {[key: string]: unknown};\n entityNameChangesMap?: {[key: string]: Array<MngEntityChangeDto>};\n}\n","import {TypeName} from '@mediusinc/mng-commons';\n\nimport {MngRevisionTypeDto} from '../api/models/revisionType';\n\n@TypeName('MngEntityRevisionChangeState')\nexport class MngEntityRevisionChangeState {\n revType?: MngRevisionTypeDto;\n color?: 'green' | 'red';\n [key: string]: unknown;\n}\n","import {TypeName} from '@mediusinc/mng-commons';\n\nimport {MngEntityRevisionChangeState} from './entity-revision-change-state.model';\n\n@TypeName('MngEntityChanges')\nexport class MngEntityRevisionChanges {\n entityType?: string;\n items?: MngEntityRevisionChangeState[];\n}\n","import {AsyncPipe, NgForOf, NgIf} from '@angular/common';\nimport {Component, DestroyRef, Injector, Input, OnInit, inject} from '@angular/core';\nimport {takeUntilDestroyed} from '@angular/core/rxjs-interop';\n\nimport {BehaviorSubject} from 'rxjs';\n\nimport {AMngFormlyCustomFieldComponent, MngTableComponent, TableDescriptor, TablePaginationModeEnum} from '@mediusinc/mng-commons';\n\nimport {MngEntityChangeDto} from '../../api/models/entityChange';\nimport {MngGuiEntityModelDto} from '../../api/models/guiEntityModel';\nimport {MngRevisionTypeDto} from '../../api/models/revisionType';\nimport {MngAuditService} from '../../api/services/audit.service';\nimport {MngEntityRevisionChangeState} from '../../models/entity-revision-change-state.model';\nimport {MngEntityRevisionChanges} from '../../models/entity-revision-changes.model';\nimport {AuditUtil} from '../../utils/audit.util';\n\n@Component({\n standalone: true,\n selector: 'mng-entity-changes-field',\n imports: [NgForOf, MngTableComponent, NgIf, AsyncPipe],\n styleUrls: ['entity-changes-field.component.scss'],\n templateUrl: 'entity-changes-field.component.html'\n})\nexport class EntityChangesFieldComponent extends AMngFormlyCustomFieldComponent implements OnInit {\n @Input() public injector?: Injector;\n\n private destroyRef = inject(DestroyRef);\n\n public entityChanges: MngEntityRevisionChanges[] = [];\n public modelFetched = new BehaviorSubject(false);\n\n private auditModel: MngGuiEntityModelDto[] = [];\n private fieldValue?: {[key: string]: Array<MngEntityChangeDto>};\n\n ngOnInit(): void {\n this.fieldValue = this.formControl.value as {[key: string]: Array<MngEntityChangeDto>};\n this.injector\n ?.get(MngAuditService, undefined, {optional: true})\n ?.auditModel$.pipe(takeUntilDestroyed(this.destroyRef))\n .subscribe({\n next: model => {\n this.auditModel = model;\n\n if (this.fieldValue) {\n for (const key of Object.keys(this.fieldValue)) {\n const ec = new MngEntityRevisionChanges();\n ec.entityType = key;\n ec.items = [];\n for (const change of this.fieldValue[key]) {\n if (change.revType === MngRevisionTypeDto.Add && change.entityNewState) {\n const item = new MngEntityRevisionChangeState();\n item.revType = change.revType;\n item.color = 'green';\n Object.entries(change.entityNewState).forEach(([key, value]) => (item[key] = value));\n ec.items.push(item);\n } else if (change.revType === MngRevisionTypeDto.Del && change.entityOldState) {\n const item = new MngEntityRevisionChangeState();\n item.revType = change.revType;\n item.color = 'red';\n Object.entries(change.entityOldState).forEach(([key, value]) => (item[key] = value));\n ec.items.push(item);\n } else if (change.revType === MngRevisionTypeDto.Mod && change.entityOldState && change.entityNewState) {\n const itemOld = new MngEntityRevisionChangeState();\n itemOld.revType = change.revType;\n itemOld.color = 'red';\n Object.entries(change.entityOldState).forEach(([key, value]) => (itemOld[key] = value));\n\n const itemNew = new MngEntityRevisionChangeState();\n itemNew.revType = change.revType;\n itemNew.color = 'green';\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 this.entityChanges.push(ec);\n }\n this.modelFetched.next(true);\n }\n }\n });\n }\n\n public createDescriptor(entityChanges: MngEntityRevisionChanges) {\n const changedFields: string[] = [];\n if (entityChanges.items && entityChanges.items[0].revType === MngRevisionTypeDto.Mod) {\n for (const key in entityChanges.items[0]) {\n if (entityChanges.items[0][key] !== entityChanges.items[1][key]) {\n changedFields.push(key);\n }\n }\n }\n\n const guiEntityModel = this.auditModel.filter(m => m.entityName === entityChanges.entityType)[0];\n\n const desc = new TableDescriptor(MngEntityRevisionChangeState, undefined, undefined, guiEntityModel.entityName).withClassName('py-2');\n if (guiEntityModel.entityName) {\n desc.withTitle(guiEntityModel.entityName);\n }\n\n desc.addColumn('revType').withTitle('MngEntityRevisionChangeState.properties.revType').asEnum(MngRevisionTypeDto);\n\n if (guiEntityModel.properties) {\n AuditUtil.addColumnsFromModel(desc, guiEntityModel.properties, undefined, false, false);\n }\n\n desc.withRowClassName(undefined, (_, item) => (item ? (item.color === '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.withDataKey(`EntityChangeField_${entityChanges.entityType ?? 'default'}`);\n\n return desc;\n }\n}\n","<div *ngIf=\"modelFetched | async; else loading\">\n <mng-table *ngFor=\"let ec of entityChanges\" [items]=\"ec.items\" [descriptor]=\"createDescriptor(ec)\"></mng-table>\n</div>\n<ng-template #loading>\n <div class=\"text-center\">\n <i class=\"pi pi-spin pi-spinner\" style=\"font-size: 2rem\"></i>\n </div>\n</ng-template>\n","import {AsyncPipe, JsonPipe, NgIf} from '@angular/common';\nimport {ChangeDetectionStrategy, Component, DestroyRef, Injector, OnInit, WritableSignal, inject, signal} from '@angular/core';\nimport {takeUntilDestroyed} from '@angular/core/rxjs-interop';\nimport {RouterOutlet} from '@angular/router';\n\nimport {combineLatest, throwError} from 'rxjs';\nimport {map} from 'rxjs/operators';\n\nimport {\n AMngTableviewRouteComponent,\n ActionDescriptor,\n ActionEditorDescriptor,\n ActionEditorSubmitDescriptor,\n ActionEditorSubmitTypeEnum,\n ActionPositionEnum,\n EditorDescriptor,\n ITableviewDataProvider,\n MediusQueryResult,\n MngInternalError,\n MngTableviewComponent,\n MngTableviewRouteComponent,\n TableFilterDisplayEnum,\n TableviewActionDefaultCategories,\n TableviewDataProvider,\n TableviewDescriptor,\n TableviewEditorTypeEnum\n} from '@mediusinc/mng-commons';\n\nimport {MngGuiEntityModelDto} from '../../../api/models/guiEntityModel';\nimport {MngRevEntityWithChangesDto} from '../../../api/models/revEntityWithChangesDto';\nimport {MngAuditRevisionsApiService} from '../../../api/services/audit-revisions-api.service';\nimport {MngAuditService} from '../../../api/services/audit.service';\nimport {MngRevEntityDetailed} from '../../../models/rev-entity-detailed.model';\nimport {MngRevEntity} from '../../../models/rev-entity.model';\nimport {AuditUtil} from '../../../utils/audit.util';\nimport {EntityChangesFieldComponent} from '../../entity-changes-field/entity-changes-field.component';\n\n@Component({\n standalone: true,\n selector: 'mng-audit-revisions-page',\n templateUrl: './audit-revisions-page.component.html',\n imports: [NgIf, MngTableviewComponent, AsyncPipe, MngTableviewComponent, RouterOutlet, JsonPipe, MngTableviewRouteComponent],\n changeDetection: ChangeDetectionStrategy.OnPush\n})\nexport class MngAuditRevisionsPageComponent extends AMngTableviewRouteComponent<MngRevEntity, unknown> implements OnInit {\n private destroyRef = inject(DestroyRef);\n private injector = inject(Injector);\n private auditService = inject(MngAuditService);\n private revisisonsApiService = inject(MngAuditRevisionsApiService);\n\n private revModel?: MngGuiEntityModelDto;\n public showTableview: WritableSignal<boolean> = signal(false);\n\n override ngOnInit(): void {\n this.auditService.revModel$.pipe(takeUntilDestroyed(this.destroyRef)).subscribe({\n next: model => {\n this.revModel = model;\n super.ngOnInit();\n setTimeout(() => this.showTableview.set(true));\n }\n });\n }\n\n protected createTableviewDescriptor(): TableviewDescriptor<MngRevEntity> {\n if (this.revModel) {\n const idProperty = this.revModel.properties?.filter(prop => prop.isId).map(prop => prop.resolvedPropertyName)[0];\n const desc = new TableviewDescriptor(MngRevEntity, idProperty, undefined, this.revModel.entityName);\n const detailsDescriptor = new EditorDescriptor(MngRevEntityWithChangesDto, 'revEntity.' + idProperty, undefined, TableviewEditorTypeEnum.Details);\n\n if (this.revModel.properties) {\n AuditUtil.addColumnsFromModel(desc.table, this.revModel.properties);\n AuditUtil.addFieldsFromModel<MngRevEntityWithChangesDto>(detailsDescriptor, this.revModel.properties);\n }\n\n detailsDescriptor.addField('entityNameChangesMap').asCustomComponent(EntityChangesFieldComponent, ['field-no-label'], {injector: this.injector}).withDisabled();\n\n desc.withDetailsDescriptor(detailsDescriptor as EditorDescriptor<MngRevEntity>); // MngRevEntity is extended by MngRevEntityWithChangesDto, so no real harm here\n desc.table.withFilterDisplay(TableFilterDisplayEnum.Row);\n\n return desc;\n }\n return new TableviewDescriptor(MngRevEntity);\n }\n\n protected createTableviewDataProvider(): ITableviewDataProvider<MngRevEntity, unknown> {\n if (this.revModel) {\n return new TableviewDataProvider(MngRevEntity).withGetAll(qp =>\n combineLatest([this.revisisonsApiService.getRevisionCount(qp), this.revisisonsApiService.getRevisionList(qp)]).pipe(\n map(([count, values]) => MediusQueryResult.fromArray(values, count))\n )\n );\n }\n return new TableviewDataProvider(MngRevEntity);\n }\n\n protected override createActionDescriptors(): Array<ActionDescriptor<MngRevEntity>> {\n const detailsAction = new ActionEditorDescriptor(this.descriptor.detailsEditor, 'revision-details')\n .withPosition(ActionPositionEnum.RowClick)\n .withRouteTrigger(':itemId')\n .withTableviewCategory(TableviewActionDefaultCategories.DETAILS)\n .withFetchFunction(ctx =>\n ctx.parameters.itemId\n ? this.revisisonsApiService.getAllChangesForRevision(ctx.parameters.itemId).pipe(\n map(item => {\n const revEntityWithChanges = new MngRevEntityDetailed();\n revEntityWithChanges.rev = ctx.parameters.itemId;\n revEntityWithChanges.revEntity = item.revEntity;\n revEntityWithChanges.entityNameChangesMap = item.entityNameChangesMap;\n return revEntityWithChanges;\n })\n )\n : throwError(() => new MngInternalError('No revision id provided for fetch function'))\n );\n detailsAction.withEditorActions([new ActionEditorSubmitDescriptor(detailsAction, ActionEditorSubmitTypeEnum.Cancel)]);\n return [detailsAction];\n }\n}\n","<mng-tableview-route *ngIf=\"showTableview()\" [descriptor]=\"descriptor\" [dataProvider]=\"dataProvider\" [actions]=\"actions\"></mng-tableview-route>\n","import {Routes} from '@angular/router';\n\nimport {MngMenuItem, RouteBuilder, RoutesBuilder, TableviewRouteBuilder} from '@mediusinc/mng-commons';\n\nimport {MngAuditRevisionsApiService} from './api/services/audit-revisions-api.service';\nimport {MngAuditService} from './api/services/audit.service';\nimport {MngAuditPageComponent} from './components/pages/audit/audit-page.component';\nimport {MngAuditEntityRevisionsPageComponent} from './components/pages/entity-revisions/audit-entity-revisions-page.component';\nimport {MngAuditRevisionsPageComponent} from './components/pages/revisions/audit-revisions-page.component';\nimport {MngAuditModuleConfig} from './models/config.model';\nimport {MNG_AUDIT_MODULE_CONFIG_IT} from './service/module-config.token';\n\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 provideMngAuditRoutes(\n config: MngAuditModuleConfig,\n routeConfig?: {\n defaultRedirect?: string;\n preRevisionRoutes?: RouteBuilder[];\n postRevisionRoutes?: RouteBuilder[];\n revisionsMenuItem?: MngMenuItem;\n entityRevisionsMenuItem?: MngMenuItem;\n }\n): Routes {\n const routeBuilder = RouteBuilder.create('', MngAuditPageComponent)\n .withProvider(MngAuditService)\n .withProvider(MngAuditService)\n .withProvider(MngAuditRevisionsApiService)\n .withProvider({\n provide: MNG_AUDIT_MODULE_CONFIG_IT,\n useValue: config\n })\n .addChildBuilder(RouteBuilder.createRedirect('', routeConfig?.defaultRedirect ?? 'revisions', 'full'));\n\n if (routeConfig?.preRevisionRoutes?.length) {\n routeConfig.preRevisionRoutes.forEach(r => routeBuilder.addChildBuilder(r));\n }\n\n const revisionsRouteBuilder = TableviewRouteBuilder.fromComponent('revisions', MngAuditRevisionsPageComponent)\n .withTitle('pages.revisions.title')\n .withAdd(false)\n .withDelete(false)\n .withEdit(false);\n if (routeConfig?.revisionsMenuItem) {\n revisionsRouteBuilder.withMngMenuItem(routeConfig.revisionsMenuItem);\n } else {\n revisionsRouteBuilder.withMenuItem('pi pi-history', 'pages.revisions.title');\n }\n\n const entityRevisionsRouteBuilder = RouteBuilder.create('entity-revisions', MngAuditEntityRevisionsPageComponent).withTitle('pages.entityRevisions.title');\n if (routeConfig?.entityRevisionsMenuItem) {\n entityRevisionsRouteBuilder.withMngMenuItem(routeConfig.entityRevisionsMenuItem);\n } else {\n entityRevisionsRouteBuilder.withMenuItem('pi pi-history', 'pages.entityRevisions.title');\n }\n\n routeBuilder\n .addChildBuilder(revisionsRouteBuilder)\n .addChildBuilder(entityRevisionsRouteBuilder)\n .addChildBuilder(TableviewRouteBuilder.fromComponent('entity-revisions/:entityClass', MngAuditEntityRevisionsPageComponent).withTitle('pages.entityRevisions.title'));\n\n if (routeConfig?.postRevisionRoutes?.length) {\n routeConfig.postRevisionRoutes.forEach(r => routeBuilder.addChildBuilder(r));\n }\n\n return RoutesBuilder.create().addRouteBuilder(routeBuilder).build();\n}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":[],"mappings":"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"}
@@ -1,3 +1,15 @@
1
1
  import { Routes } from '@angular/router';
2
+ import { MngMenuItem, RouteBuilder } from '@mediusinc/mng-commons';
2
3
  import { MngAuditModuleConfig } from './models/config.model';
3
- export declare function provideMngAuditRoutes(config: MngAuditModuleConfig): Routes;
4
+ /**
5
+ * Provides routes for the mng-commons-audit functionalities.
6
+ * @param config Module config for audit section.
7
+ * @param routeConfig Optionally provide route configs.
8
+ */
9
+ export declare function provideMngAuditRoutes(config: MngAuditModuleConfig, routeConfig?: {
10
+ defaultRedirect?: string;
11
+ preRevisionRoutes?: RouteBuilder[];
12
+ postRevisionRoutes?: RouteBuilder[];
13
+ revisionsMenuItem?: MngMenuItem;
14
+ entityRevisionsMenuItem?: MngMenuItem;
15
+ }): Routes;
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@mediusinc/mng-commons-audit",
3
- "version": "3.0.0-rc.4",
3
+ "version": "3.0.0-rc.7",
4
4
  "peerDependencies": {
5
5
  "@angular/common": "^16.0.0",
6
6
  "@angular/core": "^16.0.0"