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

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (54) hide show
  1. package/README.md +12 -26
  2. package/esm2022/lib/api/models/entityChange.mjs +10 -10
  3. package/esm2022/lib/api/models/guiEntityModel.mjs +10 -10
  4. package/esm2022/lib/api/models/guiPropertyModel.mjs +10 -10
  5. package/esm2022/lib/api/models/guiPropertyType.mjs +13 -13
  6. package/esm2022/lib/api/models/guiRelationModel.mjs +10 -10
  7. package/esm2022/lib/api/models/revEntityWithChangesDto.mjs +10 -10
  8. package/esm2022/lib/api/models/revEntityWithStateDto.mjs +10 -10
  9. package/esm2022/lib/api/models/revisionType.mjs +11 -10
  10. package/esm2022/lib/api/services/audit-revisions-api.service.mjs +15 -15
  11. package/esm2022/lib/api/services/audit.service.mjs +12 -12
  12. package/esm2022/lib/audit.routes.mjs +17 -16
  13. package/esm2022/lib/components/entity-changes-field/entity-changes-field.component.mjs +17 -14
  14. package/esm2022/lib/components/pages/audit/audit.page.component.mjs +5 -5
  15. package/esm2022/lib/components/pages/entity-revisions/audit-entity-revisions.page.component.mjs +24 -20
  16. package/esm2022/lib/components/pages/revisions/audit-revisions.page.component.mjs +22 -19
  17. package/esm2022/lib/models/config.model.mjs +1 -1
  18. package/esm2022/lib/models/entity-revision-change-state.model.mjs +6 -6
  19. package/esm2022/lib/models/entity-revision-changes.model.mjs +6 -6
  20. package/esm2022/lib/models/guiEntityModelWithI18n.model.mjs +7 -7
  21. package/esm2022/lib/models/rev-entity-detailed.model.mjs +7 -7
  22. package/esm2022/lib/models/rev-entity.model.mjs +6 -6
  23. package/esm2022/lib/models/revEntityWithId.model.mjs +8 -8
  24. package/esm2022/lib/service/module-config.token.mjs +2 -2
  25. package/esm2022/lib/utils/audit.util.mjs +27 -25
  26. package/fesm2022/mediusinc-mng-commons-audit.mjs +153 -146
  27. package/fesm2022/mediusinc-mng-commons-audit.mjs.map +1 -1
  28. package/lib/api/models/entityChange.d.ts +4 -4
  29. package/lib/api/models/guiEntityModel.d.ts +4 -4
  30. package/lib/api/models/guiPropertyModel.d.ts +6 -6
  31. package/lib/api/models/guiPropertyType.d.ts +1 -1
  32. package/lib/api/models/guiRelationModel.d.ts +2 -2
  33. package/lib/api/models/revEntityWithChangesDto.d.ts +4 -4
  34. package/lib/api/models/revEntityWithStateDto.d.ts +4 -4
  35. package/lib/api/models/revisionType.d.ts +2 -2
  36. package/lib/api/services/audit-revisions-api.service.d.ts +13 -13
  37. package/lib/api/services/audit.service.d.ts +7 -7
  38. package/lib/audit.routes.d.ts +5 -5
  39. package/lib/components/entity-changes-field/entity-changes-field.component.d.ts +6 -6
  40. package/lib/components/pages/audit/audit.page.component.d.ts +3 -3
  41. package/lib/components/pages/entity-revisions/audit-entity-revisions.page.component.d.ts +15 -14
  42. package/lib/components/pages/revisions/audit-revisions.page.component.d.ts +9 -9
  43. package/lib/models/config.model.d.ts +1 -1
  44. package/lib/models/entity-revision-change-state.model.d.ts +3 -3
  45. package/lib/models/entity-revision-changes.model.d.ts +3 -3
  46. package/lib/models/guiEntityModelWithI18n.model.d.ts +2 -2
  47. package/lib/models/rev-entity-detailed.model.d.ts +4 -4
  48. package/lib/models/rev-entity.model.d.ts +2 -2
  49. package/lib/models/revEntityWithId.model.d.ts +2 -2
  50. package/lib/service/module-config.token.d.ts +2 -2
  51. package/lib/utils/audit.util.d.ts +15 -13
  52. package/package.json +7 -6
  53. /package/{assets/i18n → i18n}/en.json +0 -0
  54. /package/{assets/i18n → i18n}/sl.json +0 -0
@@ -1,39 +1,40 @@
1
- import { RouteBuilder, RoutesBuilder, TableviewRouteBuilder } from '@mediusinc/mng-commons';
2
- import { MngAuditService } from './api/services/audit.service';
3
- import { MngAuditPageComponent } from './components/pages/audit/audit.page.component';
4
- import { MngAuditEntityRevisionsPageComponent } from './components/pages/entity-revisions/audit-entity-revisions.page.component';
5
- import { MngAuditRevisionsPageComponent } from './components/pages/revisions/audit-revisions.page.component';
6
- import { MNG_AUDIT_MODULE_CONFIG_IT } from './service/module-config.token';
1
+ import { RouteBuilder, RoutesBuilder } from '@mediusinc/mng-commons/core';
2
+ import { TableviewRouteBuilder } from '@mediusinc/mng-commons/tableview';
3
+ import { AuditService } from './api/services/audit.service';
4
+ import { AuditPageComponent } from './components/pages/audit/audit.page.component';
5
+ import { AuditEntityRevisionsPageComponent } from './components/pages/entity-revisions/audit-entity-revisions.page.component';
6
+ import { AuditRevisionsPageComponent } from './components/pages/revisions/audit-revisions.page.component';
7
+ import { COMMONS_AUDIT_MODULE_CONFIG_IT } from './service/module-config.token';
7
8
  /**
8
9
  * Provides routes for the mng-commons-audit functionalities.
9
10
  * @param config Module config for audit section.
10
11
  * @param routeConfig Optionally provide route configs.
11
12
  */
12
- export function provideMngAuditRoutes(config, routeConfig) {
13
- const routeBuilder = RouteBuilder.create('', config.rootPageComponent ?? MngAuditPageComponent)
14
- .withProvider(MngAuditService)
13
+ export function provideAuditRoutes(config, routeConfig) {
14
+ const routeBuilder = RouteBuilder.create('', config.rootPageComponent ?? AuditPageComponent)
15
+ .withProvider(AuditService)
15
16
  .withProvider({
16
- provide: MNG_AUDIT_MODULE_CONFIG_IT,
17
+ provide: COMMONS_AUDIT_MODULE_CONFIG_IT,
17
18
  useValue: config
18
19
  })
19
20
  .addChildBuilder(RouteBuilder.createRedirect('', routeConfig?.defaultRedirect ?? 'revisions', 'full'));
20
21
  if (routeConfig?.preRevisionRoutes?.length) {
21
22
  routeConfig.preRevisionRoutes.forEach(r => routeBuilder.addChildBuilder(r));
22
23
  }
23
- const revisionsRouteBuilder = TableviewRouteBuilder.fromComponent('revisions', config.revisionsPageComponent ?? MngAuditRevisionsPageComponent)
24
+ const revisionsRouteBuilder = TableviewRouteBuilder.fromComponent('revisions', config.revisionsPageComponent ?? AuditRevisionsPageComponent)
24
25
  .withTitle('pages.revisions.title')
25
26
  .withAdd(false)
26
27
  .withDelete(false)
27
28
  .withEdit(false);
28
29
  if (routeConfig?.revisionsMenuItem) {
29
- revisionsRouteBuilder.withMngMenuItem(routeConfig.revisionsMenuItem);
30
+ revisionsRouteBuilder.withCommonsMenuItem(routeConfig.revisionsMenuItem);
30
31
  }
31
32
  else {
32
33
  revisionsRouteBuilder.withMenuItem('pi pi-book', 'pages.revisions.title');
33
34
  }
34
- const entityRevisionsRouteBuilder = RouteBuilder.create('entity-revisions', config.entityRevisionsPageComponent ?? MngAuditEntityRevisionsPageComponent).withTitle('pages.entityRevisions.title');
35
+ const entityRevisionsRouteBuilder = RouteBuilder.create('entity-revisions', config.entityRevisionsPageComponent ?? AuditEntityRevisionsPageComponent).withTitle('pages.entityRevisions.title');
35
36
  if (routeConfig?.entityRevisionsMenuItem) {
36
- entityRevisionsRouteBuilder.withMngMenuItem(routeConfig.entityRevisionsMenuItem);
37
+ entityRevisionsRouteBuilder.withCommonsMenuItem(routeConfig.entityRevisionsMenuItem);
37
38
  }
38
39
  else {
39
40
  entityRevisionsRouteBuilder.withMenuItem('pi pi-building', 'pages.entityRevisions.title');
@@ -41,10 +42,10 @@ export function provideMngAuditRoutes(config, routeConfig) {
41
42
  routeBuilder
42
43
  .addChildBuilder(revisionsRouteBuilder)
43
44
  .addChildBuilder(entityRevisionsRouteBuilder)
44
- .addChildBuilder(TableviewRouteBuilder.fromComponent('entity-revisions/:entityClass', config.entityRevisionsPageComponent ?? MngAuditEntityRevisionsPageComponent).withTitle('pages.entityRevisions.title'));
45
+ .addChildBuilder(TableviewRouteBuilder.fromComponent('entity-revisions/:entityClass', config.entityRevisionsPageComponent ?? AuditEntityRevisionsPageComponent).withTitle('pages.entityRevisions.title'));
45
46
  if (routeConfig?.postRevisionRoutes?.length) {
46
47
  routeConfig.postRevisionRoutes.forEach(r => routeBuilder.addChildBuilder(r));
47
48
  }
48
49
  return RoutesBuilder.create().addRouteBuilder(routeBuilder).build();
49
50
  }
50
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYXVkaXQucm91dGVzLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vc3JjL2xpYi9hdWRpdC5yb3V0ZXMudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBRUEsT0FBTyxFQUFjLFlBQVksRUFBRSxhQUFhLEVBQUUscUJBQXFCLEVBQUMsTUFBTSx3QkFBd0IsQ0FBQztBQUV2RyxPQUFPLEVBQUMsZUFBZSxFQUFDLE1BQU0sOEJBQThCLENBQUM7QUFDN0QsT0FBTyxFQUFDLHFCQUFxQixFQUFDLE1BQU0sK0NBQStDLENBQUM7QUFDcEYsT0FBTyxFQUFDLG9DQUFvQyxFQUFDLE1BQU0sMkVBQTJFLENBQUM7QUFDL0gsT0FBTyxFQUFDLDhCQUE4QixFQUFDLE1BQU0sNkRBQTZELENBQUM7QUFFM0csT0FBTyxFQUFDLDBCQUEwQixFQUFDLE1BQU0sK0JBQStCLENBQUM7QUFFekU7Ozs7R0FJRztBQUNILE1BQU0sVUFBVSxxQkFBcUIsQ0FDakMsTUFBNEIsRUFDNUIsV0FNQztJQUVELE1BQU0sWUFBWSxHQUFHLFlBQVksQ0FBQyxNQUFNLENBQUMsRUFBRSxFQUFFLE1BQU0sQ0FBQyxpQkFBaUIsSUFBSSxxQkFBcUIsQ0FBQztTQUMxRixZQUFZLENBQUMsZUFBZSxDQUFDO1NBQzdCLFlBQVksQ0FBQztRQUNWLE9BQU8sRUFBRSwwQkFBMEI7UUFDbkMsUUFBUSxFQUFFLE1BQU07S0FDbkIsQ0FBQztTQUNELGVBQWUsQ0FBQyxZQUFZLENBQUMsY0FBYyxDQUFDLEVBQUUsRUFBRSxXQUFXLEVBQUUsZUFBZSxJQUFJLFdBQVcsRUFBRSxNQUFNLENBQUMsQ0FBQyxDQUFDO0lBRTNHLElBQUksV0FBVyxFQUFFLGlCQUFpQixFQUFFLE1BQU0sRUFBRTtRQUN4QyxXQUFXLENBQUMsaUJBQWlCLENBQUMsT0FBTyxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsWUFBWSxDQUFDLGVBQWUsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDO0tBQy9FO0lBRUQsTUFBTSxxQkFBcUIsR0FBRyxxQkFBcUIsQ0FBQyxhQUFhLENBQUMsV0FBVyxFQUFFLE1BQU0sQ0FBQyxzQkFBc0IsSUFBSSw4QkFBOEIsQ0FBQztTQUMxSSxTQUFTLENBQUMsdUJBQXVCLENBQUM7U0FDbEMsT0FBTyxDQUFDLEtBQUssQ0FBQztTQUNkLFVBQVUsQ0FBQyxLQUFLLENBQUM7U0FDakIsUUFBUSxDQUFDLEtBQUssQ0FBQyxDQUFDO0lBQ3JCLElBQUksV0FBVyxFQUFFLGlCQUFpQixFQUFFO1FBQ2hDLHFCQUFxQixDQUFDLGVBQWUsQ0FBQyxXQUFXLENBQUMsaUJBQWlCLENBQUMsQ0FBQztLQUN4RTtTQUFNO1FBQ0gscUJBQXFCLENBQUMsWUFBWSxDQUFDLFlBQVksRUFBRSx1QkFBdUIsQ0FBQyxDQUFDO0tBQzdFO0lBRUQsTUFBTSwyQkFBMkIsR0FBRyxZQUFZLENBQUMsTUFBTSxDQUFDLGtCQUFrQixFQUFFLE1BQU0sQ0FBQyw0QkFBNEIsSUFBSSxvQ0FBb0MsQ0FBQyxDQUFDLFNBQVMsQ0FDOUosNkJBQTZCLENBQ2hDLENBQUM7SUFDRixJQUFJLFdBQVcsRUFBRSx1QkFBdUIsRUFBRTtRQUN0QywyQkFBMkIsQ0FBQyxlQUFlLENBQUMsV0FBVyxDQUFDLHVCQUF1QixDQUFDLENBQUM7S0FDcEY7U0FBTTtRQUNILDJCQUEyQixDQUFDLFlBQVksQ0FBQyxnQkFBZ0IsRUFBRSw2QkFBNkIsQ0FBQyxDQUFDO0tBQzdGO0lBRUQsWUFBWTtTQUNQLGVBQWUsQ0FBQyxxQkFBcUIsQ0FBQztTQUN0QyxlQUFlLENBQUMsMkJBQTJCLENBQUM7U0FDNUMsZUFBZSxDQUNaLHFCQUFxQixDQUFDLGFBQWEsQ0FBQywrQkFBK0IsRUFBRSxNQUFNLENBQUMsNEJBQTRCLElBQUksb0NBQW9DLENBQUMsQ0FBQyxTQUFTLENBQ3ZKLDZCQUE2QixDQUNoQyxDQUNKLENBQUM7SUFFTixJQUFJLFdBQVcsRUFBRSxrQkFBa0IsRUFBRSxNQUFNLEVBQUU7UUFDekMsV0FBVyxDQUFDLGtCQUFrQixDQUFDLE9BQU8sQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLFlBQVksQ0FBQyxlQUFlLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQztLQUNoRjtJQUVELE9BQU8sYUFBYSxDQUFDLE1BQU0sRUFBRSxDQUFDLGVBQWUsQ0FBQyxZQUFZLENBQUMsQ0FBQyxLQUFLLEVBQUUsQ0FBQztBQUN4RSxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtSb3V0ZXN9IGZyb20gJ0Bhbmd1bGFyL3JvdXRlcic7XG5cbmltcG9ydCB7TW5nTWVudUl0ZW0sIFJvdXRlQnVpbGRlciwgUm91dGVzQnVpbGRlciwgVGFibGV2aWV3Um91dGVCdWlsZGVyfSBmcm9tICdAbWVkaXVzaW5jL21uZy1jb21tb25zJztcblxuaW1wb3J0IHtNbmdBdWRpdFNlcnZpY2V9IGZyb20gJy4vYXBpL3NlcnZpY2VzL2F1ZGl0LnNlcnZpY2UnO1xuaW1wb3J0IHtNbmdBdWRpdFBhZ2VDb21wb25lbnR9IGZyb20gJy4vY29tcG9uZW50cy9wYWdlcy9hdWRpdC9hdWRpdC5wYWdlLmNvbXBvbmVudCc7XG5pbXBvcnQge01uZ0F1ZGl0RW50aXR5UmV2aXNpb25zUGFnZUNvbXBvbmVudH0gZnJvbSAnLi9jb21wb25lbnRzL3BhZ2VzL2VudGl0eS1yZXZpc2lvbnMvYXVkaXQtZW50aXR5LXJldmlzaW9ucy5wYWdlLmNvbXBvbmVudCc7XG5pbXBvcnQge01uZ0F1ZGl0UmV2aXNpb25zUGFnZUNvbXBvbmVudH0gZnJvbSAnLi9jb21wb25lbnRzL3BhZ2VzL3JldmlzaW9ucy9hdWRpdC1yZXZpc2lvbnMucGFnZS5jb21wb25lbnQnO1xuaW1wb3J0IHtNbmdBdWRpdE1vZHVsZUNvbmZpZ30gZnJvbSAnLi9tb2RlbHMvY29uZmlnLm1vZGVsJztcbmltcG9ydCB7TU5HX0FVRElUX01PRFVMRV9DT05GSUdfSVR9IGZyb20gJy4vc2VydmljZS9tb2R1bGUtY29uZmlnLnRva2VuJztcblxuLyoqXG4gKiBQcm92aWRlcyByb3V0ZXMgZm9yIHRoZSBtbmctY29tbW9ucy1hdWRpdCBmdW5jdGlvbmFsaXRpZXMuXG4gKiBAcGFyYW0gY29uZmlnIE1vZHVsZSBjb25maWcgZm9yIGF1ZGl0IHNlY3Rpb24uXG4gKiBAcGFyYW0gcm91dGVDb25maWcgT3B0aW9uYWxseSBwcm92aWRlIHJvdXRlIGNvbmZpZ3MuXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiBwcm92aWRlTW5nQXVkaXRSb3V0ZXMoXG4gICAgY29uZmlnOiBNbmdBdWRpdE1vZHVsZUNvbmZpZyxcbiAgICByb3V0ZUNvbmZpZz86IHtcbiAgICAgICAgZGVmYXVsdFJlZGlyZWN0Pzogc3RyaW5nO1xuICAgICAgICBwcmVSZXZpc2lvblJvdXRlcz86IFJvdXRlQnVpbGRlcltdO1xuICAgICAgICBwb3N0UmV2aXNpb25Sb3V0ZXM/OiBSb3V0ZUJ1aWxkZXJbXTtcbiAgICAgICAgcmV2aXNpb25zTWVudUl0ZW0/OiBNbmdNZW51SXRlbTtcbiAgICAgICAgZW50aXR5UmV2aXNpb25zTWVudUl0ZW0/OiBNbmdNZW51SXRlbTtcbiAgICB9XG4pOiBSb3V0ZXMge1xuICAgIGNvbnN0IHJvdXRlQnVpbGRlciA9IFJvdXRlQnVpbGRlci5jcmVhdGUoJycsIGNvbmZpZy5yb290UGFnZUNvbXBvbmVudCA/PyBNbmdBdWRpdFBhZ2VDb21wb25lbnQpXG4gICAgICAgIC53aXRoUHJvdmlkZXIoTW5nQXVkaXRTZXJ2aWNlKVxuICAgICAgICAud2l0aFByb3ZpZGVyKHtcbiAgICAgICAgICAgIHByb3ZpZGU6IE1OR19BVURJVF9NT0RVTEVfQ09ORklHX0lULFxuICAgICAgICAgICAgdXNlVmFsdWU6IGNvbmZpZ1xuICAgICAgICB9KVxuICAgICAgICAuYWRkQ2hpbGRCdWlsZGVyKFJvdXRlQnVpbGRlci5jcmVhdGVSZWRpcmVjdCgnJywgcm91dGVDb25maWc/LmRlZmF1bHRSZWRpcmVjdCA/PyAncmV2aXNpb25zJywgJ2Z1bGwnKSk7XG5cbiAgICBpZiAocm91dGVDb25maWc/LnByZVJldmlzaW9uUm91dGVzPy5sZW5ndGgpIHtcbiAgICAgICAgcm91dGVDb25maWcucHJlUmV2aXNpb25Sb3V0ZXMuZm9yRWFjaChyID0+IHJvdXRlQnVpbGRlci5hZGRDaGlsZEJ1aWxkZXIocikpO1xuICAgIH1cblxuICAgIGNvbnN0IHJldmlzaW9uc1JvdXRlQnVpbGRlciA9IFRhYmxldmlld1JvdXRlQnVpbGRlci5mcm9tQ29tcG9uZW50KCdyZXZpc2lvbnMnLCBjb25maWcucmV2aXNpb25zUGFnZUNvbXBvbmVudCA/PyBNbmdBdWRpdFJldmlzaW9uc1BhZ2VDb21wb25lbnQpXG4gICAgICAgIC53aXRoVGl0bGUoJ3BhZ2VzLnJldmlzaW9ucy50aXRsZScpXG4gICAgICAgIC53aXRoQWRkKGZhbHNlKVxuICAgICAgICAud2l0aERlbGV0ZShmYWxzZSlcbiAgICAgICAgLndpdGhFZGl0KGZhbHNlKTtcbiAgICBpZiAocm91dGVDb25maWc/LnJldmlzaW9uc01lbnVJdGVtKSB7XG4gICAgICAgIHJldmlzaW9uc1JvdXRlQnVpbGRlci53aXRoTW5nTWVudUl0ZW0ocm91dGVDb25maWcucmV2aXNpb25zTWVudUl0ZW0pO1xuICAgIH0gZWxzZSB7XG4gICAgICAgIHJldmlzaW9uc1JvdXRlQnVpbGRlci53aXRoTWVudUl0ZW0oJ3BpIHBpLWJvb2snLCAncGFnZXMucmV2aXNpb25zLnRpdGxlJyk7XG4gICAgfVxuXG4gICAgY29uc3QgZW50aXR5UmV2aXNpb25zUm91dGVCdWlsZGVyID0gUm91dGVCdWlsZGVyLmNyZWF0ZSgnZW50aXR5LXJldmlzaW9ucycsIGNvbmZpZy5lbnRpdHlSZXZpc2lvbnNQYWdlQ29tcG9uZW50ID8/IE1uZ0F1ZGl0RW50aXR5UmV2aXNpb25zUGFnZUNvbXBvbmVudCkud2l0aFRpdGxlKFxuICAgICAgICAncGFnZXMuZW50aXR5UmV2aXNpb25zLnRpdGxlJ1xuICAgICk7XG4gICAgaWYgKHJvdXRlQ29uZmlnPy5lbnRpdHlSZXZpc2lvbnNNZW51SXRlbSkge1xuICAgICAgICBlbnRpdHlSZXZpc2lvbnNSb3V0ZUJ1aWxkZXIud2l0aE1uZ01lbnVJdGVtKHJvdXRlQ29uZmlnLmVudGl0eVJldmlzaW9uc01lbnVJdGVtKTtcbiAgICB9IGVsc2Uge1xuICAgICAgICBlbnRpdHlSZXZpc2lvbnNSb3V0ZUJ1aWxkZXIud2l0aE1lbnVJdGVtKCdwaSBwaS1idWlsZGluZycsICdwYWdlcy5lbnRpdHlSZXZpc2lvbnMudGl0bGUnKTtcbiAgICB9XG5cbiAgICByb3V0ZUJ1aWxkZXJcbiAgICAgICAgLmFkZENoaWxkQnVpbGRlcihyZXZpc2lvbnNSb3V0ZUJ1aWxkZXIpXG4gICAgICAgIC5hZGRDaGlsZEJ1aWxkZXIoZW50aXR5UmV2aXNpb25zUm91dGVCdWlsZGVyKVxuICAgICAgICAuYWRkQ2hpbGRCdWlsZGVyKFxuICAgICAgICAgICAgVGFibGV2aWV3Um91dGVCdWlsZGVyLmZyb21Db21wb25lbnQoJ2VudGl0eS1yZXZpc2lvbnMvOmVudGl0eUNsYXNzJywgY29uZmlnLmVudGl0eVJldmlzaW9uc1BhZ2VDb21wb25lbnQgPz8gTW5nQXVkaXRFbnRpdHlSZXZpc2lvbnNQYWdlQ29tcG9uZW50KS53aXRoVGl0bGUoXG4gICAgICAgICAgICAgICAgJ3BhZ2VzLmVudGl0eVJldmlzaW9ucy50aXRsZSdcbiAgICAgICAgICAgIClcbiAgICAgICAgKTtcblxuICAgIGlmIChyb3V0ZUNvbmZpZz8ucG9zdFJldmlzaW9uUm91dGVzPy5sZW5ndGgpIHtcbiAgICAgICAgcm91dGVDb25maWcucG9zdFJldmlzaW9uUm91dGVzLmZvckVhY2gociA9PiByb3V0ZUJ1aWxkZXIuYWRkQ2hpbGRCdWlsZGVyKHIpKTtcbiAgICB9XG5cbiAgICByZXR1cm4gUm91dGVzQnVpbGRlci5jcmVhdGUoKS5hZGRSb3V0ZUJ1aWxkZXIocm91dGVCdWlsZGVyKS5idWlsZCgpO1xufVxuIl19
51
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYXVkaXQucm91dGVzLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vc3JjL2xpYi9hdWRpdC5yb3V0ZXMudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBRUEsT0FBTyxFQUFrQixZQUFZLEVBQUUsYUFBYSxFQUFDLE1BQU0sNkJBQTZCLENBQUM7QUFDekYsT0FBTyxFQUFDLHFCQUFxQixFQUFDLE1BQU0sa0NBQWtDLENBQUM7QUFFdkUsT0FBTyxFQUFDLFlBQVksRUFBQyxNQUFNLDhCQUE4QixDQUFDO0FBQzFELE9BQU8sRUFBQyxrQkFBa0IsRUFBQyxNQUFNLCtDQUErQyxDQUFDO0FBQ2pGLE9BQU8sRUFBQyxpQ0FBaUMsRUFBQyxNQUFNLDJFQUEyRSxDQUFDO0FBQzVILE9BQU8sRUFBQywyQkFBMkIsRUFBQyxNQUFNLDZEQUE2RCxDQUFDO0FBRXhHLE9BQU8sRUFBQyw4QkFBOEIsRUFBQyxNQUFNLCtCQUErQixDQUFDO0FBRTdFOzs7O0dBSUc7QUFDSCxNQUFNLFVBQVUsa0JBQWtCLENBQzlCLE1BQWdDLEVBQ2hDLFdBTUM7SUFFRCxNQUFNLFlBQVksR0FBRyxZQUFZLENBQUMsTUFBTSxDQUFDLEVBQUUsRUFBRSxNQUFNLENBQUMsaUJBQWlCLElBQUksa0JBQWtCLENBQUM7U0FDdkYsWUFBWSxDQUFDLFlBQVksQ0FBQztTQUMxQixZQUFZLENBQUM7UUFDVixPQUFPLEVBQUUsOEJBQThCO1FBQ3ZDLFFBQVEsRUFBRSxNQUFNO0tBQ25CLENBQUM7U0FDRCxlQUFlLENBQUMsWUFBWSxDQUFDLGNBQWMsQ0FBQyxFQUFFLEVBQUUsV0FBVyxFQUFFLGVBQWUsSUFBSSxXQUFXLEVBQUUsTUFBTSxDQUFDLENBQUMsQ0FBQztJQUUzRyxJQUFJLFdBQVcsRUFBRSxpQkFBaUIsRUFBRSxNQUFNLEVBQUUsQ0FBQztRQUN6QyxXQUFXLENBQUMsaUJBQWlCLENBQUMsT0FBTyxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsWUFBWSxDQUFDLGVBQWUsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDO0lBQ2hGLENBQUM7SUFFRCxNQUFNLHFCQUFxQixHQUFHLHFCQUFxQixDQUFDLGFBQWEsQ0FBQyxXQUFXLEVBQUUsTUFBTSxDQUFDLHNCQUFzQixJQUFJLDJCQUEyQixDQUFDO1NBQ3ZJLFNBQVMsQ0FBQyx1QkFBdUIsQ0FBQztTQUNsQyxPQUFPLENBQUMsS0FBSyxDQUFDO1NBQ2QsVUFBVSxDQUFDLEtBQUssQ0FBQztTQUNqQixRQUFRLENBQUMsS0FBSyxDQUFDLENBQUM7SUFDckIsSUFBSSxXQUFXLEVBQUUsaUJBQWlCLEVBQUUsQ0FBQztRQUNqQyxxQkFBcUIsQ0FBQyxtQkFBbUIsQ0FBQyxXQUFXLENBQUMsaUJBQWlCLENBQUMsQ0FBQztJQUM3RSxDQUFDO1NBQU0sQ0FBQztRQUNKLHFCQUFxQixDQUFDLFlBQVksQ0FBQyxZQUFZLEVBQUUsdUJBQXVCLENBQUMsQ0FBQztJQUM5RSxDQUFDO0lBRUQsTUFBTSwyQkFBMkIsR0FBRyxZQUFZLENBQUMsTUFBTSxDQUFDLGtCQUFrQixFQUFFLE1BQU0sQ0FBQyw0QkFBNEIsSUFBSSxpQ0FBaUMsQ0FBQyxDQUFDLFNBQVMsQ0FDM0osNkJBQTZCLENBQ2hDLENBQUM7SUFDRixJQUFJLFdBQVcsRUFBRSx1QkFBdUIsRUFBRSxDQUFDO1FBQ3ZDLDJCQUEyQixDQUFDLG1CQUFtQixDQUFDLFdBQVcsQ0FBQyx1QkFBdUIsQ0FBQyxDQUFDO0lBQ3pGLENBQUM7U0FBTSxDQUFDO1FBQ0osMkJBQTJCLENBQUMsWUFBWSxDQUFDLGdCQUFnQixFQUFFLDZCQUE2QixDQUFDLENBQUM7SUFDOUYsQ0FBQztJQUVELFlBQVk7U0FDUCxlQUFlLENBQUMscUJBQXFCLENBQUM7U0FDdEMsZUFBZSxDQUFDLDJCQUEyQixDQUFDO1NBQzVDLGVBQWUsQ0FDWixxQkFBcUIsQ0FBQyxhQUFhLENBQUMsK0JBQStCLEVBQUUsTUFBTSxDQUFDLDRCQUE0QixJQUFJLGlDQUFpQyxDQUFDLENBQUMsU0FBUyxDQUNwSiw2QkFBNkIsQ0FDaEMsQ0FDSixDQUFDO0lBRU4sSUFBSSxXQUFXLEVBQUUsa0JBQWtCLEVBQUUsTUFBTSxFQUFFLENBQUM7UUFDMUMsV0FBVyxDQUFDLGtCQUFrQixDQUFDLE9BQU8sQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLFlBQVksQ0FBQyxlQUFlLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQztJQUNqRixDQUFDO0lBRUQsT0FBTyxhQUFhLENBQUMsTUFBTSxFQUFFLENBQUMsZUFBZSxDQUFDLFlBQVksQ0FBQyxDQUFDLEtBQUssRUFBRSxDQUFDO0FBQ3hFLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge1JvdXRlc30gZnJvbSAnQGFuZ3VsYXIvcm91dGVyJztcblxuaW1wb3J0IHtDb21tb25zTWVudUl0ZW0sIFJvdXRlQnVpbGRlciwgUm91dGVzQnVpbGRlcn0gZnJvbSAnQG1lZGl1c2luYy9tbmctY29tbW9ucy9jb3JlJztcbmltcG9ydCB7VGFibGV2aWV3Um91dGVCdWlsZGVyfSBmcm9tICdAbWVkaXVzaW5jL21uZy1jb21tb25zL3RhYmxldmlldyc7XG5cbmltcG9ydCB7QXVkaXRTZXJ2aWNlfSBmcm9tICcuL2FwaS9zZXJ2aWNlcy9hdWRpdC5zZXJ2aWNlJztcbmltcG9ydCB7QXVkaXRQYWdlQ29tcG9uZW50fSBmcm9tICcuL2NvbXBvbmVudHMvcGFnZXMvYXVkaXQvYXVkaXQucGFnZS5jb21wb25lbnQnO1xuaW1wb3J0IHtBdWRpdEVudGl0eVJldmlzaW9uc1BhZ2VDb21wb25lbnR9IGZyb20gJy4vY29tcG9uZW50cy9wYWdlcy9lbnRpdHktcmV2aXNpb25zL2F1ZGl0LWVudGl0eS1yZXZpc2lvbnMucGFnZS5jb21wb25lbnQnO1xuaW1wb3J0IHtBdWRpdFJldmlzaW9uc1BhZ2VDb21wb25lbnR9IGZyb20gJy4vY29tcG9uZW50cy9wYWdlcy9yZXZpc2lvbnMvYXVkaXQtcmV2aXNpb25zLnBhZ2UuY29tcG9uZW50JztcbmltcG9ydCB7Q29tbW9uc0F1ZGl0TW9kdWxlQ29uZmlnfSBmcm9tICcuL21vZGVscy9jb25maWcubW9kZWwnO1xuaW1wb3J0IHtDT01NT05TX0FVRElUX01PRFVMRV9DT05GSUdfSVR9IGZyb20gJy4vc2VydmljZS9tb2R1bGUtY29uZmlnLnRva2VuJztcblxuLyoqXG4gKiBQcm92aWRlcyByb3V0ZXMgZm9yIHRoZSBtbmctY29tbW9ucy1hdWRpdCBmdW5jdGlvbmFsaXRpZXMuXG4gKiBAcGFyYW0gY29uZmlnIE1vZHVsZSBjb25maWcgZm9yIGF1ZGl0IHNlY3Rpb24uXG4gKiBAcGFyYW0gcm91dGVDb25maWcgT3B0aW9uYWxseSBwcm92aWRlIHJvdXRlIGNvbmZpZ3MuXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiBwcm92aWRlQXVkaXRSb3V0ZXMoXG4gICAgY29uZmlnOiBDb21tb25zQXVkaXRNb2R1bGVDb25maWcsXG4gICAgcm91dGVDb25maWc/OiB7XG4gICAgICAgIGRlZmF1bHRSZWRpcmVjdD86IHN0cmluZztcbiAgICAgICAgcHJlUmV2aXNpb25Sb3V0ZXM/OiBSb3V0ZUJ1aWxkZXJbXTtcbiAgICAgICAgcG9zdFJldmlzaW9uUm91dGVzPzogUm91dGVCdWlsZGVyW107XG4gICAgICAgIHJldmlzaW9uc01lbnVJdGVtPzogQ29tbW9uc01lbnVJdGVtO1xuICAgICAgICBlbnRpdHlSZXZpc2lvbnNNZW51SXRlbT86IENvbW1vbnNNZW51SXRlbTtcbiAgICB9XG4pOiBSb3V0ZXMge1xuICAgIGNvbnN0IHJvdXRlQnVpbGRlciA9IFJvdXRlQnVpbGRlci5jcmVhdGUoJycsIGNvbmZpZy5yb290UGFnZUNvbXBvbmVudCA/PyBBdWRpdFBhZ2VDb21wb25lbnQpXG4gICAgICAgIC53aXRoUHJvdmlkZXIoQXVkaXRTZXJ2aWNlKVxuICAgICAgICAud2l0aFByb3ZpZGVyKHtcbiAgICAgICAgICAgIHByb3ZpZGU6IENPTU1PTlNfQVVESVRfTU9EVUxFX0NPTkZJR19JVCxcbiAgICAgICAgICAgIHVzZVZhbHVlOiBjb25maWdcbiAgICAgICAgfSlcbiAgICAgICAgLmFkZENoaWxkQnVpbGRlcihSb3V0ZUJ1aWxkZXIuY3JlYXRlUmVkaXJlY3QoJycsIHJvdXRlQ29uZmlnPy5kZWZhdWx0UmVkaXJlY3QgPz8gJ3JldmlzaW9ucycsICdmdWxsJykpO1xuXG4gICAgaWYgKHJvdXRlQ29uZmlnPy5wcmVSZXZpc2lvblJvdXRlcz8ubGVuZ3RoKSB7XG4gICAgICAgIHJvdXRlQ29uZmlnLnByZVJldmlzaW9uUm91dGVzLmZvckVhY2gociA9PiByb3V0ZUJ1aWxkZXIuYWRkQ2hpbGRCdWlsZGVyKHIpKTtcbiAgICB9XG5cbiAgICBjb25zdCByZXZpc2lvbnNSb3V0ZUJ1aWxkZXIgPSBUYWJsZXZpZXdSb3V0ZUJ1aWxkZXIuZnJvbUNvbXBvbmVudCgncmV2aXNpb25zJywgY29uZmlnLnJldmlzaW9uc1BhZ2VDb21wb25lbnQgPz8gQXVkaXRSZXZpc2lvbnNQYWdlQ29tcG9uZW50KVxuICAgICAgICAud2l0aFRpdGxlKCdwYWdlcy5yZXZpc2lvbnMudGl0bGUnKVxuICAgICAgICAud2l0aEFkZChmYWxzZSlcbiAgICAgICAgLndpdGhEZWxldGUoZmFsc2UpXG4gICAgICAgIC53aXRoRWRpdChmYWxzZSk7XG4gICAgaWYgKHJvdXRlQ29uZmlnPy5yZXZpc2lvbnNNZW51SXRlbSkge1xuICAgICAgICByZXZpc2lvbnNSb3V0ZUJ1aWxkZXIud2l0aENvbW1vbnNNZW51SXRlbShyb3V0ZUNvbmZpZy5yZXZpc2lvbnNNZW51SXRlbSk7XG4gICAgfSBlbHNlIHtcbiAgICAgICAgcmV2aXNpb25zUm91dGVCdWlsZGVyLndpdGhNZW51SXRlbSgncGkgcGktYm9vaycsICdwYWdlcy5yZXZpc2lvbnMudGl0bGUnKTtcbiAgICB9XG5cbiAgICBjb25zdCBlbnRpdHlSZXZpc2lvbnNSb3V0ZUJ1aWxkZXIgPSBSb3V0ZUJ1aWxkZXIuY3JlYXRlKCdlbnRpdHktcmV2aXNpb25zJywgY29uZmlnLmVudGl0eVJldmlzaW9uc1BhZ2VDb21wb25lbnQgPz8gQXVkaXRFbnRpdHlSZXZpc2lvbnNQYWdlQ29tcG9uZW50KS53aXRoVGl0bGUoXG4gICAgICAgICdwYWdlcy5lbnRpdHlSZXZpc2lvbnMudGl0bGUnXG4gICAgKTtcbiAgICBpZiAocm91dGVDb25maWc/LmVudGl0eVJldmlzaW9uc01lbnVJdGVtKSB7XG4gICAgICAgIGVudGl0eVJldmlzaW9uc1JvdXRlQnVpbGRlci53aXRoQ29tbW9uc01lbnVJdGVtKHJvdXRlQ29uZmlnLmVudGl0eVJldmlzaW9uc01lbnVJdGVtKTtcbiAgICB9IGVsc2Uge1xuICAgICAgICBlbnRpdHlSZXZpc2lvbnNSb3V0ZUJ1aWxkZXIud2l0aE1lbnVJdGVtKCdwaSBwaS1idWlsZGluZycsICdwYWdlcy5lbnRpdHlSZXZpc2lvbnMudGl0bGUnKTtcbiAgICB9XG5cbiAgICByb3V0ZUJ1aWxkZXJcbiAgICAgICAgLmFkZENoaWxkQnVpbGRlcihyZXZpc2lvbnNSb3V0ZUJ1aWxkZXIpXG4gICAgICAgIC5hZGRDaGlsZEJ1aWxkZXIoZW50aXR5UmV2aXNpb25zUm91dGVCdWlsZGVyKVxuICAgICAgICAuYWRkQ2hpbGRCdWlsZGVyKFxuICAgICAgICAgICAgVGFibGV2aWV3Um91dGVCdWlsZGVyLmZyb21Db21wb25lbnQoJ2VudGl0eS1yZXZpc2lvbnMvOmVudGl0eUNsYXNzJywgY29uZmlnLmVudGl0eVJldmlzaW9uc1BhZ2VDb21wb25lbnQgPz8gQXVkaXRFbnRpdHlSZXZpc2lvbnNQYWdlQ29tcG9uZW50KS53aXRoVGl0bGUoXG4gICAgICAgICAgICAgICAgJ3BhZ2VzLmVudGl0eVJldmlzaW9ucy50aXRsZSdcbiAgICAgICAgICAgIClcbiAgICAgICAgKTtcblxuICAgIGlmIChyb3V0ZUNvbmZpZz8ucG9zdFJldmlzaW9uUm91dGVzPy5sZW5ndGgpIHtcbiAgICAgICAgcm91dGVDb25maWcucG9zdFJldmlzaW9uUm91dGVzLmZvckVhY2gociA9PiByb3V0ZUJ1aWxkZXIuYWRkQ2hpbGRCdWlsZGVyKHIpKTtcbiAgICB9XG5cbiAgICByZXR1cm4gUm91dGVzQnVpbGRlci5jcmVhdGUoKS5hZGRSb3V0ZUJ1aWxkZXIocm91dGVCdWlsZGVyKS5idWlsZCgpO1xufVxuIl19
@@ -2,13 +2,16 @@ import { AsyncPipe } from '@angular/common';
2
2
  import { ChangeDetectionStrategy, Component, DestroyRef, Injector, Input, inject } from '@angular/core';
3
3
  import { takeUntilDestroyed } from '@angular/core/rxjs-interop';
4
4
  import { BehaviorSubject } from 'rxjs';
5
- import { AMngFormlyCustomFieldComponent, MngInternalError, MngTableComponent, TableDescriptor, TablePaginationModeEnum } from '@mediusinc/mng-commons';
6
- import { MngRevisionTypeDto, revisionTypeEnum } from '../../api/models/revisionType';
7
- import { MngAuditService } from '../../api/services/audit.service';
8
- import { MngEntityRevisionChangeState } from '../../models/entity-revision-change-state.model';
5
+ import { CommonsInternalError } from '@mediusinc/mng-commons/core';
6
+ import { TableComponent } from '@mediusinc/mng-commons/table';
7
+ import { TableDescriptor, TablePaginationModeEnum } from '@mediusinc/mng-commons/table/api';
8
+ import { AFormlyCustomFieldComponent } from '@mediusinc/mng-commons/tableview/api';
9
+ import { RevisionTypeDto, revisionTypeEnum } from '../../api/models/revisionType';
10
+ import { AuditService } from '../../api/services/audit.service';
11
+ import { EntityRevisionChangeState } from '../../models/entity-revision-change-state.model';
9
12
  import { AuditUtil } from '../../utils/audit.util';
10
13
  import * as i0 from "@angular/core";
11
- export class EntityChangesFieldComponent extends AMngFormlyCustomFieldComponent {
14
+ export class EntityChangesFieldComponent extends AFormlyCustomFieldComponent {
12
15
  constructor() {
13
16
  super(...arguments);
14
17
  this.destroyRef = inject(DestroyRef);
@@ -19,7 +22,7 @@ export class EntityChangesFieldComponent extends AMngFormlyCustomFieldComponent
19
22
  ngOnInit() {
20
23
  this.fieldValue = this.formControl.value;
21
24
  this.injector
22
- ?.get(MngAuditService, undefined, { optional: true })
25
+ ?.get(AuditService, undefined, { optional: true })
23
26
  ?.auditModel$.pipe(takeUntilDestroyed(this.destroyRef))
24
27
  .subscribe({
25
28
  next: model => {
@@ -30,13 +33,13 @@ export class EntityChangesFieldComponent extends AMngFormlyCustomFieldComponent
30
33
  }
31
34
  },
32
35
  error: err => {
33
- throw new MngInternalError('Error while trying to fetch audit model from audit service', { name: 'EntityChangesFieldComponentError', cause: err });
36
+ throw new CommonsInternalError('Error while trying to fetch audit model from audit service', { name: 'EntityChangesFieldComponentError', cause: err });
34
37
  }
35
38
  });
36
39
  }
37
40
  createDescriptor(entityChanges) {
38
41
  const changedFields = [];
39
- if (entityChanges.items && entityChanges.items[0].revType === MngRevisionTypeDto.Mod) {
42
+ if (entityChanges.items && entityChanges.items[0].revType === RevisionTypeDto.Mod) {
40
43
  for (const key in entityChanges.items[0]) {
41
44
  if (entityChanges.items[0][key] !== entityChanges.items[1][key]) {
42
45
  changedFields.push(key);
@@ -44,7 +47,7 @@ export class EntityChangesFieldComponent extends AMngFormlyCustomFieldComponent
44
47
  }
45
48
  }
46
49
  const guiEntityModel = this.auditModel.filter(m => m.entityName === entityChanges.entityType)[0];
47
- const desc = TableDescriptor.fromClass(MngEntityRevisionChangeState, undefined, undefined, guiEntityModel.entityName).withClassName('py-2');
50
+ const desc = TableDescriptor.fromClass(EntityRevisionChangeState, undefined, undefined, guiEntityModel.entityName).withClassName('py-2');
48
51
  if (guiEntityModel.entityName) {
49
52
  desc.withTitle(guiEntityModel.entityName);
50
53
  }
@@ -64,13 +67,13 @@ export class EntityChangesFieldComponent extends AMngFormlyCustomFieldComponent
64
67
  desc.withTrackProperty(`EntityChangeField_${entityChanges.entityType ?? 'default'}`);
65
68
  return desc;
66
69
  }
67
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.2.1", ngImport: i0, type: EntityChangesFieldComponent, deps: null, target: i0.ɵɵFactoryTarget.Component }); }
68
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "17.2.1", type: EntityChangesFieldComponent, isStandalone: true, selector: "mng-entity-changes-field", inputs: { injector: "injector" }, usesInheritance: true, ngImport: i0, template: "@if (modelFetched | async) {\n <div>\n @for (ec of entityChanges; track ec) {\n <mng-table [items]=\"ec.items\" [descriptor]=\"createDescriptor(ec)\"></mng-table>\n }\n </div>\n} @else {\n <div class=\"text-center\">\n <i class=\"pi pi-spin pi-spinner\" style=\"font-size: 2rem\"></i>\n </div>\n}\n", styles: ["::ng-deep tr.audit-row-deleted{background:#ff3d331a!important}::ng-deep tr.audit-row-deleted .audit-cell{background:#f6544c4d!important}::ng-deep tr.audit-row-added{background-color:#1bc5621a!important}::ng-deep tr.audit-row-added .audit-cell{background:#1bc5624d!important}\n"], dependencies: [{ kind: "component", type: MngTableComponent, selector: "mng-table", inputs: ["descriptor", "items", "result", "loading", "dataProvider", "useQueryParams", "selectionMode", "selectionEnabled", "columnLastMinWidth", "captionComponent", "columnCustomLastComponent", "globalFilterFields"], outputs: ["tableLoad", "cellClick", "selectionChange", "captionComponentInstance", "columnCustomLastComponentInstance"] }, { kind: "pipe", type: AsyncPipe, name: "async" }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
70
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.2", ngImport: i0, type: EntityChangesFieldComponent, deps: null, target: i0.ɵɵFactoryTarget.Component }); }
71
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "17.3.2", type: EntityChangesFieldComponent, isStandalone: true, selector: "mng-entity-changes-field", inputs: { injector: "injector" }, usesInheritance: true, ngImport: i0, template: "@if (modelFetched | async) {\n <div>\n @for (ec of entityChanges; track ec) {\n <mng-table [items]=\"ec.items\" [descriptor]=\"createDescriptor(ec)\"></mng-table>\n }\n </div>\n} @else {\n <div class=\"text-center\">\n <i class=\"pi pi-spin pi-spinner\" style=\"font-size: 2rem\"></i>\n </div>\n}\n", styles: ["::ng-deep tr.audit-row-deleted{background:#ff3d331a!important}::ng-deep tr.audit-row-deleted .audit-cell{background:#f6544c4d!important}::ng-deep tr.audit-row-added{background-color:#1bc5621a!important}::ng-deep tr.audit-row-added .audit-cell{background:#1bc5624d!important}\n"], dependencies: [{ kind: "component", type: TableComponent, selector: "mng-table", inputs: ["descriptor", "items", "result", "loading", "dataProvider", "useQueryParams", "selectionMode", "selectionEnabled", "columnLastMinWidth", "captionComponent", "columnCustomLastComponent", "globalFilterFields"], outputs: ["tableLoad", "cellClick", "selectionChange", "captionComponentInstance", "columnCustomLastComponentInstance"] }, { kind: "pipe", type: AsyncPipe, name: "async" }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
69
72
  }
70
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.2.1", ngImport: i0, type: EntityChangesFieldComponent, decorators: [{
73
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.2", ngImport: i0, type: EntityChangesFieldComponent, decorators: [{
71
74
  type: Component,
72
- args: [{ standalone: true, selector: 'mng-entity-changes-field', imports: [MngTableComponent, AsyncPipe], changeDetection: ChangeDetectionStrategy.OnPush, template: "@if (modelFetched | async) {\n <div>\n @for (ec of entityChanges; track ec) {\n <mng-table [items]=\"ec.items\" [descriptor]=\"createDescriptor(ec)\"></mng-table>\n }\n </div>\n} @else {\n <div class=\"text-center\">\n <i class=\"pi pi-spin pi-spinner\" style=\"font-size: 2rem\"></i>\n </div>\n}\n", styles: ["::ng-deep tr.audit-row-deleted{background:#ff3d331a!important}::ng-deep tr.audit-row-deleted .audit-cell{background:#f6544c4d!important}::ng-deep tr.audit-row-added{background-color:#1bc5621a!important}::ng-deep tr.audit-row-added .audit-cell{background:#1bc5624d!important}\n"] }]
75
+ args: [{ standalone: true, selector: 'mng-entity-changes-field', imports: [TableComponent, AsyncPipe], changeDetection: ChangeDetectionStrategy.OnPush, template: "@if (modelFetched | async) {\n <div>\n @for (ec of entityChanges; track ec) {\n <mng-table [items]=\"ec.items\" [descriptor]=\"createDescriptor(ec)\"></mng-table>\n }\n </div>\n} @else {\n <div class=\"text-center\">\n <i class=\"pi pi-spin pi-spinner\" style=\"font-size: 2rem\"></i>\n </div>\n}\n", styles: ["::ng-deep tr.audit-row-deleted{background:#ff3d331a!important}::ng-deep tr.audit-row-deleted .audit-cell{background:#f6544c4d!important}::ng-deep tr.audit-row-added{background-color:#1bc5621a!important}::ng-deep tr.audit-row-added .audit-cell{background:#1bc5624d!important}\n"] }]
73
76
  }], propDecorators: { injector: [{
74
77
  type: Input
75
78
  }] } });
76
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZW50aXR5LWNoYW5nZXMtZmllbGQuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vc3JjL2xpYi9jb21wb25lbnRzL2VudGl0eS1jaGFuZ2VzLWZpZWxkL2VudGl0eS1jaGFuZ2VzLWZpZWxkLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uL3NyYy9saWIvY29tcG9uZW50cy9lbnRpdHktY2hhbmdlcy1maWVsZC9lbnRpdHktY2hhbmdlcy1maWVsZC5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUMsU0FBUyxFQUFDLE1BQU0saUJBQWlCLENBQUM7QUFDMUMsT0FBTyxFQUFDLHVCQUF1QixFQUFFLFNBQVMsRUFBRSxVQUFVLEVBQUUsUUFBUSxFQUFFLEtBQUssRUFBVSxNQUFNLEVBQUMsTUFBTSxlQUFlLENBQUM7QUFDOUcsT0FBTyxFQUFDLGtCQUFrQixFQUFDLE1BQU0sNEJBQTRCLENBQUM7QUFFOUQsT0FBTyxFQUFDLGVBQWUsRUFBQyxNQUFNLE1BQU0sQ0FBQztBQUVyQyxPQUFPLEVBQUMsOEJBQThCLEVBQUUsZ0JBQWdCLEVBQUUsaUJBQWlCLEVBQUUsZUFBZSxFQUFFLHVCQUF1QixFQUFDLE1BQU0sd0JBQXdCLENBQUM7QUFJckosT0FBTyxFQUFDLGtCQUFrQixFQUFFLGdCQUFnQixFQUFDLE1BQU0sK0JBQStCLENBQUM7QUFDbkYsT0FBTyxFQUFDLGVBQWUsRUFBQyxNQUFNLGtDQUFrQyxDQUFDO0FBQ2pFLE9BQU8sRUFBQyw0QkFBNEIsRUFBQyxNQUFNLGlEQUFpRCxDQUFDO0FBRTdGLE9BQU8sRUFBQyxTQUFTLEVBQUMsTUFBTSx3QkFBd0IsQ0FBQzs7QUFVakQsTUFBTSxPQUFPLDJCQUE0QixTQUFRLDhCQUE4QjtJQVIvRTs7UUFXWSxlQUFVLEdBQUcsTUFBTSxDQUFDLFVBQVUsQ0FBQyxDQUFDO1FBRWpDLGtCQUFhLEdBQStCLEVBQUUsQ0FB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Q0FBQyxpQkFBaUIsQ0FBQyxDQUFDLENBQUMsbUJBQW1CLENBQUMsQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQztRQUNoSSxJQUFJLENBQUMsT0FBTyxDQUFDLE9BQU8sQ0FBQyxHQUFHLENBQUMsRUFBRTtZQUN2QixJQUFJLGFBQWEsQ0FBQyxNQUFNLEdBQUcsQ0FBQyxJQUFJLGFBQWEsQ0FBQyxJQUFJLENBQUMsR0FBRyxDQUFDLEVBQUUsQ0FBQyxHQUFHLENBQUMsUUFBUSxLQUFLLEdBQUcsQ0FBQyxFQUFFO2dCQUM3RSxHQUFHLENBQUMsYUFBYSxDQUFDLFlBQVksQ0FBQyxDQUFDO2FBQ25DO1FBQ0wsQ0FBQyxDQUFDLENBQUM7UUFFSCxJQUFJLENBQUMsa0JBQWtCLENBQUMsdUJBQXVCLENBQUMsVUFBVSxDQUFDLENBQUM7UUFDNUQsSUFBSSxDQUFDLDZCQUE2QixFQUFFLENBQUM7UUFDckMsSUFBSSxDQUFDLDRCQUE0QixFQUFFLENBQUM7UUFDcEMsSUFBSSxDQUFDLGlCQUFpQixDQUFDLHFCQUFxQixhQUFhLENBQUMsVUFBVSxJQUFJLFNBQVMsRUFBRSxDQUFDLENBQUM7UUFFckYsT0FBTyxJQUFJLENBQUM7SUFDaEIsQ0FBQzs4R0FsRVEsMkJBQTJCO2tHQUEzQiwyQkFBMkIsNklDeEJ4Qyx3VkFXQSw4VURRYyxpQkFBaUIsb1lBQUUsU0FBUzs7MkZBSzdCLDJCQUEyQjtrQkFSdkMsU0FBUztpQ0FDTSxJQUFJLFlBQ04sMEJBQTBCLFdBQzNCLENBQUMsaUJBQWlCLEVBQUUsU0FBUyxDQUFDLG1CQUd0Qix1QkFBdUIsQ0FBQyxNQUFNOzhCQUcvQixRQUFRO3NCQUF2QixLQUFLIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtBc3luY1BpcGV9IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbic7XG5pbXBvcnQge0NoYW5nZURldGVjdGlvblN0cmF0ZWd5LCBDb21wb25lbnQsIERlc3Ryb3lSZWYsIEluamVjdG9yLCBJbnB1dCwgT25Jbml0LCBpbmplY3R9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHt0YWtlVW50aWxEZXN0cm95ZWR9IGZyb20gJ0Bhbmd1bGFyL2NvcmUvcnhqcy1pbnRlcm9wJztcblxuaW1wb3J0IHtCZWhhdmlvclN1YmplY3R9IGZyb20gJ3J4anMnO1xuXG5pbXBvcnQge0FNbmdGb3JtbHlDdXN0b21GaWVsZENvbXBvbmVudCwgTW5nSW50ZXJuYWxFcnJvciwgTW5nVGFibGVDb21wb25lbnQsIFRhYmxlRGVzY3JpcHRvciwgVGFibGVQYWdpbmF0aW9uTW9kZUVudW19IGZyb20gJ0BtZWRpdXNpbmMvbW5nLWNvbW1vbnMnO1xuXG5pbXBvcnQge01uZ0VudGl0eUNoYW5nZUR0b30gZnJvbSAnLi4vLi4vYXBpL21vZGVscy9lbnRpdHlDaGFuZ2UnO1xuaW1wb3J0IHtNbmdHdWlFbnRpdHlNb2RlbER0b30gZnJvbSAnLi4vLi4vYXBpL21vZGVscy9ndWlFbnRpdHlNb2RlbCc7XG5pbXBvcnQge01uZ1JldmlzaW9uVHlwZUR0bywgcmV2aXNpb25UeXBlRW51bX0gZnJvbSAnLi4vLi4vYXBpL21vZGVscy9yZXZpc2lvblR5cGUnO1xuaW1wb3J0IHtNbmdBdWRpdFNlcnZpY2V9IGZyb20gJy4uLy4uL2FwaS9zZXJ2aWNlcy9hdWRpdC5zZXJ2aWNlJztcbmltcG9ydCB7TW5nRW50aXR5UmV2aXNpb25DaGFuZ2VTdGF0ZX0gZnJvbSAnLi4vLi4vbW9kZWxzL2VudGl0eS1yZXZpc2lvbi1jaGFuZ2Utc3RhdGUubW9kZWwnO1xuaW1wb3J0IHtNbmdFbnRpdHlSZXZpc2lvbkNoYW5nZXN9IGZyb20gJy4uLy4uL21vZGVscy9lbnRpdHktcmV2aXNpb24tY2hhbmdlcy5tb2RlbCc7XG5pbXBvcnQge0F1ZGl0VXRpbH0gZnJvbSAnLi4vLi4vdXRpbHMvYXVkaXQudXRpbCc7XG5cbkBDb21wb25lbnQoe1xuICAgIHN0YW5kYWxvbmU6IHRydWUsXG4gICAgc2VsZWN0b3I6ICdtbmctZW50aXR5LWNoYW5nZXMtZmllbGQnLFxuICAgIGltcG9ydHM6IFtNbmdUYWJsZUNvbXBvbmVudCwgQXN5bmNQaXBlXSxcbiAgICBzdHlsZVVybHM6IFsnZW50aXR5LWNoYW5nZXMtZmllbGQuY29tcG9uZW50LnNjc3MnXSxcbiAgICB0ZW1wbGF0ZVVybDogJ2VudGl0eS1jaGFuZ2VzLWZpZWxkLmNvbXBvbmVudC5odG1sJyxcbiAgICBjaGFuZ2VEZXRlY3Rpb246IENoYW5nZURldGVjdGlvblN0cmF0ZWd5Lk9uUHVzaFxufSlcbmV4cG9ydCBjbGFzcyBFbnRpdHlDaGFuZ2VzRmllbGRDb21wb25lbnQgZXh0ZW5kcyBBTW5nRm9ybWx5Q3VzdG9tRmllbGRDb21wb25lbnQgaW1wbGVtZW50cyBPbkluaXQge1xuICAgIEBJbnB1dCgpIHB1YmxpYyBpbmplY3Rvcj86IEluamVjdG9yO1xuXG4gICAgcHJpdmF0ZSBkZXN0cm95UmVmID0gaW5qZWN0KERlc3Ryb3lSZWYpO1xuXG4gICAgcHVibGljIGVudGl0eUNoYW5nZXM6IE1uZ0VudGl0eVJldmlzaW9uQ2hhbmdlc1tdID0gW107XG4gICAgcHVibGljIG1vZGVsRmV0Y2hlZCA9IG5ldyBCZWhhdmlvclN1YmplY3QoZmFsc2UpO1xuXG4gICAgcHJpdmF0ZSBhdWRpdE1vZGVsOiBNbmdHdWlFbnRpdHlNb2RlbER0b1tdID0gW107XG4gICAgcHJpdmF0ZSBmaWVsZFZhbHVlPzoge1trZXk6IHN0cmluZ106IEFycmF5PE1uZ0VudGl0eUNoYW5nZUR0bz59O1xuXG4gICAgbmdPbkluaXQoKTogdm9pZCB7XG4gICAgICAgIHRoaXMuZmllbGRWYWx1ZSA9IHRoaXMuZm9ybUNvbnRyb2wudmFsdWUgYXMge1trZXk6IHN0cmluZ106IEFycmF5PE1uZ0VudGl0eUNoYW5nZUR0bz59O1xuICAgICAgICB0aGlzLmluamVjdG9yXG4gICAgICAgICAgICA/LmdldChNbmdBdWRpdFNlcnZpY2UsIHVuZGVmaW5lZCwge29wdGlvbmFsOiB0cnVlfSlcbiAgICAgICAgICAgID8uYXVkaXRNb2RlbCQucGlwZSh0YWtlVW50aWxEZXN0cm95ZWQodGhpcy5kZXN0cm95UmVmKSlcbiAgICAgICAgICAgIC5zdWJzY3JpYmUoe1xuICAgICAgICAgICAgICAgIG5leHQ6IG1vZGVsID0+IHtcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5hdWRpdE1vZGVsID0gbW9kZWw7XG4gICAgICAgICAgICAgICAgICAgIGlmICh0aGlzLmZpZWxkVmFsdWUpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIHRoaXMuZW50aXR5Q2hhbmdlcyA9IEF1ZGl0VXRpbC5tYXBJdGVtc1RvRW50aXR5Q2hhbmdlc0FycmF5KHRoaXMuZmllbGRWYWx1ZSk7XG4gICAgICAgICAgICAgICAgICAgICAgICB0aGlzLm1vZGVsRmV0Y2hlZC5uZXh0KHRydWUpO1xuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgICBlcnJvcjogZXJyID0+IHtcbiAgICAgICAgICAgICAgICAgICAgdGhyb3cgbmV3IE1uZ0ludGVybmFsRXJyb3IoJ0Vycm9yIHdoaWxlIHRyeWluZyB0byBmZXRjaCBhdWRpdCBtb2RlbCBmcm9tIGF1ZGl0IHNlcnZpY2UnLCB7bmFtZTogJ0VudGl0eUNoYW5nZXNGaWVsZENvbXBvbmVudEVycm9yJywgY2F1c2U6IGVycn0pO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH0pO1xuICAgIH1cblxuICAgIHB1YmxpYyBjcmVhdGVEZXNjcmlwdG9yKGVudGl0eUNoYW5nZXM6IE1uZ0VudGl0eVJldmlzaW9uQ2hhbmdlcykge1xuICAgICAgICBjb25zdCBjaGFuZ2VkRmllbGRzOiBzdHJpbmdbXSA9IFtdO1xuICAgICAgICBpZiAoZW50aXR5Q2hhbmdlcy5pdGVtcyAmJiBlbnRpdHlDaGFuZ2VzLml0ZW1zWzBdLnJldlR5cGUgPT09IE1uZ1JldmlzaW9uVHlwZUR0by5Nb2QpIHtcbiAgICAgICAgICAgIGZvciAoY29uc3Qga2V5IGluIGVudGl0eUNoYW5nZXMuaXRlbXNbMF0pIHtcbiAgICAgICAgICAgICAgICBpZiAoZW50aXR5Q2hhbmdlcy5pdGVtc1swXVtrZXldICE9PSBlbnRpdHlDaGFuZ2VzLml0ZW1zWzFdW2tleV0pIHtcbiAgICAgICAgICAgICAgICAgICAgY2hhbmdlZEZpZWxkcy5wdXNoKGtleSk7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgY29uc3QgZ3VpRW50aXR5TW9kZWwgPSB0aGlzLmF1ZGl0TW9kZWwuZmlsdGVyKG0gPT4gbS5lbnRpdHlOYW1lID09PSBlbnRpdHlDaGFuZ2VzLmVudGl0eVR5cGUpWzBdO1xuXG4gICAgICAgIGNvbnN0IGRlc2MgPSBUYWJsZURlc2NyaXB0b3IuZnJvbUNsYXNzKE1uZ0VudGl0eVJldmlzaW9uQ2hhbmdlU3RhdGUsIHVuZGVmaW5lZCwgdW5kZWZpbmVkLCBndWlFbnRpdHlNb2RlbC5lbnRpdHlOYW1lKS53aXRoQ2xhc3NOYW1lKCdweS0yJyk7XG4gICAgICAgIGlmIChndWlFbnRpdHlNb2RlbC5lbnRpdHlOYW1lKSB7XG4gICAgICAgICAgICBkZXNjLndpdGhUaXRsZShndWlFbnRpdHlNb2RlbC5lbnRpdHlOYW1lKTtcbiAgICAgICAgfVxuXG4gICAgICAgIGRlc2MuYWRkQ29sdW1uRW51bSgncmV2VHlwZScsIHJldmlzaW9uVHlwZUVudW0pLndpdGhUaXRsZSgnTW5nRW50aXR5UmV2aXNpb25DaGFuZ2VTdGF0ZS5wcm9wZXJ0aWVzLnJldlR5cGUnKTtcblxuICAgICAgICBpZiAoZ3VpRW50aXR5TW9kZWwucHJvcGVydGllcykge1xuICAgICAgICAgICAgQXVkaXRVdGlsLmFkZENvbHVtbnNGcm9tTW9kZWwoZGVzYywgZ3VpRW50aXR5TW9kZWwucHJvcGVydGllcywgdW5kZWZpbmVkLCBmYWxzZSwgZmFsc2UpO1xuICAgICAgICB9XG5cbiAgICAgICAgZGVzYy53aXRoUm93Q2xhc3NOYW1lKHVuZGVmaW5lZCwgKF8sIGl0ZW0pID0+IChpdGVtID8gKGl0ZW0uY29sb3IgPT09ICdncmVlbicgPyAnYXVkaXQtcm93LWFkZGVkJyA6ICdhdWRpdC1yb3ctZGVsZXRlZCcpIDogJycpKTtcbiAgICAgICAgZGVzYy5jb2x1bW5zLmZvckVhY2goY29sID0+IHtcbiAgICAgICAgICAgIGlmIChjaGFuZ2VkRmllbGRzLmxlbmd0aCA+IDAgJiYgY2hhbmdlZEZpZWxkcy5zb21lKHZhbCA9PiBjb2wucHJvcGVydHkgPT09IHZhbCkpIHtcbiAgICAgICAgICAgICAgICBjb2wud2l0aENsYXNzTmFtZSgnYXVkaXQtY2VsbCcpO1xuICAgICAgICAgICAgfVxuICAgICAgICB9KTtcblxuICAgICAgICBkZXNjLndpdGhQYWdpbmF0aW9uTW9kZShUYWJsZVBhZ2luYXRpb25Nb2RlRW51bS5QYWdpbmF0aW9uKTtcbiAgICAgICAgZGVzYy53aXRoQ3VycmVudENvbHVtbnNSZW9yZGVyYWJsZSgpO1xuICAgICAgICBkZXNjLndpdGhDdXJyZW50Q29sdW1uc1RvZ2dsZWFibGUoKTtcbiAgICAgICAgZGVzYy53aXRoVHJhY2tQcm9wZXJ0eShgRW50aXR5Q2hhbmdlRmllbGRfJHtlbnRpdHlDaGFuZ2VzLmVudGl0eVR5cGUgPz8gJ2RlZmF1bHQnfWApO1xuXG4gICAgICAgIHJldHVybiBkZXNjO1xuICAgIH1cbn1cbiIsIkBpZiAobW9kZWxGZXRjaGVkIHwgYXN5bmMpIHtcbiAgICA8ZGl2PlxuICAgICAgICBAZm9yIChlYyBvZiBlbnRpdHlDaGFuZ2VzOyB0cmFjayBlYykge1xuICAgICAgICAgICAgPG1uZy10YWJsZSBbaXRlbXNdPVwiZWMuaXRlbXNcIiBbZGVzY3JpcHRvcl09XCJjcmVhdGVEZXNjcmlwdG9yKGVjKVwiPjwvbW5nLXRhYmxlPlxuICAgICAgICB9XG4gICAgPC9kaXY+XG59IEBlbHNlIHtcbiAgICA8ZGl2IGNsYXNzPVwidGV4dC1jZW50ZXJcIj5cbiAgICAgICAgPGkgY2xhc3M9XCJwaSBwaS1zcGluIHBpLXNwaW5uZXJcIiBzdHlsZT1cImZvbnQtc2l6ZTogMnJlbVwiPjwvaT5cbiAgICA8L2Rpdj5cbn1cbiJdfQ==
79
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZW50aXR5LWNoYW5nZXMtZmllbGQuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vc3JjL2xpYi9jb21wb25lbnRzL2VudGl0eS1jaGFuZ2VzLWZpZWxkL2VudGl0eS1jaGFuZ2VzLWZpZWxkLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uL3NyYy9saWIvY29tcG9uZW50cy9lbnRpdHktY2hhbmdlcy1maWVsZC9lbnRpdHktY2hhbmdlcy1maWVsZC5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUMsU0FBUyxFQUFDLE1BQU0saUJBQWlCLENBQUM7QUFDMUMsT0FBTyxFQUFDLHVCQUF1QixFQUFFLFNBQVMsRUFBRSxVQUFVLEVBQUUsUUFBUSxFQUFFLEtBQUssRUFBVSxNQUFNLEVBQUMsTUFBTSxlQUFlLENBQUM7QUFDOUcsT0FBTyxFQUFDLGtCQUFrQixFQUFDLE1BQU0sNEJBQTRCLENBQUM7QUFFOUQsT0FBTyxFQUFDLGVBQWUsRUFBQyxNQUFNLE1BQU0sQ0FBQztBQUVyQyxPQUFPLEVBQUMsb0JBQW9CLEVBQUMsTUFBTSw2QkFBNkIsQ0FBQztBQUNqRSxPQUFPLEVBQUMsY0FBYyxFQUFDLE1BQU0sOEJBQThCLENBQUM7QUFDNUQsT0FBTyxFQUFDLGVBQWUsRUFBRSx1QkFBdUIsRUFBQyxNQUFNLGtDQUFrQyxDQUFDO0FBQzFGLE9BQU8sRUFBQywyQkFBMkIsRUFBQyxNQUFNLHNDQUFzQyxDQUFDO0FBSWpGLE9BQU8sRUFBQyxlQUFlLEVBQUUsZ0JBQWdCLEVBQUMsTUFBTSwrQkFBK0IsQ0FBQztBQUNoRixPQUFPLEVBQUMsWUFBWSxFQUFDLE1BQU0sa0NBQWtDLENBQUM7QUFDOUQsT0FBTyxFQUFDLHlCQUF5QixFQUFDLE1BQU0saURBQWlELENBQUM7QUFFMUYsT0FBTyxFQUFDLFNBQVMsRUFBQyxNQUFNLHdCQUF3QixDQUFDOztBQVVqRCxNQUFNLE9B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c0NvbnRlbnQiOlsiaW1wb3J0IHtBc3luY1BpcGV9IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbic7XG5pbXBvcnQge0NoYW5nZURldGVjdGlvblN0cmF0ZWd5LCBDb21wb25lbnQsIERlc3Ryb3lSZWYsIEluamVjdG9yLCBJbnB1dCwgT25Jbml0LCBpbmplY3R9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHt0YWtlVW50aWxEZXN0cm95ZWR9IGZyb20gJ0Bhbmd1bGFyL2NvcmUvcnhqcy1pbnRlcm9wJztcblxuaW1wb3J0IHtCZWhhdmlvclN1YmplY3R9IGZyb20gJ3J4anMnO1xuXG5pbXBvcnQge0NvbW1vbnNJbnRlcm5hbEVycm9yfSBmcm9tICdAbWVkaXVzaW5jL21uZy1jb21tb25zL2NvcmUnO1xuaW1wb3J0IHtUYWJsZUNvbXBvbmVudH0gZnJvbSAnQG1lZGl1c2luYy9tbmctY29tbW9ucy90YWJsZSc7XG5pbXBvcnQge1RhYmxlRGVzY3JpcHRvciwgVGFibGVQYWdpbmF0aW9uTW9kZUVudW19IGZyb20gJ0BtZWRpdXNpbmMvbW5nLWNvbW1vbnMvdGFibGUvYXBpJztcbmltcG9ydCB7QUZvcm1seUN1c3RvbUZpZWxkQ29tcG9uZW50fSBmcm9tICdAbWVkaXVzaW5jL21uZy1jb21tb25zL3RhYmxldmlldy9hcGknO1xuXG5pbXBvcnQge0VudGl0eUNoYW5nZUR0b30gZnJvbSAnLi4vLi4vYXBpL21vZGVscy9lbnRpdHlDaGFuZ2UnO1xuaW1wb3J0IHtHdWlFbnRpdHlNb2RlbER0b30gZnJvbSAnLi4vLi4vYXBpL21vZGVscy9ndWlFbnRpdHlNb2RlbCc7XG5pbXBvcnQge1JldmlzaW9uVHlwZUR0bywgcmV2aXNpb25UeXBlRW51bX0gZnJvbSAnLi4vLi4vYXBpL21vZGVscy9yZXZpc2lvblR5cGUnO1xuaW1wb3J0IHtBdWRpdFNlcnZpY2V9IGZyb20gJy4uLy4uL2FwaS9zZXJ2aWNlcy9hdWRpdC5zZXJ2aWNlJztcbmltcG9ydCB7RW50aXR5UmV2aXNpb25DaGFuZ2VTdGF0ZX0gZnJvbSAnLi4vLi4vbW9kZWxzL2VudGl0eS1yZXZpc2lvbi1jaGFuZ2Utc3RhdGUubW9kZWwnO1xuaW1wb3J0IHtFbnRpdHlSZXZpc2lvbkNoYW5nZXN9IGZyb20gJy4uLy4uL21vZGVscy9lbnRpdHktcmV2aXNpb24tY2hhbmdlcy5tb2RlbCc7XG5pbXBvcnQge0F1ZGl0VXRpbH0gZnJvbSAnLi4vLi4vdXRpbHMvYXVkaXQudXRpbCc7XG5cbkBDb21wb25lbnQoe1xuICAgIHN0YW5kYWxvbmU6IHRydWUsXG4gICAgc2VsZWN0b3I6ICdtbmctZW50aXR5LWNoYW5nZXMtZmllbGQnLFxuICAgIGltcG9ydHM6IFtUYWJsZUNvbXBvbmVudCwgQXN5bmNQaXBlXSxcbiAgICBzdHlsZVVybHM6IFsnZW50aXR5LWNoYW5nZXMtZmllbGQuY29tcG9uZW50LnNjc3MnXSxcbiAgICB0ZW1wbGF0ZVVybDogJ2VudGl0eS1jaGFuZ2VzLWZpZWxkLmNvbXBvbmVudC5odG1sJyxcbiAgICBjaGFuZ2VEZXRlY3Rpb246IENoYW5nZURldGVjdGlvblN0cmF0ZWd5Lk9uUHVzaFxufSlcbmV4cG9ydCBjbGFzcyBFbnRpdHlDaGFuZ2VzRmllbGRDb21wb25lbnQgZXh0ZW5kcyBBRm9ybWx5Q3VzdG9tRmllbGRDb21wb25lbnQgaW1wbGVtZW50cyBPbkluaXQge1xuICAgIEBJbnB1dCgpIHB1YmxpYyBpbmplY3Rvcj86IEluamVjdG9yO1xuXG4gICAgcHJpdmF0ZSBkZXN0cm95UmVmID0gaW5qZWN0KERlc3Ryb3lSZWYpO1xuXG4gICAgcHVibGljIGVudGl0eUNoYW5nZXM6IEVudGl0eVJldmlzaW9uQ2hhbmdlc1tdID0gW107XG4gICAgcHVibGljIG1vZGVsRmV0Y2hlZCA9IG5ldyBCZWhhdmlvclN1YmplY3QoZmFsc2UpO1xuXG4gICAgcHJpdmF0ZSBhdWRpdE1vZGVsOiBHdWlFbnRpdHlNb2RlbER0b1tdID0gW107XG4gICAgcHJpdmF0ZSBmaWVsZFZhbHVlPzoge1trZXk6IHN0cmluZ106IEFycmF5PEVudGl0eUNoYW5nZUR0bz59O1xuXG4gICAgbmdPbkluaXQoKTogdm9pZCB7XG4gICAgICAgIHRoaXMuZmllbGRWYWx1ZSA9IHRoaXMuZm9ybUNvbnRyb2wudmFsdWUgYXMge1trZXk6IHN0cmluZ106IEFycmF5PEVudGl0eUNoYW5nZUR0bz59O1xuICAgICAgICB0aGlzLmluamVjdG9yXG4gICAgICAgICAgICA/LmdldChBdWRpdFNlcnZpY2UsIHVuZGVmaW5lZCwge29wdGlvbmFsOiB0cnVlfSlcbiAgICAgICAgICAgID8uYXVkaXRNb2RlbCQucGlwZSh0YWtlVW50aWxEZXN0cm95ZWQodGhpcy5kZXN0cm95UmVmKSlcbiAgICAgICAgICAgIC5zdWJzY3JpYmUoe1xuICAgICAgICAgICAgICAgIG5leHQ6IG1vZGVsID0+IHtcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5hdWRpdE1vZGVsID0gbW9kZWw7XG4gICAgICAgICAgICAgICAgICAgIGlmICh0aGlzLmZpZWxkVmFsdWUpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIHRoaXMuZW50aXR5Q2hhbmdlcyA9IEF1ZGl0VXRpbC5tYXBJdGVtc1RvRW50aXR5Q2hhbmdlc0FycmF5KHRoaXMuZmllbGRWYWx1ZSk7XG4gICAgICAgICAgICAgICAgICAgICAgICB0aGlzLm1vZGVsRmV0Y2hlZC5uZXh0KHRydWUpO1xuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgICBlcnJvcjogZXJyID0+IHtcbiAgICAgICAgICAgICAgICAgICAgdGhyb3cgbmV3IENvbW1vbnNJbnRlcm5hbEVycm9yKCdFcnJvciB3aGlsZSB0cnlpbmcgdG8gZmV0Y2ggYXVkaXQgbW9kZWwgZnJvbSBhdWRpdCBzZXJ2aWNlJywge25hbWU6ICdFbnRpdHlDaGFuZ2VzRmllbGRDb21wb25lbnRFcnJvcicsIGNhdXNlOiBlcnJ9KTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9KTtcbiAgICB9XG5cbiAgICBwdWJsaWMgY3JlYXRlRGVzY3JpcHRvcihlbnRpdHlDaGFuZ2VzOiBFbnRpdHlSZXZpc2lvbkNoYW5nZXMpIHtcbiAgICAgICAgY29uc3QgY2hhbmdlZEZpZWxkczogc3RyaW5nW10gPSBbXTtcbiAgICAgICAgaWYgKGVudGl0eUNoYW5nZXMuaXRlbXMgJiYgZW50aXR5Q2hhbmdlcy5pdGVtc1swXS5yZXZUeXBlID09PSBSZXZpc2lvblR5cGVEdG8uTW9kKSB7XG4gICAgICAgICAgICBmb3IgKGNvbnN0IGtleSBpbiBlbnRpdHlDaGFuZ2VzLml0ZW1zWzBdKSB7XG4gICAgICAgICAgICAgICAgaWYgKGVudGl0eUNoYW5nZXMuaXRlbXNbMF1ba2V5XSAhPT0gZW50aXR5Q2hhbmdlcy5pdGVtc1sxXVtrZXldKSB7XG4gICAgICAgICAgICAgICAgICAgIGNoYW5nZWRGaWVsZHMucHVzaChrZXkpO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIGNvbnN0IGd1aUVudGl0eU1vZGVsID0gdGhpcy5hdWRpdE1vZGVsLmZpbHRlcihtID0+IG0uZW50aXR5TmFtZSA9PT0gZW50aXR5Q2hhbmdlcy5lbnRpdHlUeXBlKVswXTtcblxuICAgICAgICBjb25zdCBkZXNjID0gVGFibGVEZXNjcmlwdG9yLmZyb21DbGFzcyhFbnRpdHlSZXZpc2lvbkNoYW5nZVN0YXRlLCB1bmRlZmluZWQsIHVuZGVmaW5lZCwgZ3VpRW50aXR5TW9kZWwuZW50aXR5TmFtZSkud2l0aENsYXNzTmFtZSgncHktMicpO1xuICAgICAgICBpZiAoZ3VpRW50aXR5TW9kZWwuZW50aXR5TmFtZSkge1xuICAgICAgICAgICAgZGVzYy53aXRoVGl0bGUoZ3VpRW50aXR5TW9kZWwuZW50aXR5TmFtZSk7XG4gICAgICAgIH1cblxuICAgICAgICBkZXNjLmFkZENvbHVtbkVudW0oJ3JldlR5cGUnLCByZXZpc2lvblR5cGVFbnVtKS53aXRoVGl0bGUoJ01uZ0VudGl0eVJldmlzaW9uQ2hhbmdlU3RhdGUucHJvcGVydGllcy5yZXZUeXBlJyk7XG5cbiAgICAgICAgaWYgKGd1aUVudGl0eU1vZGVsLnByb3BlcnRpZXMpIHtcbiAgICAgICAgICAgIEF1ZGl0VXRpbC5hZGRDb2x1bW5zRnJvbU1vZGVsKGRlc2MsIGd1aUVudGl0eU1vZGVsLnByb3BlcnRpZXMsIHVuZGVmaW5lZCwgZmFsc2UsIGZhbHNlKTtcbiAgICAgICAgfVxuXG4gICAgICAgIGRlc2Mud2l0aFJvd0NsYXNzTmFtZSh1bmRlZmluZWQsIChfLCBpdGVtKSA9PiAoaXRlbSA/IChpdGVtLmNvbG9yID09PSAnZ3JlZW4nID8gJ2F1ZGl0LXJvdy1hZGRlZCcgOiAnYXVkaXQtcm93LWRlbGV0ZWQnKSA6ICcnKSk7XG4gICAgICAgIGRlc2MuY29sdW1ucy5mb3JFYWNoKGNvbCA9PiB7XG4gICAgICAgICAgICBpZiAoY2hhbmdlZEZpZWxkcy5sZW5ndGggPiAwICYmIGNoYW5nZWRGaWVsZHMuc29tZSh2YWwgPT4gY29sLnByb3BlcnR5ID09PSB2YWwpKSB7XG4gICAgICAgICAgICAgICAgY29sLndpdGhDbGFzc05hbWUoJ2F1ZGl0LWNlbGwnKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfSk7XG5cbiAgICAgICAgZGVzYy53aXRoUGFnaW5hdGlvbk1vZGUoVGFibGVQYWdpbmF0aW9uTW9kZUVudW0uUGFnaW5hdGlvbik7XG4gICAgICAgIGRlc2Mud2l0aEN1cnJlbnRDb2x1bW5zUmVvcmRlcmFibGUoKTtcbiAgICAgICAgZGVzYy53aXRoQ3VycmVudENvbHVtbnNUb2dnbGVhYmxlKCk7XG4gICAgICAgIGRlc2Mud2l0aFRyYWNrUHJvcGVydHkoYEVudGl0eUNoYW5nZUZpZWxkXyR7ZW50aXR5Q2hhbmdlcy5lbnRpdHlUeXBlID8/ICdkZWZhdWx0J31gKTtcblxuICAgICAgICByZXR1cm4gZGVzYztcbiAgICB9XG59XG4iLCJAaWYgKG1vZGVsRmV0Y2hlZCB8IGFzeW5jKSB7XG4gICAgPGRpdj5cbiAgICAgICAgQGZvciAoZWMgb2YgZW50aXR5Q2hhbmdlczsgdHJhY2sgZWMpIHtcbiAgICAgICAgICAgIDxtbmctdGFibGUgW2l0ZW1zXT1cImVjLml0ZW1zXCIgW2Rlc2NyaXB0b3JdPVwiY3JlYXRlRGVzY3JpcHRvcihlYylcIj48L21uZy10YWJsZT5cbiAgICAgICAgfVxuICAgIDwvZGl2PlxufSBAZWxzZSB7XG4gICAgPGRpdiBjbGFzcz1cInRleHQtY2VudGVyXCI+XG4gICAgICAgIDxpIGNsYXNzPVwicGkgcGktc3BpbiBwaS1zcGlubmVyXCIgc3R5bGU9XCJmb250LXNpemU6IDJyZW1cIj48L2k+XG4gICAgPC9kaXY+XG59XG4iXX0=
@@ -1,12 +1,12 @@
1
1
  import { ChangeDetectionStrategy, Component } from '@angular/core';
2
2
  import { RouterOutlet } from '@angular/router';
3
3
  import * as i0 from "@angular/core";
4
- export class MngAuditPageComponent {
5
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.2.1", ngImport: i0, type: MngAuditPageComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
6
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "17.2.1", type: MngAuditPageComponent, isStandalone: true, selector: "mng-audit-page", ngImport: i0, template: "<router-outlet></router-outlet>\n", dependencies: [{ kind: "directive", type: RouterOutlet, selector: "router-outlet", inputs: ["name"], outputs: ["activate", "deactivate", "attach", "detach"], exportAs: ["outlet"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
4
+ export class AuditPageComponent {
5
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.2", ngImport: i0, type: AuditPageComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
6
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "17.3.2", type: AuditPageComponent, isStandalone: true, selector: "mng-audit-page", ngImport: i0, template: "<router-outlet></router-outlet>\n", dependencies: [{ kind: "directive", type: RouterOutlet, selector: "router-outlet", inputs: ["name"], outputs: ["activate", "deactivate", "attach", "detach"], exportAs: ["outlet"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
7
7
  }
8
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.2.1", ngImport: i0, type: MngAuditPageComponent, decorators: [{
8
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.2", ngImport: i0, type: AuditPageComponent, decorators: [{
9
9
  type: Component,
10
10
  args: [{ standalone: true, selector: 'mng-audit-page', imports: [RouterOutlet], changeDetection: ChangeDetectionStrategy.OnPush, template: "<router-outlet></router-outlet>\n" }]
11
11
  }] });
12
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYXVkaXQucGFnZS5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9zcmMvbGliL2NvbXBvbmVudHMvcGFnZXMvYXVkaXQvYXVkaXQucGFnZS5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi9zcmMvbGliL2NvbXBvbmVudHMvcGFnZXMvYXVkaXQvYXVkaXQucGFnZS5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUMsdUJBQXVCLEVBQUUsU0FBUyxFQUFDLE1BQU0sZUFBZSxDQUFDO0FBQ2pFLE9BQU8sRUFBQyxZQUFZLEVBQUMsTUFBTSxpQkFBaUIsQ0FBQzs7QUFTN0MsTUFBTSxPQUFPLHFCQUFxQjs4R0FBckIscUJBQXFCO2tHQUFyQixxQkFBcUIsMEVDVmxDLG1DQUNBLDRDREtjLFlBQVk7OzJGQUliLHFCQUFxQjtrQkFQakMsU0FBUztpQ0FDTSxJQUFJLFlBQ04sZ0JBQWdCLFdBQ2pCLENBQUMsWUFBWSxDQUFDLG1CQUVOLHVCQUF1QixDQUFDLE1BQU0iLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge0NoYW5nZURldGVjdGlvblN0cmF0ZWd5LCBDb21wb25lbnR9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHtSb3V0ZXJPdXRsZXR9IGZyb20gJ0Bhbmd1bGFyL3JvdXRlcic7XG5cbkBDb21wb25lbnQoe1xuICAgIHN0YW5kYWxvbmU6IHRydWUsXG4gICAgc2VsZWN0b3I6ICdtbmctYXVkaXQtcGFnZScsXG4gICAgaW1wb3J0czogW1JvdXRlck91dGxldF0sXG4gICAgdGVtcGxhdGVVcmw6ICcuL2F1ZGl0LnBhZ2UuY29tcG9uZW50Lmh0bWwnLFxuICAgIGNoYW5nZURldGVjdGlvbjogQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kuT25QdXNoXG59KVxuZXhwb3J0IGNsYXNzIE1uZ0F1ZGl0UGFnZUNvbXBvbmVudCB7fVxuIiwiPHJvdXRlci1vdXRsZXQ+PC9yb3V0ZXItb3V0bGV0PlxuIl19
12
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYXVkaXQucGFnZS5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9zcmMvbGliL2NvbXBvbmVudHMvcGFnZXMvYXVkaXQvYXVkaXQucGFnZS5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi9zcmMvbGliL2NvbXBvbmVudHMvcGFnZXMvYXVkaXQvYXVkaXQucGFnZS5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUMsdUJBQXVCLEVBQUUsU0FBUyxFQUFDLE1BQU0sZUFBZSxDQUFDO0FBQ2pFLE9BQU8sRUFBQyxZQUFZLEVBQUMsTUFBTSxpQkFBaUIsQ0FBQzs7QUFTN0MsTUFBTSxPQUFPLGtCQUFrQjs4R0FBbEIsa0JBQWtCO2tHQUFsQixrQkFBa0IsMEVDVi9CLG1DQUNBLDRDREtjLFlBQVk7OzJGQUliLGtCQUFrQjtrQkFQOUIsU0FBUztpQ0FDTSxJQUFJLFlBQ04sZ0JBQWdCLFdBQ2pCLENBQUMsWUFBWSxDQUFDLG1CQUVOLHVCQUF1QixDQUFDLE1BQU0iLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge0NoYW5nZURldGVjdGlvblN0cmF0ZWd5LCBDb21wb25lbnR9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHtSb3V0ZXJPdXRsZXR9IGZyb20gJ0Bhbmd1bGFyL3JvdXRlcic7XG5cbkBDb21wb25lbnQoe1xuICAgIHN0YW5kYWxvbmU6IHRydWUsXG4gICAgc2VsZWN0b3I6ICdtbmctYXVkaXQtcGFnZScsXG4gICAgaW1wb3J0czogW1JvdXRlck91dGxldF0sXG4gICAgdGVtcGxhdGVVcmw6ICcuL2F1ZGl0LnBhZ2UuY29tcG9uZW50Lmh0bWwnLFxuICAgIGNoYW5nZURldGVjdGlvbjogQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kuT25QdXNoXG59KVxuZXhwb3J0IGNsYXNzIEF1ZGl0UGFnZUNvbXBvbmVudCB7fVxuIiwiPHJvdXRlci1vdXRsZXQ+PC9yb3V0ZXItb3V0bGV0PlxuIl19
@@ -7,21 +7,25 @@ import { FormlyModule } from '@ngx-formly/core';
7
7
  import { TranslateModule, TranslateService } from '@ngx-translate/core';
8
8
  import { throwError } from 'rxjs';
9
9
  import { map } from 'rxjs/operators';
10
- import { ActionEditorDetailsDescriptor, LookupDataProvider, MngDropdownComponent, MngInternalError, MngTableviewComponent, MngTableviewRouteComponent, TableviewDataProvider, TableviewDescriptor } from '@mediusinc/mng-commons';
11
- import { MngAuditRevisionsApiService } from '../../../api/services/audit-revisions-api.service';
12
- import { MngAuditService } from '../../../api/services/audit.service';
13
- import { MngGuiEntityModelWithI18n } from '../../../models/guiEntityModelWithI18n.model';
14
- import { MngRevEntityWithId } from '../../../models/revEntityWithId.model';
10
+ import { CommonsInternalError } from '@mediusinc/mng-commons/core';
11
+ import { DropdownComponent } from '@mediusinc/mng-commons/form';
12
+ import { LookupDataProvider } from '@mediusinc/mng-commons/form/api';
13
+ import { TableviewComponent } from '@mediusinc/mng-commons/tableview';
14
+ import { ActionEditorDetailsDescriptor, TableviewDataProvider, TableviewDescriptor } from '@mediusinc/mng-commons/tableview/api';
15
+ import { AuditRevisionsApiService } from '../../../api/services/audit-revisions-api.service';
16
+ import { AuditService } from '../../../api/services/audit.service';
17
+ import { GuiEntityModelWithI18n } from '../../../models/guiEntityModelWithI18n.model';
18
+ import { RevEntityWithId } from '../../../models/revEntityWithId.model';
15
19
  import { AuditUtil } from '../../../utils/audit.util';
16
20
  import * as i0 from "@angular/core";
17
21
  import * as i1 from "@angular/forms";
18
22
  import * as i2 from "@ngx-translate/core";
19
- export class MngAuditEntityRevisionsPageComponent {
23
+ export class AuditEntityRevisionsPageComponent {
20
24
  constructor() {
21
25
  this.router = inject(Router);
22
26
  this.route = inject(ActivatedRoute);
23
27
  this.translate = inject(TranslateService);
24
- this.auditService = inject(MngAuditService);
28
+ this.auditService = inject(AuditService);
25
29
  this.revModel = toSignal(this.auditService.revModel$);
26
30
  this.auditModel = toSignal(this.auditService.auditModel$);
27
31
  this.entityClass = toSignal(this.route.paramMap.pipe(map(pm => pm.get('entityClass') ?? undefined)));
@@ -43,7 +47,7 @@ export class MngAuditEntityRevisionsPageComponent {
43
47
  if (!revModel || !selectedRevisionEntity?.entityName) {
44
48
  return undefined;
45
49
  }
46
- const desc = TableviewDescriptor.fromClass(MngRevEntityWithId, 'mergedId', undefined, selectedRevisionEntity.entityName);
50
+ const desc = TableviewDescriptor.fromClass(RevEntityWithId, 'mergedId', undefined, selectedRevisionEntity.entityName);
47
51
  AuditUtil.buildDescriptorForEntityRevision(desc, revModel, selectedRevisionEntity);
48
52
  desc.table.withColumnsResizable();
49
53
  desc.table.withCurrentColumnsReorderable();
@@ -58,11 +62,11 @@ export class MngAuditEntityRevisionsPageComponent {
58
62
  }
59
63
  const entityName = selectedRevisionEntity.entityName;
60
64
  // eslint-disable-next-line @typescript-eslint/no-explicit-any
61
- return TableviewDataProvider.fromClassWithService(MngRevEntityWithId, MngAuditRevisionsApiService).withGetAll((params, service) => selectedRevisionEntity.entityName
65
+ return TableviewDataProvider.fromClassWithService(RevEntityWithId, AuditRevisionsApiService).withGetAll((params, service) => selectedRevisionEntity.entityName
62
66
  ? service.listRevisionsWithStateForEntityType(params, entityName).pipe(map(res => {
63
67
  const revEntityWithStateAndIdList = [];
64
68
  for (const revEntityWithState of res.data) {
65
- const revEntityWithStateAndId = new MngRevEntityWithId();
69
+ const revEntityWithStateAndId = new RevEntityWithId();
66
70
  revEntityWithStateAndId.mergedId = revEntityWithState.revEntity?.['rev'] + '_' + revEntityWithState.entityState?.['id'];
67
71
  revEntityWithStateAndId.revType = revEntityWithState.revType;
68
72
  revEntityWithStateAndId.revEntity = revEntityWithState.revEntity;
@@ -72,7 +76,7 @@ export class MngAuditEntityRevisionsPageComponent {
72
76
  }
73
77
  return { data: revEntityWithStateAndIdList, totalCount: res.totalCount };
74
78
  }))
75
- : throwError(() => new MngInternalError('No revision entity is provided for list.')));
79
+ : throwError(() => new CommonsInternalError('No revision entity is provided for list.')));
76
80
  });
77
81
  this.actions = computed(() => {
78
82
  const selectedRevisionEntity = this.selectedRevisionEntity();
@@ -81,13 +85,13 @@ export class MngAuditEntityRevisionsPageComponent {
81
85
  return [];
82
86
  }
83
87
  const entityName = selectedRevisionEntity.entityName;
84
- const detailsAction = ActionEditorDetailsDescriptor.createWithProvider(descriptor.detailsEditor, MngAuditRevisionsApiService)
88
+ const detailsAction = ActionEditorDetailsDescriptor.createWithProvider(descriptor.detailsEditor, AuditRevisionsApiService)
85
89
  .withFetchFunction(ctx => {
86
90
  if (!entityName) {
87
- return throwError(() => new MngInternalError('No revision entity is provided for details.'));
91
+ return throwError(() => new CommonsInternalError('No revision entity is provided for details.'));
88
92
  }
89
93
  if (!ctx.parameters.itemId) {
90
- return throwError(() => new MngInternalError('No item id for revision entity details is provided.'));
94
+ return throwError(() => new CommonsInternalError('No item id for revision entity details is provided.'));
91
95
  }
92
96
  const revId = ctx.parameters.itemId.toString().split('_')[0];
93
97
  const itemId = ctx.parameters.itemId.toString().split('_')[1];
@@ -96,7 +100,7 @@ export class MngAuditEntityRevisionsPageComponent {
96
100
  .withEditorTitle('pages.entityRevisions.actions.details.editor.title');
97
101
  return [detailsAction];
98
102
  });
99
- this.revisionEntitiesLookupProvider = LookupDataProvider.fromClass(MngGuiEntityModelWithI18n).withLookup(() => this.auditService.auditModel$.pipe(map(model => {
103
+ this.revisionEntitiesLookupProvider = LookupDataProvider.fromClass(GuiEntityModelWithI18n).withLookup(() => this.auditService.auditModel$.pipe(map(model => {
100
104
  const modelI18n = model;
101
105
  modelI18n.sort((m1, m2) => {
102
106
  if (m1.entityName && m2.entityName) {
@@ -134,11 +138,11 @@ export class MngAuditEntityRevisionsPageComponent {
134
138
  this.router.navigate(['/audit/entity-revisions/']);
135
139
  }
136
140
  }
137
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.2.1", ngImport: i0, type: MngAuditEntityRevisionsPageComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
138
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "17.2.1", type: MngAuditEntityRevisionsPageComponent, isStandalone: true, selector: "mng-audit-entity-revisions-page", providers: [MngAuditRevisionsApiService], ngImport: i0, template: "<div class=\"card\">\n <div class=\"field mb-0\">\n <mng-dropdown\n id=\"revisionEntityDropdown\"\n [placeholder]=\"'pages.entityRevisions.dropdown.placeholder' | translate\"\n optionsLabelProperty=\"entityNameI18n\"\n [ngModel]=\"selectedRevisionEntity()\"\n (valueChange)=\"onRevisionEntityChange($event)\"\n [dataProvider]=\"revisionEntitiesLookupProvider\"\n [showClear]=\"true\"></mng-dropdown>\n @if (!selectedRevisionEntity()) {\n <small class=\"block\">\n {{ 'pages.entityRevisions.dropdown.helpText' | translate }}\n </small>\n }\n </div>\n</div>\n@if (showTableview() && descriptor()) {\n <mng-tableview [descriptor]=\"descriptor()!\" [dataProvider]=\"dataProvider()\" [actions]=\"actions()\"></mng-tableview>\n}\n", dependencies: [{ kind: "component", type: MngDropdownComponent, selector: "mng-dropdown", inputs: ["dataProvider", "optionsTrackProperty", "optionsLabelProperty", "optionsLabelTranslate", "optionsValueProperty", "optionsDisabledProperty", "multiselect", "placeholder", "showClear", "selectFirstItem", "className", "dropdownClassName", "changeValueOnBlur"], outputs: ["valueChange"] }, { kind: "ngmodule", type: FormsModule }, { kind: "directive", type: i1.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i1.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }, { kind: "ngmodule", type: TranslateModule }, { kind: "pipe", type: i2.TranslatePipe, name: "translate" }, { kind: "ngmodule", type: FormlyModule }, { kind: "component", type: MngTableviewComponent, selector: "mng-tableview", inputs: ["descriptor", "dataProvider", "actions"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
141
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.2", ngImport: i0, type: AuditEntityRevisionsPageComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
142
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "17.3.2", type: AuditEntityRevisionsPageComponent, isStandalone: true, selector: "mng-audit-entity-revisions-page", providers: [AuditRevisionsApiService], ngImport: i0, template: "<div class=\"card\">\n <div class=\"field mb-0\">\n <mng-dropdown\n id=\"revisionEntityDropdown\"\n [placeholder]=\"'pages.entityRevisions.dropdown.placeholder' | translate\"\n optionsLabelProperty=\"entityNameI18n\"\n [ngModel]=\"selectedRevisionEntity()\"\n (valueChange)=\"onRevisionEntityChange($event)\"\n [dataProvider]=\"revisionEntitiesLookupProvider\"\n [showClear]=\"true\"></mng-dropdown>\n @if (!selectedRevisionEntity()) {\n <small class=\"block\">\n {{ 'pages.entityRevisions.dropdown.helpText' | translate }}\n </small>\n }\n </div>\n</div>\n@if (showTableview() && descriptor()) {\n <mng-tableview [descriptor]=\"descriptor()!\" [dataProvider]=\"dataProvider()\" [actions]=\"actions()\"></mng-tableview>\n}\n", dependencies: [{ kind: "component", type: DropdownComponent, selector: "mng-dropdown", inputs: ["dataProvider", "options", "optionsTrackProperty", "optionsLabelProperty", "optionsLabelTranslate", "optionsValueProperty", "optionsDisabledProperty", "multiselect", "placeholder", "showClear", "selectFirstItem", "className", "dropdownClassName", "changeValueOnBlur"], outputs: ["valueChange"] }, { kind: "ngmodule", type: FormsModule }, { kind: "directive", type: i1.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i1.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }, { kind: "ngmodule", type: TranslateModule }, { kind: "pipe", type: i2.TranslatePipe, name: "translate" }, { kind: "ngmodule", type: FormlyModule }, { kind: "component", type: TableviewComponent, selector: "mng-tableview", inputs: ["descriptor", "dataProvider", "actions"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
139
143
  }
140
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.2.1", ngImport: i0, type: MngAuditEntityRevisionsPageComponent, decorators: [{
144
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.2", ngImport: i0, type: AuditEntityRevisionsPageComponent, decorators: [{
141
145
  type: Component,
142
- args: [{ standalone: true, selector: 'mng-audit-entity-revisions-page', imports: [MngDropdownComponent, MngTableviewRouteComponent, FormsModule, AsyncPipe, TranslateModule, FormlyModule, MngTableviewComponent], providers: [MngAuditRevisionsApiService], changeDetection: ChangeDetectionStrategy.OnPush, template: "<div class=\"card\">\n <div class=\"field mb-0\">\n <mng-dropdown\n id=\"revisionEntityDropdown\"\n [placeholder]=\"'pages.entityRevisions.dropdown.placeholder' | translate\"\n optionsLabelProperty=\"entityNameI18n\"\n [ngModel]=\"selectedRevisionEntity()\"\n (valueChange)=\"onRevisionEntityChange($event)\"\n [dataProvider]=\"revisionEntitiesLookupProvider\"\n [showClear]=\"true\"></mng-dropdown>\n @if (!selectedRevisionEntity()) {\n <small class=\"block\">\n {{ 'pages.entityRevisions.dropdown.helpText' | translate }}\n </small>\n }\n </div>\n</div>\n@if (showTableview() && descriptor()) {\n <mng-tableview [descriptor]=\"descriptor()!\" [dataProvider]=\"dataProvider()\" [actions]=\"actions()\"></mng-tableview>\n}\n" }]
146
+ args: [{ standalone: true, selector: 'mng-audit-entity-revisions-page', imports: [DropdownComponent, FormsModule, AsyncPipe, TranslateModule, FormlyModule, TableviewComponent], providers: [AuditRevisionsApiService], changeDetection: ChangeDetectionStrategy.OnPush, template: "<div class=\"card\">\n <div class=\"field mb-0\">\n <mng-dropdown\n id=\"revisionEntityDropdown\"\n [placeholder]=\"'pages.entityRevisions.dropdown.placeholder' | translate\"\n optionsLabelProperty=\"entityNameI18n\"\n [ngModel]=\"selectedRevisionEntity()\"\n (valueChange)=\"onRevisionEntityChange($event)\"\n [dataProvider]=\"revisionEntitiesLookupProvider\"\n [showClear]=\"true\"></mng-dropdown>\n @if (!selectedRevisionEntity()) {\n <small class=\"block\">\n {{ 'pages.entityRevisions.dropdown.helpText' | translate }}\n </small>\n }\n </div>\n</div>\n@if (showTableview() && descriptor()) {\n <mng-tableview [descriptor]=\"descriptor()!\" [dataProvider]=\"dataProvider()\" [actions]=\"actions()\"></mng-tableview>\n}\n" }]
143
147
  }], ctorParameters: () => [] });
144
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYXVkaXQtZW50aXR5LXJldmlzaW9ucy5wYWdlLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3NyYy9saWIvY29tcG9uZW50cy9wYWdlcy9lbnRpdHktcmV2aXNpb25zL2F1ZGl0LWVudGl0eS1yZXZpc2lvbnMucGFnZS5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi9zcmMvbGliL2NvbXBvbmVudHMvcGFnZXMvZW50aXR5LXJldmlzaW9ucy9hdWRpdC1lbnRpdHktcmV2aXNpb25zLnBhZ2UuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFDLFNBQVMsRUFBQyxNQUFNLGlCQUFpQixDQUFDO0FBQzFDLE9BQU8sRUFBQyx1QkFBdUIsRUFBRSxTQUFTLEVBQUUsUUFBUSxFQUFFLE1BQU0sRUFBRSxNQUFNLEVBQUUsTUFBTSxFQUFDLE1BQU0sZUFBZSxDQUFDO0FBQ25HLE9BQU8sRUFBQyxRQUFRLEVBQUMsTUFBTSw0QkFBNEIsQ0FBQztBQUNwRCxPQUFPLEVBQUMsV0FBVyxFQUFDLE1BQU0sZ0JBQWdCLENBQUM7QUFDM0MsT0FBTyxFQUFDLGNBQWMsRUFBRSxNQUFNLEVBQUMsTUFBTSxpQkFBaUIsQ0FBQztBQUV2RCxPQUFPLEVBQUMsWUFBWSxFQUFDLE1BQU0sa0JBQWtCLENBQUM7QUFDOUMsT0FBTyxFQUFDLGVBQWUsRUFBRSxnQkFBZ0IsRUFBQyxNQUFNLHFCQUFxQixDQUFDO0FBQ3RFLE9BQU8sRUFBQyxVQUFVLEVBQUMsTUFBTSxNQUFNLENBQUM7QUFDaEMsT0FBTyxFQUFDLEdBQUcsRUFBQyxNQUFNLGdCQUFnQixDQUFDO0FBRW5DLE9BQU8sRUFFSCw2QkFBNkIsRUFDN0Isa0JBQWtCLEVBQ2xCLG9CQUFvQixFQUNwQixnQkFBZ0IsRUFDaEIscUJBQXFCLEVBQ3JCLDBCQUEwQixFQUUxQixxQkFBcUIsRUFDckIsbUJBQW1CLEVBQ3RCLE1B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U0FBUyxFQUFFLGVBQWUsRUFBRSxZQUFZLEVBQUUscUJBQXFCLENBQUMsYUFDOUgsQ0FBQywyQkFBMkIsQ0FBQyxtQkFDdkIsdUJBQXVCLENBQUMsTUFBTSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7QXN5bmNQaXBlfSBmcm9tICdAYW5ndWxhci9jb21tb24nO1xuaW1wb3J0IHtDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneSwgQ29tcG9uZW50LCBjb21wdXRlZCwgZWZmZWN0LCBpbmplY3QsIHNpZ25hbH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQge3RvU2lnbmFsfSBmcm9tICdAYW5ndWxhci9jb3JlL3J4anMtaW50ZXJvcCc7XG5pbXBvcnQge0Zvcm1zTW9kdWxlfSBmcm9tICdAYW5ndWxhci9mb3Jtcyc7XG5pbXBvcnQge0FjdGl2YXRlZFJvdXRlLCBSb3V0ZXJ9IGZyb20gJ0Bhbmd1bGFyL3JvdXRlcic7XG5cbmltcG9ydCB7Rm9ybWx5TW9kdWxlfSBmcm9tICdAbmd4LWZvcm1seS9jb3JlJztcbmltcG9ydCB7VHJhbnNsYXRlTW9kdWxlLCBUcmFuc2xhdGVTZXJ2aWNlfSBmcm9tICdAbmd4LXRyYW5zbGF0ZS9jb3JlJztcbmltcG9ydCB7dGhyb3dFcnJvcn0gZnJvbSAncnhqcyc7XG5pbXBvcnQge21hcH0gZnJvbSAncnhqcy9vcGVyYXRvcnMnO1xuXG5pbXBvcnQge1xuICAgIEFjdGlvbkRlc2NyaXB0b3JJbnN0LFxuICAgIEFjdGlvbkVkaXRvckRldGFpbHNEZXNjcmlwdG9yLFxuICAgIExvb2t1cERhdGFQcm92aWRlcixcbiAgICBNbmdEcm9wZG93bkNvbXBvbmVudCxcbiAgICBNbmdJbnRlcm5hbEVycm9yLFxuICAgIE1uZ1RhYmxldmlld0NvbXBvbmVudCxcbiAgICBNbmdUYWJsZXZpZXdSb3V0ZUNvbXBvbmVudCxcbiAgICBOdWxsYWJsZSxcbiAgICBUYWJsZXZpZXdEYXRhUHJvdmlkZXIsXG4gICAgVGFibGV2aWV3RGVzY3JpcHRvclxufSBmcm9tICdAbWVkaXVzaW5jL21uZy1jb21tb25zJztcblxuaW1wb3J0IHtNbmdHdWlFbnRpdHlNb2RlbER0b30gZnJvbSAnLi4vLi4vLi4vYXBpL21vZGVscy9ndWlFbnRpdHlNb2RlbCc7XG5pbXBvcnQge01uZ0F1ZGl0UmV2aXNpb25zQXBpU2VydmljZX0gZnJvbSAnLi4vLi4vLi4vYXBpL3NlcnZpY2VzL2F1ZGl0LXJldmlzaW9ucy1hcGkuc2VydmljZSc7XG5pbXBvcnQge01uZ0F1ZGl0U2VydmljZX0gZnJvbSAnLi4vLi4vLi4vYXBpL3NlcnZpY2VzL2F1ZGl0LnNlcnZpY2UnO1xuaW1wb3J0IHtNbmdHdWlFbnRpdHlNb2RlbFdpdGhJMThufSBmcm9tICcuLi8uLi8uLi9tb2RlbHMvZ3VpRW50aXR5TW9kZWxXaXRoSTE4bi5tb2RlbCc7XG5pbXBvcnQge01uZ1JldkVudGl0eVdpdGhJZH0gZnJvbSAnLi4vLi4vLi4vbW9kZWxzL3JldkVudGl0eVdpdGhJZC5tb2RlbCc7XG5pbXBvcnQge0F1ZGl0VXRpbH0gZnJvbSAnLi4vLi4vLi4vdXRpbHMvYXVkaXQudXRpbCc7XG5cbkBDb21wb25lbnQoe1xuICAgIHN0YW5kYWxvbmU6IHRydWUsXG4gICAgc2VsZWN0b3I6ICdtbmctYXVkaXQtZW50aXR5LXJldmlzaW9ucy1wYWdlJyxcbiAgICB0ZW1wbGF0ZVVybDogJy4vYXVkaXQtZW50aXR5LXJldmlzaW9ucy5wYWdlLmNvbXBvbmVudC5odG1sJyxcbiAgICBpbXBvcnRzOiBbTW5nRHJvcGRvd25Db21wb25lbnQsIE1uZ1RhYmxldmlld1JvdXRlQ29tcG9uZW50LCBGb3Jtc01vZHVsZSwgQXN5bmNQaXBlLCBUcmFuc2xhdGVNb2R1bGUsIEZvcm1seU1vZHVsZSwgTW5nVGFibGV2aWV3Q29tcG9uZW50XSxcbiAgICBwcm92aWRlcnM6IFtNbmdBdWRpdFJldmlzaW9uc0FwaVNlcnZpY2VdLFxuICAgIGNoYW5nZURldGVjdGlvbjogQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kuT25QdXNoXG59KVxuZXhwb3J0IGNsYXNzIE1uZ0F1ZGl0RW50aXR5UmV2aXNpb25zUGFnZUNvbXBvbmVudCB7XG4gICAgcHJpdmF0ZSByZWFkb25seSByb3V0ZXIgPSBpbmplY3QoUm91dGVyKTtcbiAgICBwcml2YXRlIHJlYWRvbmx5IHJvdXRlID0gaW5qZWN0KEFjdGl2YXRlZFJvdXRlKTtcbiAgICBwcml2YXRlIHJlYWRvbmx5IHRyYW5zbGF0ZSA9IGluamVjdChUcmFuc2xhdGVTZXJ2aWNlKTtcbiAgICBwcml2YXRlIHJlYWRvbmx5IGF1ZGl0U2VydmljZSA9IGluamVjdChNbmdBdWRpdFNlcnZpY2UpO1xuXG4gICAgcHJpdmF0ZSByZWFkb25seSByZXZNb2RlbCA9IHRvU2lnbmFsKHRoaXMuYXVkaXRTZXJ2aWNlLnJldk1vZGVsJCk7XG4gICAgcHJpdmF0ZSByZWFkb25seSBhdWRpdE1vZGVsID0gdG9TaWduYWwodGhpcy5hdWRpdFNlcnZpY2UuYXVkaXRNb2RlbCQpO1xuICAgIHByaXZhdGUgcmVhZG9ubHkgZW50aXR5Q2xhc3MgPSB0b1NpZ25hbCh0aGlzLnJvdXRlLnBhcmFtTWFwLnBpcGUobWFwKHBtID0+IHBtLmdldCgnZW50aXR5Q2xhc3MnKSA/PyB1bmRlZmluZWQpKSk7XG5cbiAgICBwdWJsaWMgcmVhZG9ubHkgc2VsZWN0ZWRSZXZpc2lvbkVudGl0eSA9IGNvbXB1dGVkKCgpID0+IHtcbiAgICAgICAgY29uc3QgZW50aXRpZXMgPSB0aGlzLmF1ZGl0TW9kZWwoKTtcbiAgICAgICAgY29uc3QgZW50aXR5Q2xhc3MgPSB0aGlzLmVudGl0eUNsYXNzKCk7XG4gICAgICAgIGlmIChlbnRpdHlDbGFzcyAmJiBlbnRpdGllcykge1xuICAgICAgICAgICAgZm9yIChjb25zdCBlIG9mIGVudGl0aWVzKSB7XG4gICAgICAgICAgICAgICAgaWYgKGUuZW50aXR5TmFtZSA9PT0gZW50aXR5Q2xhc3MpIHtcbiAgICAgICAgICAgICAgICAgICAgcmV0dXJuIGU7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICAgIHJldHVybiB1bmRlZmluZWQ7XG4gICAgfSk7XG4gICAgcHVibGljIHJlYWRvbmx5IGRlc2NyaXB0b3IgPSBjb21wdXRlZCgoKSA9PiB7XG4gICAgICAgIGNvbnN0IHJldk1vZGVsID0gdGhpcy5yZXZNb2RlbCgpO1xuICAgICAgICBjb25zdCBzZWxlY3RlZFJldmlzaW9uRW50aXR5ID0gdGhpcy5zZWxlY3RlZFJldmlzaW9uRW50aXR5KCk7XG4gICAgICAgIGlmICghcmV2TW9kZWwgfHwgIXNlbGVjdGVkUmV2aXNpb25FbnRpdHk/LmVudGl0eU5hbWUpIHtcbiAgICAgICAgICAgIHJldHVybiB1bmRlZmluZWQ7XG4gICAgICAgIH1cblxuICAgICAgICBjb25zdCBkZXNjID0gVGFibGV2aWV3RGVzY3JpcHRvci5mcm9tQ2xhc3MoTW5nUmV2RW50aXR5V2l0aElkLCAnbWVyZ2VkSWQnLCB1bmRlZmluZWQsIHNlbGVjdGVkUmV2aXNpb25FbnRpdHkuZW50aXR5TmFtZSk7XG4gICAgICAgIEF1ZGl0VXRpbC5idWlsZERlc2NyaXB0b3JGb3JFbnRpdHlSZXZpc2lvbihkZXNjLCByZXZNb2RlbCwgc2VsZWN0ZWRSZXZpc2lvbkVudGl0eSk7XG5cbiAgICAgICAgZGVzYy50YWJsZS53aXRoQ29sdW1uc1Jlc2l6YWJsZSgpO1xuICAgICAgICBkZXNjLnRhYmxlLndpdGhDdXJyZW50Q29sdW1uc1Jlb3JkZXJhYmxlKCk7XG4gICAgICAgIGRlc2MudGFibGUud2l0aEN1cnJlbnRDb2x1bW5zVG9nZ2xlYWJsZSgpO1xuXG4gICAgICAgIHJldHVybiBkZXNjO1xuICAgIH0pO1xuICAgIHB1YmxpYyByZWFkb25seSBkYXRhUHJvdmlkZXIgPSBjb21wdXRlZCgoKSA9PiB7XG4gICAgICAgIGNvbnN0IHJldk1vZGVsID0gdGhpcy5yZXZNb2RlbCgpO1xuICAgICAgICBjb25zdCBzZWxlY3RlZFJldmlzaW9uRW50aXR5ID0gdGhpcy5zZWxlY3RlZFJldmlzaW9uRW50aXR5KCk7XG4gICAgICAgIGlmICghcmV2TW9kZWwgfHwgIXNlbGVjdGVkUmV2aXNpb25FbnRpdHk/LmVudGl0eU5hbWUpIHtcbiAgICAgICAgICAgIHJldHVybiB1bmRlZmluZWQ7XG4gICAgICAgIH1cblxuICAgICAgICBjb25zdCBlbnRpdHlOYW1lID0gc2VsZWN0ZWRSZXZpc2lvbkVudGl0eS5lbnRpdHlOYW1lO1xuICAgICAgICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgQHR5cGVzY3JpcHQtZXNsaW50L25vLWV4cGxpY2l0LWFueVxuICAgICAgICByZXR1cm4gVGFibGV2aWV3RGF0YVByb3ZpZGVyLmZyb21DbGFzc1dpdGhTZXJ2aWNlPE1uZ1JldkVudGl0eVdpdGhJZCwgTW5nQXVkaXRSZXZpc2lvbnNBcGlTZXJ2aWNlLCBhbnk+KE1uZ1JldkVudGl0eVdpdGhJZCwgTW5nQXVkaXRSZXZpc2lvbnNBcGlTZXJ2aWNlKS53aXRoR2V0QWxsKFxuICAgICAgICAgICAgKHBhcmFtcywgc2VydmljZSkgPT5cbiAgICAgICAgICAgICAgICBzZWxlY3RlZFJldmlzaW9uRW50aXR5LmVudGl0eU5hbWVcbiAgICAgICAgICAgICAgICAgICAgPyBzZXJ2aWNlLmxpc3RSZXZpc2lvbnNXaXRoU3RhdGVGb3JFbnRpdHlUeXBlKHBhcmFtcywgZW50aXR5TmFtZSkucGlwZShcbiAgICAgICAgICAgICAgICAgICAgICAgICAgbWFwKHJlcyA9PiB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb25zdCByZXZFbnRpdHlXaXRoU3RhdGVBbmRJZExpc3QgPSBbXTtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGZvciAoY29uc3QgcmV2RW50aXR5V2l0aFN0YXRlIG9mIHJlcy5kYXRhKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY29uc3QgcmV2RW50aXR5V2l0aFN0YXRlQW5kSWQgPSBuZXcgTW5nUmV2RW50aXR5V2l0aElkKCk7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcmV2RW50aXR5V2l0aFN0YXRlQW5kSWQubWVyZ2VkSWQgPSByZXZFbnRpdHlXaXRoU3RhdGUucmV2RW50aXR5Py5bJ3JldiddICsgJ18nICsgcmV2RW50aXR5V2l0aFN0YXRlLmVudGl0eVN0YXRlPy5bJ2lkJ107XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcmV2RW50aXR5V2l0aFN0YXRlQW5kSWQucmV2VHlwZSA9IHJldkVudGl0eVdpdGhTdGF0ZS5yZXZUeXBlO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJldkVudGl0eVdpdGhTdGF0ZUFuZElkLnJldkVudGl0eSA9IHJldkVudGl0eVdpdGhTdGF0ZS5yZXZFbnRpdHk7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcmV2RW50aXR5V2l0aFN0YXRlQW5kSWQuZW50aXR5U3RhdGUgPSByZXZFbnRpdHlXaXRoU3RhdGUuZW50aXR5U3RhdGU7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcmV2RW50aXR5V2l0aFN0YXRlQW5kSWQuZW50aXR5Q2xhc3NOYW1lID0gcmV2RW50aXR5V2l0aFN0YXRlLmVudGl0eUNsYXNzTmFtZTtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICByZXZFbnRpdHlXaXRoU3RhdGVBbmRJZExpc3QucHVzaChyZXZFbnRpdHlXaXRoU3RhdGVBbmRJZCk7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICByZXR1cm4ge2RhdGE6IHJldkVudGl0eVdpdGhTdGF0ZUFuZElkTGlzdCwgdG90YWxDb3VudDogcmVzLnRvdGFsQ291bnR9O1xuICAgICAgICAgICAgICAgICAgICAgICAgICB9KVxuICAgICAgICAgICAgICAgICAgICAgIClcbiAgICAgICAgICAgICAgICAgICAgOiB0aHJvd0Vycm9yKCgpID0+IG5ldyBNbmdJbnRlcm5hbEVycm9yKCdObyByZXZpc2lvbiBlbnRpdHkgaXMgcHJvdmlkZWQgZm9yIGxpc3QuJykpXG4gICAgICAgICk7XG4gICAgfSk7XG4gICAgcHVibGljIHJlYWRvbmx5IGFjdGlvbnMgPSBjb21wdXRlZCgoKSA9PiB7XG4gICAgICAgIGNvbnN0IHNlbGVjdGVkUmV2aXNpb25FbnRpdHkgPSB0aGlzLnNlbGVjdGVkUmV2aXNpb25FbnRpdHkoKTtcbiAgICAgICAgY29uc3QgZGVzY3JpcHRvciA9IHRoaXMuZGVzY3JpcHRvcigpO1xuICAgICAgICBpZiAoIXNlbGVjdGVkUmV2aXNpb25FbnRpdHk/LmVudGl0eU5hbWUgfHwgIWRlc2NyaXB0b3IpIHtcbiAgICAgICAgICAgIHJldHVybiBbXTtcbiAgICAgICAgfVxuXG4gICAgICAgIGNvbnN0IGVudGl0eU5hbWUgPSBzZWxlY3RlZFJldmlzaW9uRW50aXR5LmVudGl0eU5hbWU7XG4gICAgICAgIGNvbnN0IGRldGFpbHNBY3Rpb24gPSBBY3Rpb25FZGl0b3JEZXRhaWxzRGVzY3JpcHRvci5jcmVhdGVXaXRoUHJvdmlkZXIoZGVzY3JpcHRvci5kZXRhaWxzRWRpdG9yLCBNbmdBdWRpdFJldmlzaW9uc0FwaVNlcnZpY2UpXG4gICAgICAgICAgICAud2l0aEZldGNoRnVuY3Rpb24oY3R4ID0+IHtcbiAgICAgICAgICAgICAgICBpZiAoIWVudGl0eU5hbWUpIHtcbiAgICAgICAgICAgICAgICAgICAgcmV0dXJuIHRocm93RXJyb3IoKCkgPT4gbmV3IE1uZ0ludGVybmFsRXJyb3IoJ05vIHJldmlzaW9uIGVudGl0eSBpcyBwcm92aWRlZCBmb3IgZGV0YWlscy4nKSk7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIGlmICghY3R4LnBhcmFtZXRlcnMuaXRlbUlkKSB7XG4gICAgICAgICAgICAgICAgICAgIHJldHVybiB0aHJvd0Vycm9yKCgpID0+IG5ldyBNbmdJbnRlcm5hbEVycm9yKCdObyBpdGVtIGlkIGZvciByZXZpc2lvbiBlbnRpdHkgZGV0YWlscyBpcyBwcm92aWRlZC4nKSk7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIGNvbnN0IHJldklkID0gY3R4LnBhcmFtZXRlcnMuaXRlbUlkLnRvU3RyaW5nKCkuc3BsaXQoJ18nKVswXTtcbiAgICAgICAgICAgICAgICBjb25zdCBpdGVtSWQgPSBjdHgucGFyYW1ldGVycy5pdGVtSWQudG9TdHJpbmcoKS5zcGxpdCgnXycpWzFdO1xuICAgICAgICAgICAgICAgIHJldHVybiBjdHguc2VydmljZUluc3RhbmNlLmZldGNoUmV2aXNpb25zV2l0aFN0YXRlRm9yRW50aXR5VHlwZShlbnRpdHlOYW1lLCByZXZJZCwgaXRlbUlkKTtcbiAgICAgICAgICAgIH0pXG4gICAgICAgICAgICAud2l0aEVkaXRvclRpdGxlKCdwYWdlcy5lbnRpdHlSZXZpc2lvbnMuYWN0aW9ucy5kZXRhaWxzLmVkaXRvci50aXRsZScpO1xuICAgICAgICByZXR1cm4gW2RldGFpbHNBY3Rpb25dIGFzIEFjdGlvbkRlc2NyaXB0b3JJbnN0PE1uZ1JldkVudGl0eVdpdGhJZD5bXTtcbiAgICB9KTtcblxuICAgIHB1YmxpYyByZXZpc2lvbkVudGl0aWVzTG9va3VwUHJvdmlkZXIgPSBMb29rdXBEYXRhUHJvdmlkZXIuZnJvbUNsYXNzKE1uZ0d1aUVudGl0eU1vZGVsV2l0aEkxOG4pLndpdGhMb29rdXAoKCkgPT5cbiAgICAgICAgdGhpcy5hdWRpdFNlcnZpY2UuYXVkaXRNb2RlbCQucGlwZShcbiAgICAgICAgICAgIG1hcChtb2RlbCA9PiB7XG4gICAgICAgICAgICAgICAgY29uc3QgbW9kZWxJMThuID0gbW9kZWwgYXMgTW5nR3VpRW50aXR5TW9kZWxXaXRoSTE4bltdO1xuICAgICAgICAgICAgICAgIG1vZGVsSTE4bi5zb3J0KChtMSwgbTIpID0+IHtcbiAgICAgICAgICAgICAgICAgICAgaWYgKG0xLmVudGl0eU5hbWUgJiYgbTIuZW50aXR5TmFtZSkge1xuICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuIG0xLmVudGl0eU5hbWUubG9jYWxlQ29tcGFyZShtMi5lbnRpdHlOYW1lKTtcbiAgICAgICAgICAgICAgICAgICAgfSBlbHNlIGlmIChtMS5lbnRpdHlOYW1lICYmICFtMi5lbnRpdHlOYW1lKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICByZXR1cm4gMTtcbiAgICAgICAgICAgICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybiAtMTtcbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIH0pO1xuICAgICAgICAgICAgICAgIG1vZGVsSTE4bi5mb3JFYWNoKGl0ZW0gPT4ge1xuICAgICAgICAgICAgICAgICAgICBjb25zdCB0cmFuc2xhdGVkRW50aXR5TmFtZSA9IHRoaXMudHJhbnNsYXRlLmluc3RhbnQoJ0F1ZGl0RW50aXRpZXMuJyArIGl0ZW0uZW50aXR5TmFtZSk7XG4gICAgICAgICAgICAgICAgICAgIGl0ZW0uZW50aXR5TmFtZUkxOG4gPSB0cmFuc2xhdGVkRW50aXR5TmFtZS5pbmNsdWRlcygnQXVkaXRFbnRpdGllcy4nKSA/IGl0ZW0uZW50aXR5TmFtZSA6IHRyYW5zbGF0ZWRFbnRpdHlOYW1lO1xuICAgICAgICAgICAgICAgIH0pO1xuICAgICAgICAgICAgICAgIHJldHVybiBtb2RlbEkxOG47XG4gICAgICAgICAgICB9KVxuICAgICAgICApXG4gICAgKTtcbiAgICBwdWJsaWMgc2hvd1RhYmxldmlldyA9IHNpZ25hbChmYWxzZSk7XG5cbiAgICBjb25zdHJ1Y3RvcigpIHtcbiAgICAgICAgZWZmZWN0KFxuICAgICAgICAgICAgKCkgPT4ge1xuICAgICAgICAgICAgICAgIGNvbnN0IGRlc2NyaXB0b3IgPSB0aGlzLmRlc2NyaXB0b3IoKTtcbiAgICAgICAgICAgICAgICBpZiAoZGVzY3JpcHRvcikge1xuICAgICAgICAgICAgICAgICAgICBzZXRUaW1lb3V0KCgpID0+IHtcbiAgICAgICAgICAgICAgICAgICAgICAgIHRoaXMuc2hvd1RhYmxldmlldy5zZXQodHJ1ZSk7XG4gICAgICAgICAgICAgICAgICAgIH0pO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH0sXG4gICAgICAgICAgICB7YWxsb3dTaWduYWxXcml0ZXM6IHRydWV9XG4gICAgICAgICk7XG4gICAgfVxuXG4gICAgcHVibGljIG9uUmV2aXNpb25FbnRpdHlDaGFuZ2UodmFsdWU6IE51bGxhYmxlPE1uZ0d1aUVudGl0eU1vZGVsRHRvPikge1xuICAgICAgICB0aGlzLnNob3dUYWJsZXZpZXcuc2V0KGZhbHNlKTtcbiAgICAgICAgaWYgKHZhbHVlKSB7XG4gICAgICAgICAgICB0aGlzLnJvdXRlci5uYXZpZ2F0ZShbJy9hdWRpdC9lbnRpdHktcmV2aXNpb25zLycgKyB2YWx1ZS5lbnRpdHlOYW1lXSk7XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICB0aGlzLnJvdXRlci5uYXZpZ2F0ZShbJy9hdWRpdC9lbnRpdHktcmV2aXNpb25zLyddKTtcbiAgICAgICAgfVxuICAgIH1cbn1cbiIsIjxkaXYgY2xhc3M9XCJjYXJkXCI+XG4gICAgPGRpdiBjbGFzcz1cImZpZWxkIG1iLTBcIj5cbiAgICAgICAgPG1uZy1kcm9wZG93blxuICAgICAgICAgICAgaWQ9XCJyZXZpc2lvbkVudGl0eURyb3Bkb3duXCJcbiAgICAgICAgICAgIFtwbGFjZWhvbGRlcl09XCIncGFnZXMuZW50aXR5UmV2aXNpb25zLmRyb3Bkb3duLnBsYWNlaG9sZGVyJyB8IHRyYW5zbGF0ZVwiXG4gICAgICAgICAgICBvcHRpb25zTGFiZWxQcm9wZXJ0eT1cImVudGl0eU5hbWVJMThuXCJcbiAgICAgICAgICAgIFtuZ01vZGVsXT1cInNlbGVjdGVkUmV2aXNpb25FbnRpdHkoKVwiXG4gICAgICAgICAgICAodmFsdWVDaGFuZ2UpPVwib25SZXZpc2lvbkVudGl0eUNoYW5nZSgkZXZlbnQpXCJcbiAgICAgICAgICAgIFtkYXRhUHJvdmlkZXJdPVwicmV2aXNpb25FbnRpdGllc0xvb2t1cFByb3ZpZGVyXCJcbiAgICAgICAgICAgIFtzaG93Q2xlYXJdPVwidHJ1ZVwiPjwvbW5nLWRyb3Bkb3duPlxuICAgICAgICBAaWYgKCFzZWxlY3RlZFJldmlzaW9uRW50aXR5KCkpIHtcbiAgICAgICAgICAgIDxzbWFsbCBjbGFzcz1cImJsb2NrXCI+XG4gICAgICAgICAgICAgICAge3sgJ3BhZ2VzLmVudGl0eVJldmlzaW9ucy5kcm9wZG93bi5oZWxwVGV4dCcgfCB0cmFuc2xhdGUgfX1cbiAgICAgICAgICAgIDwvc21hbGw+XG4gICAgICAgIH1cbiAgICA8L2Rpdj5cbjwvZGl2PlxuQGlmIChzaG93VGFibGV2aWV3KCkgJiYgZGVzY3JpcHRvcigpKSB7XG4gICAgPG1uZy10YWJsZXZpZXcgW2Rlc2NyaXB0b3JdPVwiZGVzY3JpcHRvcigpIVwiIFtkYXRhUHJvdmlkZXJdPVwiZGF0YVByb3ZpZGVyKClcIiBbYWN0aW9uc109XCJhY3Rpb25zKClcIj48L21uZy10YWJsZXZpZXc+XG59XG4iXX0=
148
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYXVkaXQtZW50aXR5LXJldmlzaW9ucy5wYWdlLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3NyYy9saWIvY29tcG9uZW50cy9wYWdlcy9lbnRpdHktcmV2aXNpb25zL2F1ZGl0LWVudGl0eS1yZXZpc2lvbnMucGFnZS5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi9zcmMvbGliL2NvbXBvbmVudHMvcGFnZXMvZW50aXR5LXJldmlzaW9ucy9hdWRpdC1lbnRpdHktcmV2aXNpb25zLnBhZ2UuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFDLFNBQVMsRUFBQyxNQUFNLGlCQUFpQixDQUFDO0FBQzFDLE9BQU8sRUFBQyx1QkFBdUIsRUFBRSxTQUFTLEVBQUUsUUFBUSxFQUFFLE1BQU0sRUFBRSxNQUFNLEVBQUUsTUFBTSxFQUFDLE1BQU0sZUFBZSxDQUFDO0FBQ25HLE9BQU8sRUFBQyxRQUFRLEVBQUMsTUFBTSw0QkFBNEIsQ0FBQztBQUNwRCxPQUFPLEVBQUMsV0FBVyxFQUFDLE1BQU0sZ0JBQWdCLENBQUM7QUFDM0MsT0FBTyxFQUFDLGNBQWMsRUFBRSxNQUFNLEVBQUMsTUFBTSxpQkFBaUIsQ0FBQztBQUV2RCxPQUFPLEVBQUMsWUFBWSxFQUFDLE1BQU0sa0JBQWtCLENBQUM7QUFDOUMsT0FBTyxFQUFDLGVBQWUsRUFBRSxnQkFBZ0IsRUFBQyxNQUFNLHFCQUFxQixDQUFDO0FBQ3RFLE9BQU8sRUFBQyxVQUFVLEVBQUMsTUFBTSxNQUFNLENBQUM7QUFDaEMsT0FBTyxFQUFDLEdBQUcsRUFBQyxNQUFNLGdCQUFnQixDQUFDO0FBRW5DLE9BQU8sRUFBQyxvQkFBb0IsRUFBVyxNQUFNLDZCQUE2QixDQUFDO0FBQzNFLE9BQU8sRUFBQyxpQkFBaUIsRUFBQyxNQUFNLDZCQUE2QixDQUFDO0FBQzlELE9BQU8sRUFBQyxrQkFBa0IsRUFBQyxNQUFN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LENBQUMsQ0FBQztRQUN2RCxDQUFDO0lBQ0wsQ0FBQzs4R0F4SVEsaUNBQWlDO2tHQUFqQyxpQ0FBaUMsOEVBSC9CLENBQUMsd0JBQXdCLENBQUMsMEJDN0J6QyxzMkJBb0JBLDRDRFFjLGlCQUFpQix3V0FBRSxXQUFXLDhWQUFhLGVBQWUsMkZBQUUsWUFBWSwrQkFBRSxrQkFBa0I7OzJGQUk3RixpQ0FBaUM7a0JBUjdDLFNBQVM7aUNBQ00sSUFBSSxZQUNOLGlDQUFpQyxXQUVsQyxDQUFDLGlCQUFpQixFQUFFLFdBQVcsRUFBRSxTQUFTLEVBQUUsZUFBZSxFQUFFLFlBQVksRUFBRSxrQkFBa0IsQ0FBQyxhQUM1RixDQUFDLHdCQUF3QixDQUFDLG1CQUNwQix1QkFBdUIsQ0FBQyxNQUFNIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtBc3luY1BpcGV9IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbic7XG5pbXBvcnQge0NoYW5nZURldGVjdGlvblN0cmF0ZWd5LCBDb21wb25lbnQsIGNvbXB1dGVkLCBlZmZlY3QsIGluamVjdCwgc2lnbmFsfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7dG9TaWduYWx9IGZyb20gJ0Bhbmd1bGFyL2NvcmUvcnhqcy1pbnRlcm9wJztcbmltcG9ydCB7Rm9ybXNNb2R1bGV9IGZyb20gJ0Bhbmd1bGFyL2Zvcm1zJztcbmltcG9ydCB7QWN0aXZhdGVkUm91dGUsIFJvdXRlcn0gZnJvbSAnQGFuZ3VsYXIvcm91dGVyJztcblxuaW1wb3J0IHtGb3JtbHlNb2R1bGV9IGZyb20gJ0BuZ3gtZm9ybWx5L2NvcmUnO1xuaW1wb3J0IHtUcmFuc2xhdGVNb2R1bGUsIFRyYW5zbGF0ZVNlcnZpY2V9IGZyb20gJ0BuZ3gtdHJhbnNsYXRlL2NvcmUnO1xuaW1wb3J0IHt0aHJvd0Vycm9yfSBmcm9tICdyeGpzJztcbmltcG9ydCB7bWFwfSBmcm9tICdyeGpzL29wZXJhdG9ycyc7XG5cbmltcG9ydCB7Q29tbW9uc0ludGVybmFsRXJyb3IsIE51bGxhYmxlfSBmcm9tICdAbWVkaXVzaW5jL21uZy1jb21tb25zL2NvcmUnO1xuaW1wb3J0IHtEcm9wZG93bkNvbXBvbmVudH0gZnJvbSAnQG1lZGl1c2luYy9tbmctY29tbW9ucy9mb3JtJztcbmltcG9ydCB7TG9va3VwRGF0YVByb3ZpZGVyfSBmcm9tICdAbWVkaXVzaW5jL21uZy1jb21tb25zL2Zvcm0vYXBpJztcbmltcG9ydCB7VGFibGV2aWV3Q29tcG9uZW50fSBmcm9tICdAbWVkaXVzaW5jL21uZy1jb21tb25zL3RhYmxldmlldyc7XG5pbXBvcnQge0FjdGlvbkRlc2NyaXB0b3JJbnN0LCBBY3Rpb25FZGl0b3JEZXRhaWxzRGVzY3JpcHRvciwgVGFibGV2aWV3RGF0YVByb3ZpZGVyLCBUYWJsZXZpZXdEZXNjcmlwdG9yfSBmcm9tICdAbWVkaXVzaW5jL21uZy1jb21tb25zL3RhYmxldmlldy9hcGknO1xuXG5pbXBvcnQge0d1aUVudGl0eU1vZGVsRHRvfSBmcm9tICcuLi8uLi8uLi9hcGkvbW9kZWxzL2d1aUVudGl0eU1vZGVsJztcbmltcG9ydCB7QXVkaXRSZXZpc2lvbnNBcGlTZXJ2aWNlfSBmcm9tICcuLi8uLi8uLi9hcGkvc2VydmljZXMvYXVkaXQtcmV2aXNpb25zLWFwaS5zZXJ2aWNlJztcbmltcG9ydCB7QXVkaXRTZXJ2aWNlfSBmcm9tICcuLi8uLi8uLi9hcGkvc2VydmljZXMvYXVkaXQuc2VydmljZSc7XG5pbXBvcnQge0d1aUVudGl0eU1vZGVsV2l0aEkxOG59IGZyb20gJy4uLy4uLy4uL21vZGVscy9ndWlFbnRpdHlNb2RlbFdpdGhJMThuLm1vZGVsJztcbmltcG9ydCB7UmV2RW50aXR5V2l0aElkfSBmcm9tICcuLi8uLi8uLi9tb2RlbHMvcmV2RW50aXR5V2l0aElkLm1vZGVsJztcbmltcG9ydCB7QXVkaXRVdGlsfSBmcm9tICcuLi8uLi8uLi91dGlscy9hdWRpdC51dGlsJztcblxuQENvbXBvbmVudCh7XG4gICAgc3RhbmRhbG9uZTogdHJ1ZSxcbiAgICBzZWxlY3RvcjogJ21uZy1hdWRpdC1lbnRpdHktcmV2aXNpb25zLXBhZ2UnLFxuICAgIHRlbXBsYXRlVXJsOiAnLi9hdWRpdC1lbnRpdHktcmV2aXNpb25zLnBhZ2UuY29tcG9uZW50Lmh0bWwnLFxuICAgIGltcG9ydHM6IFtEcm9wZG93bkNvbXBvbmVudCwgRm9ybXNNb2R1bGUsIEFzeW5jUGlwZSwgVHJhbnNsYXRlTW9kdWxlLCBGb3JtbHlNb2R1bGUsIFRhYmxldmlld0NvbXBvbmVudF0sXG4gICAgcHJvdmlkZXJzOiBbQXVkaXRSZXZpc2lvbnNBcGlTZXJ2aWNlXSxcbiAgICBjaGFuZ2VEZXRlY3Rpb246IENoYW5nZURldGVjdGlvblN0cmF0ZWd5Lk9uUHVzaFxufSlcbmV4cG9ydCBjbGFzcyBBdWRpdEVudGl0eVJldmlzaW9uc1BhZ2VDb21wb25lbnQge1xuICAgIHByaXZhdGUgcmVhZG9ubHkgcm91dGVyID0gaW5qZWN0KFJvdXRlcik7XG4gICAgcHJpdmF0ZSByZWFkb25seSByb3V0ZSA9IGluamVjdChBY3RpdmF0ZWRSb3V0ZSk7XG4gICAgcHJpdmF0ZSByZWFkb25seSB0cmFuc2xhdGUgPSBpbmplY3QoVHJhbnNsYXRlU2VydmljZSk7XG4gICAgcHJpdmF0ZSByZWFkb25seSBhdWRpdFNlcnZpY2UgPSBpbmplY3QoQXVkaXRTZXJ2aWNlKTtcblxuICAgIHByaXZhdGUgcmVhZG9ubHkgcmV2TW9kZWwgPSB0b1NpZ25hbCh0aGlzLmF1ZGl0U2VydmljZS5yZXZNb2RlbCQpO1xuICAgIHByaXZhdGUgcmVhZG9ubHkgYXVkaXRNb2RlbCA9IHRvU2lnbmFsKHRoaXMuYXVkaXRTZXJ2aWNlLmF1ZGl0TW9kZWwkKTtcbiAgICBwcml2YXRlIHJlYWRvbmx5IGVudGl0eUNsYXNzID0gdG9TaWduYWwodGhpcy5yb3V0ZS5wYXJhbU1hcC5waXBlKG1hcChwbSA9PiBwbS5nZXQoJ2VudGl0eUNsYXNzJykgPz8gdW5kZWZpbmVkKSkpO1xuXG4gICAgcHVibGljIHJlYWRvbmx5IHNlbGVjdGVkUmV2aXNpb25FbnRpdHkgPSBjb21wdXRlZCgoKSA9PiB7XG4gICAgICAgIGNvbnN0IGVudGl0aWVzID0gdGhpcy5hdWRpdE1vZGVsKCk7XG4gICAgICAgIGNvbnN0IGVudGl0eUNsYXNzID0gdGhpcy5lbnRpdHlDbGFzcygpO1xuICAgICAgICBpZiAoZW50aXR5Q2xhc3MgJiYgZW50aXRpZXMpIHtcbiAgICAgICAgICAgIGZvciAoY29uc3QgZSBvZiBlbnRpdGllcykge1xuICAgICAgICAgICAgICAgIGlmIChlLmVudGl0eU5hbWUgPT09IGVudGl0eUNsYXNzKSB7XG4gICAgICAgICAgICAgICAgICAgIHJldHVybiBlO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgICByZXR1cm4gdW5kZWZpbmVkO1xuICAgIH0pO1xuICAgIHB1YmxpYyByZWFkb25seSBkZXNjcmlwdG9yID0gY29tcHV0ZWQoKCkgPT4ge1xuICAgICAgICBjb25zdCByZXZNb2RlbCA9IHRoaXMucmV2TW9kZWwoKTtcbiAgICAgICAgY29uc3Qgc2VsZWN0ZWRSZXZpc2lvbkVudGl0eSA9IHRoaXMuc2VsZWN0ZWRSZXZpc2lvbkVudGl0eSgpO1xuICAgICAgICBpZiAoIXJldk1vZGVsIHx8ICFzZWxlY3RlZFJldmlzaW9uRW50aXR5Py5lbnRpdHlOYW1lKSB7XG4gICAgICAgICAgICByZXR1cm4gdW5kZWZpbmVkO1xuICAgICAgICB9XG5cbiAgICAgICAgY29uc3QgZGVzYyA9IFRhYmxldmlld0Rlc2NyaXB0b3IuZnJvbUNsYXNzKFJldkVudGl0eVdpdGhJZCwgJ21lcmdlZElkJywgdW5kZWZpbmVkLCBzZWxlY3RlZFJldmlzaW9uRW50aXR5LmVudGl0eU5hbWUpO1xuICAgICAgICBBdWRpdFV0aWwuYnVpbGREZXNjcmlwdG9yRm9yRW50aXR5UmV2aXNpb24oZGVzYywgcmV2TW9kZWwsIHNlbGVjdGVkUmV2aXNpb25FbnRpdHkpO1xuXG4gICAgICAgIGRlc2MudGFibGUud2l0aENvbHVtbnNSZXNpemFibGUoKTtcbiAgICAgICAgZGVzYy50YWJsZS53aXRoQ3VycmVudENvbHVtbnNSZW9yZGVyYWJsZSgpO1xuICAgICAgICBkZXNjLnRhYmxlLndpdGhDdXJyZW50Q29sdW1uc1RvZ2dsZWFibGUoKTtcblxuICAgICAgICByZXR1cm4gZGVzYztcbiAgICB9KTtcbiAgICBwdWJsaWMgcmVhZG9ubHkgZGF0YVByb3ZpZGVyID0gY29tcHV0ZWQoKCkgPT4ge1xuICAgICAgICBjb25zdCByZXZNb2RlbCA9IHRoaXMucmV2TW9kZWwoKTtcbiAgICAgICAgY29uc3Qgc2VsZWN0ZWRSZXZpc2lvbkVudGl0eSA9IHRoaXMuc2VsZWN0ZWRSZXZpc2lvbkVudGl0eSgpO1xuICAgICAgICBpZiAoIXJldk1vZGVsIHx8ICFzZWxlY3RlZFJldmlzaW9uRW50aXR5Py5lbnRpdHlOYW1lKSB7XG4gICAgICAgICAgICByZXR1cm4gdW5kZWZpbmVkO1xuICAgICAgICB9XG5cbiAgICAgICAgY29uc3QgZW50aXR5TmFtZSA9IHNlbGVjdGVkUmV2aXNpb25FbnRpdHkuZW50aXR5TmFtZTtcbiAgICAgICAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIEB0eXBlc2NyaXB0LWVzbGludC9uby1leHBsaWNpdC1hbnlcbiAgICAgICAgcmV0dXJuIFRhYmxldmlld0RhdGFQcm92aWRlci5mcm9tQ2xhc3NXaXRoU2VydmljZTxSZXZFbnRpdHlXaXRoSWQsIEF1ZGl0UmV2aXNpb25zQXBpU2VydmljZSwgYW55PihSZXZFbnRpdHlXaXRoSWQsIEF1ZGl0UmV2aXNpb25zQXBpU2VydmljZSkud2l0aEdldEFsbChcbiAgICAgICAgICAgIChwYXJhbXMsIHNlcnZpY2UpID0+XG4gICAgICAgICAgICAgICAgc2VsZWN0ZWRSZXZpc2lvbkVudGl0eS5lbnRpdHlOYW1lXG4gICAgICAgICAgICAgICAgICAgID8gc2VydmljZS5saXN0UmV2aXNpb25zV2l0aFN0YXRlRm9yRW50aXR5VHlwZShwYXJhbXMsIGVudGl0eU5hbWUpLnBpcGUoXG4gICAgICAgICAgICAgICAgICAgICAgICAgIG1hcChyZXMgPT4ge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY29uc3QgcmV2RW50aXR5V2l0aFN0YXRlQW5kSWRMaXN0ID0gW107XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICBmb3IgKGNvbnN0IHJldkVudGl0eVdpdGhTdGF0ZSBvZiByZXMuZGF0YSkge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IHJldkVudGl0eVdpdGhTdGF0ZUFuZElkID0gbmV3IFJldkVudGl0eVdpdGhJZCgpO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJldkVudGl0eVdpdGhTdGF0ZUFuZElkLm1lcmdlZElkID0gcmV2RW50aXR5V2l0aFN0YXRlLnJldkVudGl0eT8uWydyZXYnXSArICdfJyArIHJldkVudGl0eVdpdGhTdGF0ZS5lbnRpdHlTdGF0ZT8uWydpZCddO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJldkVudGl0eVdpdGhTdGF0ZUFuZElkLnJldlR5cGUgPSByZXZFbnRpdHlXaXRoU3RhdGUucmV2VHlwZTtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICByZXZFbnRpdHlXaXRoU3RhdGVBbmRJZC5yZXZFbnRpdHkgPSByZXZFbnRpdHlXaXRoU3RhdGUucmV2RW50aXR5O1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJldkVudGl0eVdpdGhTdGF0ZUFuZElkLmVudGl0eVN0YXRlID0gcmV2RW50aXR5V2l0aFN0YXRlLmVudGl0eVN0YXRlO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJldkVudGl0eVdpdGhTdGF0ZUFuZElkLmVudGl0eUNsYXNzTmFtZSA9IHJldkVudGl0eVdpdGhTdGF0ZS5lbnRpdHlDbGFzc05hbWU7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcmV2RW50aXR5V2l0aFN0YXRlQW5kSWRMaXN0LnB1c2gocmV2RW50aXR5V2l0aFN0YXRlQW5kSWQpO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuIHtkYXRhOiByZXZFbnRpdHlXaXRoU3RhdGVBbmRJZExpc3QsIHRvdGFsQ291bnQ6IHJlcy50b3RhbENvdW50fTtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgfSlcbiAgICAgICAgICAgICAgICAgICAgICApXG4gICAgICAgICAgICAgICAgICAgIDogdGhyb3dFcnJvcigoKSA9PiBuZXcgQ29tbW9uc0ludGVybmFsRXJyb3IoJ05vIHJldmlzaW9uIGVudGl0eSBpcyBwcm92aWRlZCBmb3IgbGlzdC4nKSlcbiAgICAgICAgKTtcbiAgICB9KTtcbiAgICBwdWJsaWMgcmVhZG9ubHkgYWN0aW9ucyA9IGNvbXB1dGVkKCgpID0+IHtcbiAgICAgICAgY29uc3Qgc2VsZWN0ZWRSZXZpc2lvbkVudGl0eSA9IHRoaXMuc2VsZWN0ZWRSZXZpc2lvbkVudGl0eSgpO1xuICAgICAgICBjb25zdCBkZXNjcmlwdG9yID0gdGhpcy5kZXNjcmlwdG9yKCk7XG4gICAgICAgIGlmICghc2VsZWN0ZWRSZXZpc2lvbkVudGl0eT8uZW50aXR5TmFtZSB8fCAhZGVzY3JpcHRvcikge1xuICAgICAgICAgICAgcmV0dXJuIFtdO1xuICAgICAgICB9XG5cbiAgICAgICAgY29uc3QgZW50aXR5TmFtZSA9IHNlbGVjdGVkUmV2aXNpb25FbnRpdHkuZW50aXR5TmFtZTtcbiAgICAgICAgY29uc3QgZGV0YWlsc0FjdGlvbiA9IEFjdGlvbkVkaXRvckRldGFpbHNEZXNjcmlwdG9yLmNyZWF0ZVdpdGhQcm92aWRlcihkZXNjcmlwdG9yLmRldGFpbHNFZGl0b3IsIEF1ZGl0UmV2aXNpb25zQXBpU2VydmljZSlcbiAgICAgICAgICAgIC53aXRoRmV0Y2hGdW5jdGlvbihjdHggPT4ge1xuICAgICAgICAgICAgICAgIGlmICghZW50aXR5TmFtZSkge1xuICAgICAgICAgICAgICAgICAgICByZXR1cm4gdGhyb3dFcnJvcigoKSA9PiBuZXcgQ29tbW9uc0ludGVybmFsRXJyb3IoJ05vIHJldmlzaW9uIGVudGl0eSBpcyBwcm92aWRlZCBmb3IgZGV0YWlscy4nKSk7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIGlmICghY3R4LnBhcmFtZXRlcnMuaXRlbUlkKSB7XG4gICAgICAgICAgICAgICAgICAgIHJldHVybiB0aHJvd0Vycm9yKCgpID0+IG5ldyBDb21tb25zSW50ZXJuYWxFcnJvcignTm8gaXRlbSBpZCBmb3IgcmV2aXNpb24gZW50aXR5IGRldGFpbHMgaXMgcHJvdmlkZWQuJykpO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICBjb25zdCByZXZJZCA9IGN0eC5wYXJhbWV0ZXJzLml0ZW1JZC50b1N0cmluZygpLnNwbGl0KCdfJylbMF07XG4gICAgICAgICAgICAgICAgY29uc3QgaXRlbUlkID0gY3R4LnBhcmFtZXRlcnMuaXRlbUlkLnRvU3RyaW5nKCkuc3BsaXQoJ18nKVsxXTtcbiAgICAgICAgICAgICAgICByZXR1cm4gY3R4LnNlcnZpY2VJbnN0YW5jZS5mZXRjaFJldmlzaW9uc1dpdGhTdGF0ZUZvckVudGl0eVR5cGUoZW50aXR5TmFtZSwgcmV2SWQsIGl0ZW1JZCk7XG4gICAgICAgICAgICB9KVxuICAgICAgICAgICAgLndpdGhFZGl0b3JUaXRsZSgncGFnZXMuZW50aXR5UmV2aXNpb25zLmFjdGlvbnMuZGV0YWlscy5lZGl0b3IudGl0bGUnKTtcbiAgICAgICAgcmV0dXJuIFtkZXRhaWxzQWN0aW9uXSBhcyBBY3Rpb25EZXNjcmlwdG9ySW5zdDxSZXZFbnRpdHlXaXRoSWQ+W107XG4gICAgfSk7XG5cbiAgICBwdWJsaWMgcmV2aXNpb25FbnRpdGllc0xvb2t1cFByb3ZpZGVyID0gTG9va3VwRGF0YVByb3ZpZGVyLmZyb21DbGFzcyhHdWlFbnRpdHlNb2RlbFdpdGhJMThuKS53aXRoTG9va3VwKCgpID0+XG4gICAgICAgIHRoaXMuYXVkaXRTZXJ2aWNlLmF1ZGl0TW9kZWwkLnBpcGUoXG4gICAgICAgICAgICBtYXAobW9kZWwgPT4ge1xuICAgICAgICAgICAgICAgIGNvbnN0IG1vZGVsSTE4biA9IG1vZGVsIGFzIEd1aUVudGl0eU1vZGVsV2l0aEkxOG5bXTtcbiAgICAgICAgICAgICAgICBtb2RlbEkxOG4uc29ydCgobTEsIG0yKSA9PiB7XG4gICAgICAgICAgICAgICAgICAgIGlmIChtMS5lbnRpdHlOYW1lICYmIG0yLmVudGl0eU5hbWUpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybiBtMS5lbnRpdHlOYW1lLmxvY2FsZUNvbXBhcmUobTIuZW50aXR5TmFtZSk7XG4gICAgICAgICAgICAgICAgICAgIH0gZWxzZSBpZiAobTEuZW50aXR5TmFtZSAmJiAhbTIuZW50aXR5TmFtZSkge1xuICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuIDE7XG4gICAgICAgICAgICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAgICAgICAgICAgICByZXR1cm4gLTE7XG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICB9KTtcbiAgICAgICAgICAgICAgICBtb2RlbEkxOG4uZm9yRWFjaChpdGVtID0+IHtcbiAgICAgICAgICAgICAgICAgICAgY29uc3QgdHJhbnNsYXRlZEVudGl0eU5hbWUgPSB0aGlzLnRyYW5zbGF0ZS5pbnN0YW50KCdBdWRpdEVudGl0aWVzLicgKyBpdGVtLmVudGl0eU5hbWUpO1xuICAgICAgICAgICAgICAgICAgICBpdGVtLmVudGl0eU5hbWVJMThuID0gdHJhbnNsYXRlZEVudGl0eU5hbWUuaW5jbHVkZXMoJ0F1ZGl0RW50aXRpZXMuJykgPyBpdGVtLmVudGl0eU5hbWUgOiB0cmFuc2xhdGVkRW50aXR5TmFtZTtcbiAgICAgICAgICAgICAgICB9KTtcbiAgICAgICAgICAgICAgICByZXR1cm4gbW9kZWxJMThuO1xuICAgICAgICAgICAgfSlcbiAgICAgICAgKVxuICAgICk7XG4gICAgcHVibGljIHNob3dUYWJsZXZpZXcgPSBzaWduYWwoZmFsc2UpO1xuXG4gICAgY29uc3RydWN0b3IoKSB7XG4gICAgICAgIGVmZmVjdChcbiAgICAgICAgICAgICgpID0+IHtcbiAgICAgICAgICAgICAgICBjb25zdCBkZXNjcmlwdG9yID0gdGhpcy5kZXNjcmlwdG9yKCk7XG4gICAgICAgICAgICAgICAgaWYgKGRlc2NyaXB0b3IpIHtcbiAgICAgICAgICAgICAgICAgICAgc2V0VGltZW91dCgoKSA9PiB7XG4gICAgICAgICAgICAgICAgICAgICAgICB0aGlzLnNob3dUYWJsZXZpZXcuc2V0KHRydWUpO1xuICAgICAgICAgICAgICAgICAgICB9KTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9LFxuICAgICAgICAgICAge2FsbG93U2lnbmFsV3JpdGVzOiB0cnVlfVxuICAgICAgICApO1xuICAgIH1cblxuICAgIHB1YmxpYyBvblJldmlzaW9uRW50aXR5Q2hhbmdlKHZhbHVlOiBOdWxsYWJsZTxHdWlFbnRpdHlNb2RlbER0bz4pIHtcbiAgICAgICAgdGhpcy5zaG93VGFibGV2aWV3LnNldChmYWxzZSk7XG4gICAgICAgIGlmICh2YWx1ZSkge1xuICAgICAgICAgICAgdGhpcy5yb3V0ZXIubmF2aWdhdGUoWycvYXVkaXQvZW50aXR5LXJldmlzaW9ucy8nICsgdmFsdWUuZW50aXR5TmFtZV0pO1xuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgdGhpcy5yb3V0ZXIubmF2aWdhdGUoWycvYXVkaXQvZW50aXR5LXJldmlzaW9ucy8nXSk7XG4gICAgICAgIH1cbiAgICB9XG59XG4iLCI8ZGl2IGNsYXNzPVwiY2FyZFwiPlxuICAgIDxkaXYgY2xhc3M9XCJmaWVsZCBtYi0wXCI+XG4gICAgICAgIDxtbmctZHJvcGRvd25cbiAgICAgICAgICAgIGlkPVwicmV2aXNpb25FbnRpdHlEcm9wZG93blwiXG4gICAgICAgICAgICBbcGxhY2Vob2xkZXJdPVwiJ3BhZ2VzLmVudGl0eVJldmlzaW9ucy5kcm9wZG93bi5wbGFjZWhvbGRlcicgfCB0cmFuc2xhdGVcIlxuICAgICAgICAgICAgb3B0aW9uc0xhYmVsUHJvcGVydHk9XCJlbnRpdHlOYW1lSTE4blwiXG4gICAgICAgICAgICBbbmdNb2RlbF09XCJzZWxlY3RlZFJldmlzaW9uRW50aXR5KClcIlxuICAgICAgICAgICAgKHZhbHVlQ2hhbmdlKT1cIm9uUmV2aXNpb25FbnRpdHlDaGFuZ2UoJGV2ZW50KVwiXG4gICAgICAgICAgICBbZGF0YVByb3ZpZGVyXT1cInJldmlzaW9uRW50aXRpZXNMb29rdXBQcm92aWRlclwiXG4gICAgICAgICAgICBbc2hvd0NsZWFyXT1cInRydWVcIj48L21uZy1kcm9wZG93bj5cbiAgICAgICAgQGlmICghc2VsZWN0ZWRSZXZpc2lvbkVudGl0eSgpKSB7XG4gICAgICAgICAgICA8c21hbGwgY2xhc3M9XCJibG9ja1wiPlxuICAgICAgICAgICAgICAgIHt7ICdwYWdlcy5lbnRpdHlSZXZpc2lvbnMuZHJvcGRvd24uaGVscFRleHQnIHwgdHJhbnNsYXRlIH19XG4gICAgICAgICAgICA8L3NtYWxsPlxuICAgICAgICB9XG4gICAgPC9kaXY+XG48L2Rpdj5cbkBpZiAoc2hvd1RhYmxldmlldygpICYmIGRlc2NyaXB0b3IoKSkge1xuICAgIDxtbmctdGFibGV2aWV3IFtkZXNjcmlwdG9yXT1cImRlc2NyaXB0b3IoKSFcIiBbZGF0YVByb3ZpZGVyXT1cImRhdGFQcm92aWRlcigpXCIgW2FjdGlvbnNdPVwiYWN0aW9ucygpXCI+PC9tbmctdGFibGV2aWV3PlxufVxuIl19