@mediusinc/mng-commons-audit 3.2.0 → 3.3.0-rc.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -1,45 +1,51 @@
1
1
  {
2
- "pages": {
3
- "audit": {
4
- "title": "Revisions"
5
- },
6
- "revisions": {
7
- "title": "All revisions"
8
- },
9
- "entityRevisions": {
10
- "title": "Entity revisions",
11
- "dropdown": {
12
- "placeholder": "Select entity",
13
- "helpText": "To display the list of entity revisions, you must first select the entity."
14
- }
15
- }
16
- },
17
- "MngRevEntity": {
18
- "name": "Revisions",
19
- "properties": {
20
- "rev": "Št. revizije",
21
- "revUsername": "Uporabnik",
22
- "timestamp": "Časovni žig"
23
- }
24
- },
25
- "MngEntityRevisionChangeState": {
26
- "properties": {
27
- "revType": "Type"
28
- }
2
+ "pages": {
3
+ "audit": {
4
+ "title": "Revisions"
29
5
  },
30
- "MngRevisionTypeDto": {
31
- "Add": "Insertion",
32
- "Mod": "Modification",
33
- "Del": "Deletion"
6
+ "revisions": {
7
+ "title": "All revisions"
34
8
  },
35
- "entity-revision-details": {
36
- "editor": {
9
+ "entityRevisions": {
10
+ "title": "Entity revisions",
11
+ "dropdown": {
12
+ "placeholder": "Select entity",
13
+ "helpText": "To display the list of entity revisions, you must first select the entity."
14
+ },
15
+ "actions": {
16
+ "details": {
17
+ "editor": {
37
18
  "title": "Entity revision details"
19
+ }
38
20
  }
39
- },
40
- "revision-details": {
21
+ }
22
+ }
23
+ },
24
+ "MngRevEntity": {
25
+ "name": "Revisions",
26
+ "properties": {
27
+ "rev": "Revision no.",
28
+ "revUsername": "User",
29
+ "timestamp": "Timestamp"
30
+ }
31
+ },
32
+ "MngEntityRevisionChangeState": {
33
+ "properties": {
34
+ "revType": "Type"
35
+ }
36
+ },
37
+ "MngRevisionTypeDto": {
38
+ "Add": "Insertion",
39
+ "Mod": "Modification",
40
+ "Del": "Deletion"
41
+ },
42
+ "MngRevEntityWithChangesDto": {
43
+ "actions": {
44
+ "details": {
41
45
  "editor": {
42
- "title": "Revision {{item.revEntity.rev}}"
46
+ "title": "Revision {{item.revEntity.rev}}"
43
47
  }
48
+ }
44
49
  }
50
+ }
45
51
  }
@@ -1,45 +1,51 @@
1
1
  {
2
- "pages": {
3
- "audit": {
4
- "title": "Revizije"
5
- },
6
- "revisions": {
7
- "title": "Vse revizije"
8
- },
9
- "entityRevisions": {
10
- "title": "Revizije entite",
11
- "dropdown": {
12
- "placeholder": "Izberite entiteto",
13
- "helpText": "Za prikaz seznama revizij entitete je potrebno najprej izbrati entiteto."
14
- }
15
- }
16
- },
17
- "MngRevEntity": {
18
- "name": "Revizije",
19
- "properties": {
20
- "rev": "Revision no.",
21
- "revUsername": "User",
22
- "timestamp": "Timestamp"
23
- }
2
+ "pages": {
3
+ "audit": {
4
+ "title": "Revizije"
24
5
  },
25
- "MngRevisionTypeDto": {
26
- "Add": "Vnos",
27
- "Mod": "Sprememba",
28
- "Del": "Izbris"
29
- },
30
- "MngEntityRevisionChangeState": {
31
- "properties": {
32
- "revType": "Tip"
33
- }
6
+ "revisions": {
7
+ "title": "Vse revizije"
34
8
  },
35
- "entity-revision-details": {
36
- "editor": {
9
+ "entityRevisions": {
10
+ "title": "Revizije entite",
11
+ "dropdown": {
12
+ "placeholder": "Izberite entiteto",
13
+ "helpText": "Za prikaz seznama revizij entitete je potrebno najprej izbrati entiteto."
14
+ },
15
+ "actions": {
16
+ "details": {
17
+ "editor": {
37
18
  "title": "Podrobnosti revizije entitete"
19
+ }
38
20
  }
39
- },
40
- "revision-details": {
21
+ }
22
+ }
23
+ },
24
+ "MngRevEntity": {
25
+ "name": "Revizije",
26
+ "properties": {
27
+ "rev": "Št. revizije",
28
+ "revUsername": "Uporabnik",
29
+ "timestamp": "Časovni žig"
30
+ }
31
+ },
32
+ "MngRevisionTypeDto": {
33
+ "Add": "Vnos",
34
+ "Mod": "Sprememba",
35
+ "Del": "Izbris"
36
+ },
37
+ "MngEntityRevisionChangeState": {
38
+ "properties": {
39
+ "revType": "Tip"
40
+ }
41
+ },
42
+ "MngRevEntityWithChangesDto": {
43
+ "actions": {
44
+ "details": {
41
45
  "editor": {
42
- "title": "Revizija {{item.revEntity.rev}}"
46
+ "title": "Revizija {{item.revEntity.rev}}"
43
47
  }
48
+ }
44
49
  }
50
+ }
45
51
  }
@@ -46,10 +46,10 @@ export class MngAuditRevisionsApiService extends AMngBaseApiService {
46
46
  countRevisionsWithStateForEntityType(queryParams, entityType) {
47
47
  return this.http.get(this.getUrl(`/states/${entityType}/count`, AuditUtil.appendMediusQueryParamsToUrl(queryParams)));
48
48
  }
49
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.1.7", ngImport: i0, type: MngAuditRevisionsApiService, deps: [], target: i0.ɵɵFactoryTarget.Injectable }); }
50
- static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "16.1.7", ngImport: i0, type: MngAuditRevisionsApiService }); }
49
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.6", ngImport: i0, type: MngAuditRevisionsApiService, deps: [], target: i0.ɵɵFactoryTarget.Injectable }); }
50
+ static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "16.2.6", ngImport: i0, type: MngAuditRevisionsApiService }); }
51
51
  }
52
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.1.7", ngImport: i0, type: MngAuditRevisionsApiService, decorators: [{
52
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.6", ngImport: i0, type: MngAuditRevisionsApiService, decorators: [{
53
53
  type: Injectable
54
54
  }], ctorParameters: function () { return []; } });
55
55
  //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYXVkaXQtcmV2aXNpb25zLWFwaS5zZXJ2aWNlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vc3JjL2xpYi9hcGkvc2VydmljZXMvYXVkaXQtcmV2aXNpb25zLWFwaS5zZXJ2aWNlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBQyxVQUFVLEVBQUUsTUFBTSxFQUFDLE1BQU0sZUFBZSxDQUFDO0FBR2pELE9BQU8sRUFBQyxHQUFHLEVBQUMsTUFBTSxnQkFBZ0IsQ0FBQztBQUVuQyxPQUFPLEVBQUMsa0JBQWtCLEVBQTRCLHVCQUF1QixFQUFFLGdCQUFnQixFQUFDLE1BQU0sd0JBQXdCLENBQUM7QUFFL0gsT0FBTyxFQUFDLGtCQUFrQixFQUFDLE1BQU0sb0NBQW9DLENBQUM7QUFDdEUsT0FBTyxFQUFDLDBCQUEwQixFQUFDLE1BQU0sbUNBQW1DLENBQUM7QUFDN0UsT0FBTyxFQUFDLFNBQVMsRUFBQyxNQUFNLHdCQUF3QixDQUFDO0FBRWpELE9BQU8sRUFBQyx3QkFBd0IsRUFBQyxNQUFNLGlDQUFpQyxDQUFDOztBQUd6RSxNQUFNLE9BQU8sMkJBQTRCLFNBQVEsa0JBQWtCO0lBSy9EO1FBQ0ksS0FBSyxFQUFFLENBQUM7UUFITyxpQkFBWSxHQUFHLE1BQU0sQ0FBQywwQkFBMEIsQ0FBQyxDQUFDO1FBSWpFLElBQUksQ0FBQyxhQUFhLEdBQUcsdUJBQXVCLENBQUMsR0FBRyxFQUFFLENBQUM7SUFDdkQsQ0FBQztJQUVTLGtCQUFrQjtRQUN4QixPQUFPLElBQUksQ0FBQyxZQUFZLENBQUMsa0JBQWtCLElBQUksRUFBRSxDQUFDO0lBQ3RELENBQUM7SUFFUyxXQUFXO1FBQ2pCLE9BQU8sR0FBRyxJQUFJLENBQUMsYUFBYSxDQUFDLGNBQWMsQ0FBQyxJQUFJLENBQUMsWUFBWSxDQUFDLG9CQUFvQixDQUFDLEVBQUUsQ0FBQztJQUMxRixDQUFDO0lBRU0sZUFBZSxDQUFDLFdBQTZCO1FBQ2hELE9BQU8sSUFBSSxDQUFDLElBQUksQ0FBQyxHQUFHLENBQWtDLElBQUksQ0FBQyxNQUFNLENBQUMsU0FBUyxDQUFDLDRCQUE0QixDQUFDLFdBQVcsQ0FBQyxDQUFDLENBQUMsQ0FBQztJQUM1SCxDQUFDO0lBRU0sZ0JBQWdCLENBQUMsV0FBNkI7UUFDakQsT0FBTyxJQUFJLENBQUMsSUFBSSxDQUFDLEdBQUcsQ0FBUyxJQUFJLENBQUMsTUFBTSxDQUFDLFFBQVEsRUFBRSxTQUFTLENBQUMsNEJBQTRCLENBQUMsV0FBVyxDQUFDLENBQUMsQ0FBQyxDQUFDO0lBQzdHLENBQUM7SUFFTSx3QkFBd0IsQ0FBQyxLQUFhO1FBQ3pDLE9BQU8sSUFBSSxDQUFDLElBQUksQ0FBQyxHQUFHLENBQUMsSUFBSSxDQUFDLE1BQU0sQ0FBQyxZQUFZLEtBQUssRUFBRSxDQUFDLENBQUMsQ0FBQztJQUMzRCxDQUFDO0lBRU0sbUNBQW1DLENBQUMsV0FBNkIsRUFBRSxVQUFrQjtRQUN4RixPQUFPLElBQUksQ0FBQyxJQUFJO2FBQ1gsR0FBRyxDQUFDLElBQUksQ0FBQyxNQUFNLENBQUMsV0FBVyxVQUFVLEVBQUUsRUFBRSxTQUFTLENBQUMsNEJBQTRCLENBQUMsV0FBVyxDQUFDLENBQUMsQ0FBQzthQUM5RixJQUFJLENBQUMsR0FBRyxDQUFDLFFBQVEsQ0FBQyxFQUFFLENBQUMsSUFBSSxDQUFDLHFCQUFxQixDQUFDLFFBQVEsRUFBRSx3QkFBd0IsQ0FBQyxDQUFDLENBQUMsQ0FBQztJQUMvRixDQUFDO0lBRU0sb0NBQW9DLENBQUMsVUFBa0IsRUFBRSxLQUFhLEVBQUUsTUFBYztRQUN6RixPQUFPLElBQUksQ0FBQyxJQUFJLENBQUMsR0FBRyxDQUFDLElBQUksQ0FBQyxNQUFNLENBQUMsV0FBVyxVQUFVLFdBQVcsS0FBSyxVQUFVLE1BQU0sRUFBRSxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQzNGLEdBQUcsQ0FBQyxRQUFRLENBQUMsRUFBRSxDQUNYLElBQUksQ0FBQyxxQkFBcUIsQ0FBQyxRQUFRLEVBQUUsa0JBQWtCLENBQUMsQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDLEVBQUU7WUFDN0QsQ0FBQyxDQUFDLFFBQVEsR0FBRyxDQUFDLENBQUMsU0FBUyxFQUFFLENBQUMsS0FBSyxDQUFDLEdBQUcsR0FBRyxHQUFHLENBQUMsQ0FBQyxXQUFXLEVBQUUsQ0FBQyxJQUFJLENBQUMsQ0FBQztZQUNoRSxPQUFPLENBQUMsQ0FBQztRQUNiLENBQUMsQ0FBQyxDQUNMLEVBQ0QsR0FBRyxDQUFDLEtBQUssQ0FBQyxFQUFFO1lBQ1IsSUFBSSxLQUFLLENBQUMsTUFBTSxHQUFHLENBQUMsRUFBRTtnQkFDbEIsT0FBTyxLQUFLLENBQUMsQ0FBQyxDQUFDLENBQUM7YUFDbkI7WUFDRCxNQUFNLElBQUksZ0JBQWdCLENBQUMsbUJBQW1CLEtBQUssUUFBUSxVQUFVLFlBQVksTUFBTSxnQkFBZ0IsQ0FBQyxDQUFDO1FBQzdHLENBQUMsQ0FBQyxDQUNMLENBQUM7SUFDTixDQUFDO0lBRU0sb0NBQW9DLENBQUMsV0FBNkIsRUFBRSxVQUFrQjtRQUN6RixPQUFPLElBQUksQ0FBQyxJQUFJLENBQUMsR0FBRyxDQUFTLElBQUksQ0FBQyxNQUFNLENBQUMsV0FBVyxVQUFVLFFBQVEsRUFBRSxTQUFTLENBQUMsNEJBQTRCLENBQUMsV0FBVyxDQUFDLENBQUMsQ0FBQyxDQUFDO0lBQ2xJLENBQUM7OEdBdkRRLDJCQUEyQjtrSEFBM0IsMkJBQTJCOzsyRkFBM0IsMkJBQTJCO2tCQUR2QyxVQUFVIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtJbmplY3RhYmxlLCBpbmplY3R9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuXG5pbXBvcnQge09ic2VydmFibGV9IGZyb20gJ3J4anMnO1xuaW1wb3J0IHttYXB9IGZyb20gJ3J4anMvb3BlcmF0b3JzJztcblxuaW1wb3J0IHtBTW5nQmFzZUFwaVNlcnZpY2UsIElkVHlwZSwgTWVkaXVzUXVlcnlQYXJhbSwgTW5nQ29uZmlndXJhdGlvblNlcnZpY2UsIE1uZ0ludGVybmFsRXJyb3J9IGZyb20gJ0BtZWRpdXNpbmMvbW5nLWNvbW1vbnMnO1xuXG5pbXBvcnQge01uZ1JldkVudGl0eVdpdGhJZH0gZnJvbSAnLi4vLi4vbW9kZWxzL3JldkVudGl0eVdpdGhJZC5tb2RlbCc7XG5pbXBvcnQge01OR19BVURJVF9NT0RVTEVfQ09ORklHX0lUfSBmcm9tICcuLi8uLi9zZXJ2aWNlL21vZHVsZS1jb25maWcudG9rZW4nO1xuaW1wb3J0IHtBdWRpdFV0aWx9IGZyb20gJy4uLy4uL3V0aWxzL2F1ZGl0LnV0aWwnO1xuaW1wb3J0IHtNbmdSZXZFbnRpdHlXaXRoQ2hhbmdlc0R0b30gZnJvbSAnLi4vbW9kZWxzL3JldkVudGl0eVdpdGhDaGFuZ2VzRHRvJztcbmltcG9ydCB7TW5nUmV2RW50aXR5V2l0aFN0YXRlRHRvfSBmcm9tICcuLi9tb2RlbHMvcmV2RW50aXR5V2l0aFN0YXRlRHRvJztcblxuQEluamVjdGFibGUoKVxuZXhwb3J0IGNsYXNzIE1uZ0F1ZGl0UmV2aXNpb25zQXBpU2VydmljZSBleHRlbmRzIEFNbmdCYXNlQXBpU2VydmljZSB7XG4gICAgcHJvdGVjdGVkIHJlYWRvbmx5IGNvbmZpZ1NlcnZpY2U6IE1uZ0NvbmZpZ3VyYXRpb25TZXJ2aWNlO1xuXG4gICAgcHJvdGVjdGVkIHJlYWRvbmx5IG1vZHVsZUNvbmZpZyA9IGluamVjdChNTkdfQVVESVRfTU9EVUxFX0NPTkZJR19JVCk7XG5cbiAgICBjb25zdHJ1Y3RvcigpIHtcbiAgICAgICAgc3VwZXIoKTtcbiAgICAgICAgdGhpcy5jb25maWdTZXJ2aWNlID0gTW5nQ29uZmlndXJhdGlvblNlcnZpY2UuZ2V0KCk7XG4gICAgfVxuXG4gICAgcHJvdGVjdGVkIGdldFNlcnZpY2VCYXNlUGF0aCgpOiBzdHJpbmcgfCBudWxsIHtcbiAgICAgICAgcmV0dXJuIHRoaXMubW9kdWxlQ29uZmlnLmFwaVNlcnZpY2VCYXNlUGF0aCA/PyAnJztcbiAgICB9XG5cbiAgICBwcm90ZWN0ZWQgZ2V0QmFzZVBhdGgoKTogc3RyaW5nIHtcbiAgICAgICAgcmV0dXJuIGAke3RoaXMuY29uZmlnU2VydmljZS5nZXRDb25maWdWYWx1ZSh0aGlzLm1vZHVsZUNvbmZpZy5hcGlCYXNlUGF0aENvbmZpZ0tleSl9YDtcbiAgICB9XG5cbiAgICBwdWJsaWMgZ2V0UmV2aXNpb25MaXN0KHF1ZXJ5UGFyYW1zOiBNZWRpdXNRdWVyeVBhcmFtKTogT2JzZXJ2YWJsZTxBcnJheTx7W2tleTogc3RyaW5nXTogdW5rbm93bn0+PiB7XG4gICAgICAgIHJldHVybiB0aGlzLmh0dHAuZ2V0PEFycmF5PHtba2V5OiBzdHJpbmddOiB1bmtub3dufT4+KHRoaXMuZ2V0VXJsKEF1ZGl0VXRpbC5hcHBlbmRNZWRpdXNRdWVyeVBhcmFtc1RvVXJsKHF1ZXJ5UGFyYW1zKSkpO1xuICAgIH1cblxuICAgIHB1YmxpYyBnZXRSZXZpc2lvbkNvdW50KHF1ZXJ5UGFyYW1zOiBNZWRpdXNRdWVyeVBhcmFtKTogT2JzZXJ2YWJsZTxudW1iZXI+IHtcbiAgICAgICAgcmV0dXJuIHRoaXMuaHR0cC5nZXQ8bnVtYmVyPih0aGlzLmdldFVybCgnL2NvdW50JywgQXVkaXRVdGlsLmFwcGVuZE1lZGl1c1F1ZXJ5UGFyYW1zVG9VcmwocXVlcnlQYXJhbXMpKSk7XG4gICAgfVxuXG4gICAgcHVibGljIGdldEFsbENoYW5nZXNGb3JSZXZpc2lvbihyZXZJZDogSWRUeXBlKTogT2JzZXJ2YWJsZTxNbmdSZXZFbnRpdHlXaXRoQ2hhbmdlc0R0bz4ge1xuICAgICAgICByZXR1cm4gdGhpcy5odHRwLmdldCh0aGlzLmdldFVybChgL2NoYW5nZXMvJHtyZXZJZH1gKSk7XG4gICAgfVxuXG4gICAgcHVibGljIGxpc3RSZXZpc2lvbnNXaXRoU3RhdGVGb3JFbnRpdHlUeXBlKHF1ZXJ5UGFyYW1zOiBNZWRpdXNRdWVyeVBhcmFtLCBlbnRpdHlUeXBlOiBzdHJpbmcpOiBPYnNlcnZhYmxlPEFycmF5PE1uZ1JldkVudGl0eVdpdGhTdGF0ZUR0bz4+IHtcbiAgICAgICAgcmV0dXJuIHRoaXMuaHR0cFxuICAgICAgICAgICAgLmdldCh0aGlzLmdldFVybChgL3N0YXRlcy8ke2VudGl0eVR5cGV9YCwgQXVkaXRVdGlsLmFwcGVuZE1lZGl1c1F1ZXJ5UGFyYW1zVG9VcmwocXVlcnlQYXJhbXMpKSlcbiAgICAgICAgICAgIC5waXBlKG1hcChyZXNwb25zZSA9PiB0aGlzLmRlc2VyaWFsaXplQ2xhc3NBcnJheShyZXNwb25zZSwgTW5nUmV2RW50aXR5V2l0aFN0YXRlRHRvKSkpO1xuICAgIH1cblxuICAgIHB1YmxpYyBmZXRjaFJldmlzaW9uc1dpdGhTdGF0ZUZvckVudGl0eVR5cGUoZW50aXR5VHlwZTogc3RyaW5nLCByZXZJZDogSWRUeXBlLCBpdGVtSWQ6IElkVHlwZSk6IE9ic2VydmFibGU8TW5nUmV2RW50aXR5V2l0aElkPiB7XG4gICAgICAgIHJldHVybiB0aGlzLmh0dHAuZ2V0KHRoaXMuZ2V0VXJsKGAvc3RhdGVzLyR7ZW50aXR5VHlwZX0/cmV2PWVxOiR7cmV2SWR9JmlkPWVxOiR7aXRlbUlkfWApKS5waXBlKFxuICAgICAgICAgICAgbWFwKHJlc3BvbnNlID0+XG4gICAgICAgICAgICAgICAgdGhpcy5kZXNlcmlhbGl6ZUNsYXNzQXJyYXkocmVzcG9uc2UsIE1uZ1JldkVudGl0eVdpdGhJZCkubWFwKGkgPT4ge1xuICAgICAgICAgICAgICAgICAgICBpLm1lcmdlZElkID0gaS5yZXZFbnRpdHk/LlsncmV2J10gKyAnXycgKyBpLmVudGl0eVN0YXRlPy5bJ2lkJ107XG4gICAgICAgICAgICAgICAgICAgIHJldHVybiBpO1xuICAgICAgICAgICAgICAgIH0pXG4gICAgICAgICAgICApLFxuICAgICAgICAgICAgbWFwKGl0ZW1zID0+IHtcbiAgICAgICAgICAgICAgICBpZiAoaXRlbXMubGVuZ3RoID4gMCkge1xuICAgICAgICAgICAgICAgICAgICByZXR1cm4gaXRlbXNbMF07XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIHRocm93IG5ldyBNbmdJbnRlcm5hbEVycm9yKGBFbnRpdHkgcmV2aXNpb24gJHtyZXZJZH0gZm9yICR7ZW50aXR5VHlwZX0gd2l0aCBpZCAke2l0ZW1JZH0gd2FzIG5vdCBmb3VuZGApO1xuICAgICAgICAgICAgfSlcbiAgICAgICAgKTtcbiAgICB9XG5cbiAgICBwdWJsaWMgY291bnRSZXZpc2lvbnNXaXRoU3RhdGVGb3JFbnRpdHlUeXBlKHF1ZXJ5UGFyYW1zOiBNZWRpdXNRdWVyeVBhcmFtLCBlbnRpdHlUeXBlOiBzdHJpbmcpOiBPYnNlcnZhYmxlPG51bWJlcj4ge1xuICAgICAgICByZXR1cm4gdGhpcy5odHRwLmdldDxudW1iZXI+KHRoaXMuZ2V0VXJsKGAvc3RhdGVzLyR7ZW50aXR5VHlwZX0vY291bnRgLCBBdWRpdFV0aWwuYXBwZW5kTWVkaXVzUXVlcnlQYXJhbXNUb1VybChxdWVyeVBhcmFtcykpKTtcbiAgICB9XG59XG4iXX0=
@@ -36,10 +36,10 @@ export class MngAuditService extends AMngBaseApiService {
36
36
  requestAuditModel() {
37
37
  return this.http.get(this.getUrl('/audit-models')).pipe(map(response => this.deserializeClassArray(response, MngGuiEntityModelDto)));
38
38
  }
39
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.1.7", ngImport: i0, type: MngAuditService, deps: [], target: i0.ɵɵFactoryTarget.Injectable }); }
40
- static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "16.1.7", ngImport: i0, type: MngAuditService }); }
39
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.6", ngImport: i0, type: MngAuditService, deps: [], target: i0.ɵɵFactoryTarget.Injectable }); }
40
+ static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "16.2.6", ngImport: i0, type: MngAuditService }); }
41
41
  }
42
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.1.7", ngImport: i0, type: MngAuditService, decorators: [{
42
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.6", ngImport: i0, type: MngAuditService, decorators: [{
43
43
  type: Injectable
44
44
  }], ctorParameters: function () { return []; } });
45
45
  //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYXVkaXQuc2VydmljZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3NyYy9saWIvYXBpL3NlcnZpY2VzL2F1ZGl0LnNlcnZpY2UudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFDLFVBQVUsRUFBRSxNQUFNLEVBQUMsTUFBTSxlQUFlLENBQUM7QUFFakQsT0FBTyxFQUFhLFdBQVcsRUFBQyxNQUFNLE1BQU0sQ0FBQztBQUM3QyxPQUFPLEVBQUMsR0FBRyxFQUFDLE1BQU0sZ0JBQWdCLENBQUM7QUFFbkMsT0FBTyxFQUFDLGtCQUFrQixFQUFFLHVCQUF1QixFQUFDLE1BQU0sd0JBQXdCLENBQUM7QUFFbkYsT0FBTyxFQUFDLDBCQUEwQixFQUFDLE1BQU0sbUNBQW1DLENBQUM7QUFDN0UsT0FBTyxFQUFDLG9CQUFvQixFQUFDLE1BQU0sMEJBQTBCLENBQUM7O0FBRzlELE1BQU0sT0FBTyxlQUFnQixTQUFRLGtCQUFrQjtJQVFuRDtRQUNJLEtBQUssRUFBRSxDQUFDO1FBUkssZUFBVSxHQUFHLENBQUMsQ0FBQztRQUVmLGlCQUFZLEdBQUcsTUFBTSxDQUFDLDBCQUEwQixDQUFDLENBQUM7UUFPL0QsSUFBSSxDQUFDLGFBQWEsR0FBRyx1QkFBdUIsQ0FBQyxHQUFHLEVBQUUsQ0FBQztJQUN2RCxDQUFDO0lBRVMsa0JBQWtCO1FBQ3hCLE9BQU8sSUFBSSxDQUFDLFlBQVksQ0FBQyxrQkFBa0IsSUFBSSxFQUFFLENBQUM7SUFDdEQsQ0FBQztJQUVTLFdBQVc7UUFDakIsT0FBTyxHQUFHLElBQUksQ0FBQyxhQUFhLENBQUMsY0FBYyxDQUFDLElBQUksQ0FBQyxZQUFZLENBQUMsb0JBQW9CLENBQUMsRUFBRSxDQUFDO0lBQzFGLENBQUM7SUFFRCxJQUFXLFNBQVM7UUFDaEIsSUFBSSxDQUFDLElBQUksQ0FBQyxXQUFXLEVBQUU7WUFDbkIsSUFBSSxDQUFDLFdBQVcsR0FBRyxJQUFJLENBQUMsZUFBZSxFQUFFLENBQUMsSUFBSSxDQUFDLFdBQVcsQ0FBQyxJQUFJLENBQUMsVUFBVSxDQUFDLENBQUMsQ0FBQztTQUNoRjtRQUNELE9BQU8sSUFBSSxDQUFDLFdBQVcsQ0FBQztJQUM1QixDQUFDO0lBRUQsSUFBVyxXQUFXO1FBQ2xCLElBQUksQ0FBQyxJQUFJLENBQUMsYUFBYSxFQUFFO1lBQ3JCLElBQUksQ0FBQyxhQUFhLEdBQUcsSUFBSSxDQUFDLGlCQUFpQixFQUFFLENBQUMsSUFBSSxDQUFDLFdBQVcsQ0FBQyxJQUFJLENBQUMsVUFBVSxDQUFDLENBQUMsQ0FBQztTQUNwRjtRQUNELE9BQU8sSUFBSSxDQUFDLGFBQWEsQ0FBQztJQUM5QixDQUFDO0lBRU8sZUFBZTtRQUNuQixPQUFPLElBQUksQ0FBQyxJQUFJLENBQUMsR0FBRyxDQUFDLElBQUksQ0FBQyxNQUFNLENBQUMsWUFBWSxDQUFDLENBQUMsQ0FBQztJQUNwRCxDQUFDO0lBRU8saUJBQWlCO1FBQ3JCLE9BQU8sSUFBSSxDQUFDLElBQUksQ0FBQyxHQUFHLENBQUMsSUFBSSxDQUFDLE1BQU0sQ0FBQyxlQUFlLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxHQUFHLENBQUMsUUFBUSxDQUFDLEVBQUUsQ0FBQyxJQUFJLENBQUMscUJBQXFCLENBQUMsUUFBUSxFQUFFLG9CQUFvQixDQUFDLENBQUMsQ0FBQyxDQUFDO0lBQ3pJLENBQUM7OEdBekNRLGVBQWU7a0hBQWYsZUFBZTs7MkZBQWYsZUFBZTtrQkFEM0IsVUFBVSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7SW5qZWN0YWJsZSwgaW5qZWN0fSBmcm9tICdAYW5ndWxhci9jb3JlJztcblxuaW1wb3J0IHtPYnNlcnZhYmxlLCBzaGFyZVJlcGxheX0gZnJvbSAncnhqcyc7XG5pbXBvcnQge21hcH0gZnJvbSAncnhqcy9vcGVyYXRvcnMnO1xuXG5pbXBvcnQge0FNbmdCYXNlQXBpU2VydmljZSwgTW5nQ29uZmlndXJhdGlvblNlcnZpY2V9IGZyb20gJ0BtZWRpdXNpbmMvbW5nLWNvbW1vbnMnO1xuXG5pbXBvcnQge01OR19BVURJVF9NT0RVTEVfQ09ORklHX0lUfSBmcm9tICcuLi8uLi9zZXJ2aWNlL21vZHVsZS1jb25maWcudG9rZW4nO1xuaW1wb3J0IHtNbmdHdWlFbnRpdHlNb2RlbER0b30gZnJvbSAnLi4vbW9kZWxzL2d1aUVudGl0eU1vZGVsJztcblxuQEluamVjdGFibGUoKVxuZXhwb3J0IGNsYXNzIE1uZ0F1ZGl0U2VydmljZSBleHRlbmRzIEFNbmdCYXNlQXBpU2VydmljZSB7XG4gICAgcHJpdmF0ZSByZWFkb25seSBDQUNIRV9TSVpFID0gMTtcbiAgICBwcml2YXRlIHJlYWRvbmx5IGNvbmZpZ1NlcnZpY2U6IE1uZ0NvbmZpZ3VyYXRpb25TZXJ2aWNlO1xuICAgIHByaXZhdGUgcmVhZG9ubHkgbW9kdWxlQ29uZmlnID0gaW5qZWN0KE1OR19BVURJVF9NT0RVTEVfQ09ORklHX0lUKTtcblxuICAgIHByaXZhdGUgcmV2TW9kZWxPYnM/OiBPYnNlcnZhYmxlPE1uZ0d1aUVudGl0eU1vZGVsRHRvPjtcbiAgICBwcml2YXRlIGF1ZGl0TW9kZWxPYnM/OiBPYnNlcnZhYmxlPEFycmF5PE1uZ0d1aUVudGl0eU1vZGVsRHRvPj47XG5cbiAgICBjb25zdHJ1Y3RvcigpIHtcbiAgICAgICAgc3VwZXIoKTtcbiAgICAgICAgdGhpcy5jb25maWdTZXJ2aWNlID0gTW5nQ29uZmlndXJhdGlvblNlcnZpY2UuZ2V0KCk7XG4gICAgfVxuXG4gICAgcHJvdGVjdGVkIGdldFNlcnZpY2VCYXNlUGF0aCgpOiBzdHJpbmcgfCBudWxsIHtcbiAgICAgICAgcmV0dXJuIHRoaXMubW9kdWxlQ29uZmlnLmFwaVNlcnZpY2VCYXNlUGF0aCA/PyAnJztcbiAgICB9XG5cbiAgICBwcm90ZWN0ZWQgZ2V0QmFzZVBhdGgoKTogc3RyaW5nIHtcbiAgICAgICAgcmV0dXJuIGAke3RoaXMuY29uZmlnU2VydmljZS5nZXRDb25maWdWYWx1ZSh0aGlzLm1vZHVsZUNvbmZpZy5hcGlCYXNlUGF0aENvbmZpZ0tleSl9YDtcbiAgICB9XG5cbiAgICBwdWJsaWMgZ2V0IHJldk1vZGVsJCgpIHtcbiAgICAgICAgaWYgKCF0aGlzLnJldk1vZGVsT2JzKSB7XG4gICAgICAgICAgICB0aGlzLnJldk1vZGVsT2JzID0gdGhpcy5yZXF1ZXN0UmV2TW9kZWwoKS5waXBlKHNoYXJlUmVwbGF5KHRoaXMuQ0FDSEVfU0laRSkpO1xuICAgICAgICB9XG4gICAgICAgIHJldHVybiB0aGlzLnJldk1vZGVsT2JzO1xuICAgIH1cblxuICAgIHB1YmxpYyBnZXQgYXVkaXRNb2RlbCQoKSB7XG4gICAgICAgIGlmICghdGhpcy5hdWRpdE1vZGVsT2JzKSB7XG4gICAgICAgICAgICB0aGlzLmF1ZGl0TW9kZWxPYnMgPSB0aGlzLnJlcXVlc3RBdWRpdE1vZGVsKCkucGlwZShzaGFyZVJlcGxheSh0aGlzLkNBQ0hFX1NJWkUpKTtcbiAgICAgICAgfVxuICAgICAgICByZXR1cm4gdGhpcy5hdWRpdE1vZGVsT2JzO1xuICAgIH1cblxuICAgIHByaXZhdGUgcmVxdWVzdFJldk1vZGVsKCk6IE9ic2VydmFibGU8TW5nR3VpRW50aXR5TW9kZWxEdG8+IHtcbiAgICAgICAgcmV0dXJuIHRoaXMuaHR0cC5nZXQodGhpcy5nZXRVcmwoJy9yZXYtbW9kZWwnKSk7XG4gICAgfVxuXG4gICAgcHJpdmF0ZSByZXF1ZXN0QXVkaXRNb2RlbCgpOiBPYnNlcnZhYmxlPEFycmF5PE1uZ0d1aUVudGl0eU1vZGVsRHRvPj4ge1xuICAgICAgICByZXR1cm4gdGhpcy5odHRwLmdldCh0aGlzLmdldFVybCgnL2F1ZGl0LW1vZGVscycpKS5waXBlKG1hcChyZXNwb25zZSA9PiB0aGlzLmRlc2VyaWFsaXplQ2xhc3NBcnJheShyZXNwb25zZSwgTW5nR3VpRW50aXR5TW9kZWxEdG8pKSk7XG4gICAgfVxufVxuIl19
@@ -6,7 +6,6 @@ import { AMngFormlyCustomFieldComponent, MngInternalError, MngTableComponent, Ta
6
6
  import { MngRevisionTypeDto } from '../../api/models/revisionType';
7
7
  import { MngAuditService } from '../../api/services/audit.service';
8
8
  import { MngEntityRevisionChangeState } from '../../models/entity-revision-change-state.model';
9
- import { MngEntityRevisionChanges } from '../../models/entity-revision-changes.model';
10
9
  import { AuditUtil } from '../../utils/audit.util';
11
10
  import * as i0 from "@angular/core";
12
11
  export class EntityChangesFieldComponent extends AMngFormlyCustomFieldComponent {
@@ -26,40 +25,7 @@ export class EntityChangesFieldComponent extends AMngFormlyCustomFieldComponent
26
25
  next: model => {
27
26
  this.auditModel = model;
28
27
  if (this.fieldValue) {
29
- for (const key of Object.keys(this.fieldValue)) {
30
- const ec = new MngEntityRevisionChanges();
31
- ec.entityType = key;
32
- ec.items = [];
33
- for (const change of this.fieldValue[key]) {
34
- if (change.revType === MngRevisionTypeDto.Add && change.entityNewState) {
35
- const item = new MngEntityRevisionChangeState();
36
- item.revType = change.revType;
37
- item.color = 'green';
38
- Object.entries(change.entityNewState).forEach(([key, value]) => (item[key] = value));
39
- ec.items.push(item);
40
- }
41
- else if (change.revType === MngRevisionTypeDto.Del && change.entityOldState) {
42
- const item = new MngEntityRevisionChangeState();
43
- item.revType = change.revType;
44
- item.color = 'red';
45
- Object.entries(change.entityOldState).forEach(([key, value]) => (item[key] = value));
46
- ec.items.push(item);
47
- }
48
- else if (change.revType === MngRevisionTypeDto.Mod && change.entityOldState && change.entityNewState) {
49
- const itemOld = new MngEntityRevisionChangeState();
50
- itemOld.revType = change.revType;
51
- itemOld.color = 'red';
52
- Object.entries(change.entityOldState).forEach(([key, value]) => (itemOld[key] = value));
53
- const itemNew = new MngEntityRevisionChangeState();
54
- itemNew.revType = change.revType;
55
- itemNew.color = 'green';
56
- Object.entries(change.entityNewState).forEach(([key, value]) => (itemNew[key] = value));
57
- ec.items.push(itemOld);
58
- ec.items.push(itemNew);
59
- }
60
- }
61
- this.entityChanges.push(ec);
62
- }
28
+ this.entityChanges = AuditUtil.mapItemsToEntityChangesArray(this.fieldValue);
63
29
  this.modelFetched.next(true);
64
30
  }
65
31
  },
@@ -98,13 +64,13 @@ export class EntityChangesFieldComponent extends AMngFormlyCustomFieldComponent
98
64
  desc.withDataKey(`EntityChangeField_${entityChanges.entityType ?? 'default'}`);
99
65
  return desc;
100
66
  }
101
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.1.7", ngImport: i0, type: EntityChangesFieldComponent, deps: null, target: i0.ɵɵFactoryTarget.Component }); }
102
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.1.7", type: EntityChangesFieldComponent, isStandalone: true, selector: "mng-entity-changes-field", inputs: { injector: "injector" }, usesInheritance: true, ngImport: i0, template: "<div *ngIf=\"modelFetched | async; else loading\">\n <mng-table *ngFor=\"let ec of entityChanges\" [items]=\"ec.items\" [descriptor]=\"createDescriptor(ec)\"></mng-table>\n</div>\n<ng-template #loading>\n <div class=\"text-center\">\n <i class=\"pi pi-spin pi-spinner\" style=\"font-size: 2rem\"></i>\n </div>\n</ng-template>\n", styles: ["::ng-deep tr.audit-row-deleted{background:hsla(3,100%,60%,.1)!important}::ng-deep tr.audit-row-deleted .audit-cell{background:hsla(3,90%,63%,.3)!important}::ng-deep tr.audit-row-added{background-color:#1bc5621a!important}::ng-deep tr.audit-row-added .audit-cell{background:hsla(145,76%,44%,.3)!important}\n"], dependencies: [{ kind: "directive", type: NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "component", type: MngTableComponent, selector: "mng-table", inputs: ["descriptor", "items", "queryResult", "loading", "dataProvider", "useQueryParams", "selectionMode", "selectionEnabled", "actions", "isColumnClickable", "viewContainer", "captionComponent", "columnActionComponent", "columnActionMinWidth", "globalFilterFields"], outputs: ["tableLoad", "cellClick", "selectionChange", "captionComponentInstance", "columnActionComponentInstance"] }, { kind: "directive", type: NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "pipe", type: AsyncPipe, name: "async" }] }); }
67
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.6", ngImport: i0, type: EntityChangesFieldComponent, deps: null, target: i0.ɵɵFactoryTarget.Component }); }
68
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.2.6", type: EntityChangesFieldComponent, isStandalone: true, selector: "mng-entity-changes-field", inputs: { injector: "injector" }, usesInheritance: true, ngImport: i0, template: "<div *ngIf=\"modelFetched | async; else loading\">\n <mng-table *ngFor=\"let ec of entityChanges\" [items]=\"ec.items\" [descriptor]=\"createDescriptor(ec)\"></mng-table>\n</div>\n<ng-template #loading>\n <div class=\"text-center\">\n <i class=\"pi pi-spin pi-spinner\" style=\"font-size: 2rem\"></i>\n </div>\n</ng-template>\n", styles: ["::ng-deep tr.audit-row-deleted{background:hsla(3,100%,60%,.1)!important}::ng-deep tr.audit-row-deleted .audit-cell{background:hsla(3,90%,63%,.3)!important}::ng-deep tr.audit-row-added{background-color:#1bc5621a!important}::ng-deep tr.audit-row-added .audit-cell{background:hsla(145,76%,44%,.3)!important}\n"], dependencies: [{ kind: "directive", type: NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "component", type: MngTableComponent, selector: "mng-table", inputs: ["descriptor", "items", "queryResult", "loading", "dataProvider", "useQueryParams", "selectionMode", "selectionEnabled", "actions", "isColumnClickable", "viewContainer", "captionComponent", "columnActionComponent", "columnActionMinWidth", "globalFilterFields"], outputs: ["tableLoad", "cellClick", "selectionChange", "captionComponentInstance", "columnActionComponentInstance"] }, { kind: "directive", type: NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "pipe", type: AsyncPipe, name: "async" }] }); }
103
69
  }
104
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.1.7", ngImport: i0, type: EntityChangesFieldComponent, decorators: [{
70
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.6", ngImport: i0, type: EntityChangesFieldComponent, decorators: [{
105
71
  type: Component,
106
72
  args: [{ standalone: true, selector: 'mng-entity-changes-field', imports: [NgForOf, MngTableComponent, NgIf, AsyncPipe], template: "<div *ngIf=\"modelFetched | async; else loading\">\n <mng-table *ngFor=\"let ec of entityChanges\" [items]=\"ec.items\" [descriptor]=\"createDescriptor(ec)\"></mng-table>\n</div>\n<ng-template #loading>\n <div class=\"text-center\">\n <i class=\"pi pi-spin pi-spinner\" style=\"font-size: 2rem\"></i>\n </div>\n</ng-template>\n", styles: ["::ng-deep tr.audit-row-deleted{background:hsla(3,100%,60%,.1)!important}::ng-deep tr.audit-row-deleted .audit-cell{background:hsla(3,90%,63%,.3)!important}::ng-deep tr.audit-row-added{background-color:#1bc5621a!important}::ng-deep tr.audit-row-added .audit-cell{background:hsla(145,76%,44%,.3)!important}\n"] }]
107
73
  }], propDecorators: { injector: [{
108
74
  type: Input
109
75
  }] } });
110
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZW50aXR5LWNoYW5nZXMtZmllbGQuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vc3JjL2xpYi9jb21wb25lbnRzL2VudGl0eS1jaGFuZ2VzLWZpZWxkL2VudGl0eS1jaGFuZ2VzLWZpZWxkLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uL3NyYy9saWIvY29tcG9uZW50cy9lbnRpdHktY2hhbmdlcy1maWVsZC9lbnRpdHktY2hhbmdlcy1maWVsZC5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUMsU0FBUyxFQUFFLE9BQU8sRUFBRSxJQUFJLEVBQUMsTUFBTSxpQkFBaUIsQ0FBQztBQUN6RCxPQUFPLEVBQUMsU0FBUyxFQUFFLFVBQVUsRUFBRSxRQUFRLEVBQUUsS0FBSyxFQUFVLE1BQU0sRUFBQyxNQUFNLGVBQWUsQ0FBQztBQUNyRixPQUFPLEVBQUMsa0JBQWtCLEVBQUMsTUFBTSw0QkFBNEIsQ0FBQztBQUU5RCxPQUFPLEVBQUMsZUFBZSxFQUFDLE1BQU0sTUFBTSxDQUFDO0FBRXJDLE9BQU8sRUFBQyw4QkFBOEIsRUFBRSxnQkFBZ0IsRUFBRSxpQkFBaUIsRUFBRSxlQUFlLEVBQUUsdUJBQXVCLEVBQUMsTUFBTSx3QkFBd0IsQ0FBQztBQUlySixPQUFPLEVBQUMsa0JBQWtCLEVBQUMsTUFBTSwrQkFBK0IsQ0FBQztBQUNqRSxPQUFPLEVBQUMsZUFBZSxFQUFDLE1BQU0sa0NBQWtDLENBQUM7QUFDakUsT0FBTyxFQUFDLDRCQUE0QixFQUFDLE1BQU0saURBQWlELENBQUM7QUFDN0YsT0FBTyxFQUFDLHdCQUF3QixFQUFDLE1BQU0sNENBQTRDLENBQUM7QUFDcEYsT0FBTyxFQUFDLFNBQVMsRUFBQyxNQUFNLHdCQUF3QixDQUFDOztBQVNqRCxNQUFNLE9BQU8sMkJBQTRCLFNBQVEsOEJBQThCO0lBUC9FOztRQVVZLGVBQVUsR0FBRyxNQUFNLENBQUMs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Zn0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uJztcbmltcG9ydCB7Q29tcG9uZW50LCBEZXN0cm95UmVmLCBJbmplY3RvciwgSW5wdXQsIE9uSW5pdCwgaW5qZWN0fSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7dGFrZVVudGlsRGVzdHJveWVkfSBmcm9tICdAYW5ndWxhci9jb3JlL3J4anMtaW50ZXJvcCc7XG5cbmltcG9ydCB7QmVoYXZpb3JTdWJqZWN0fSBmcm9tICdyeGpzJztcblxuaW1wb3J0IHtBTW5nRm9ybWx5Q3VzdG9tRmllbGRDb21wb25lbnQsIE1uZ0ludGVybmFsRXJyb3IsIE1uZ1RhYmxlQ29tcG9uZW50LCBUYWJsZURlc2NyaXB0b3IsIFRhYmxlUGFnaW5hdGlvbk1vZGVFbnVtfSBmcm9tICdAbWVkaXVzaW5jL21uZy1jb21tb25zJztcblxuaW1wb3J0IHtNbmdFbnRpdHlDaGFuZ2VEdG99IGZyb20gJy4uLy4uL2FwaS9tb2RlbHMvZW50aXR5Q2hhbmdlJztcbmltcG9ydCB7TW5nR3VpRW50aXR5TW9kZWxEdG99IGZyb20gJy4uLy4uL2FwaS9tb2RlbHMvZ3VpRW50aXR5TW9kZWwnO1xuaW1wb3J0IHtNbmdSZXZpc2lvblR5cGVEdG99IGZyb20gJy4uLy4uL2FwaS9tb2RlbHMvcmV2aXNpb25UeXBlJztcbmltcG9ydCB7TW5nQXVkaXRTZXJ2aWNlfSBmcm9tICcuLi8uLi9hcGkvc2VydmljZXMvYXVkaXQuc2VydmljZSc7XG5pbXBvcnQge01uZ0VudGl0eVJldmlzaW9uQ2hhbmdlU3RhdGV9IGZyb20gJy4uLy4uL21vZGVscy9lbnRpdHktcmV2aXNpb24tY2hhbmdlLXN0YXRlLm1vZGVsJztcbmltcG9ydCB7TW5nRW50aXR5UmV2aXNpb25DaGFuZ2VzfSBmcm9tICcuLi8uLi9tb2RlbHMvZW50aXR5LXJldmlzaW9uLWNoYW5nZXMubW9kZWwnO1xuaW1wb3J0IHtBdWRpdFV0aWx9IGZyb20gJy4uLy4uL3V0aWxzL2F1ZGl0LnV0aWwnO1xuXG5AQ29tcG9uZW50KHtcbiAgICBzdGFuZGFsb25lOiB0cnVlLFxuICAgIHNlbGVjdG9yOiAnbW5nLWVudGl0eS1jaGFuZ2VzLWZpZWxkJyxcbiAgICBpbXBvcnRzOiBbTmdGb3JPZiwgTW5nVGFibGVDb21wb25lbnQsIE5nSWYsIEFzeW5jUGlwZV0sXG4gICAgc3R5bGVVcmxzOiBbJ2VudGl0eS1jaGFuZ2VzLWZpZWxkLmNvbXBvbmVudC5zY3NzJ10sXG4gICAgdGVtcGxhdGVVcmw6ICdlbnRpdHktY2hhbmdlcy1maWVsZC5jb21wb25lbnQuaHRtbCdcbn0pXG5leHBvcnQgY2xhc3MgRW50aXR5Q2hhbmdlc0ZpZWxkQ29tcG9uZW50IGV4dGVuZHMgQU1uZ0Zvcm1seUN1c3RvbUZpZWxkQ29tcG9uZW50IGltcGxlbWVudHMgT25Jbml0IHtcbiAgICBASW5wdXQoKSBwdWJsaWMgaW5qZWN0b3I/OiBJbmplY3RvcjtcblxuICAgIHByaXZhdGUgZGVzdHJveVJlZiA9IGluamVjdChEZXN0cm95UmVmKTtcblxuICAgIHB1YmxpYyBlbnRpdHlDaGFuZ2VzOiBNbmdFbnRpdHlSZXZpc2lvbkNoYW5nZXNbXSA9IFtdO1xuICAgIHB1YmxpYyBtb2RlbEZldGNoZWQgPSBuZXcgQmVoYXZpb3JTdWJqZWN0KGZhbHNlKTtcblxuICAgIHByaXZhdGUgYXVkaXRNb2RlbDogTW5nR3VpRW50aXR5TW9kZWxEdG9bXSA9IFtdO1xuICAgIHByaXZhdGUgZmllbGRWYWx1ZT86IHtba2V5OiBzdHJpbmddOiBBcnJheTxNbmdFbnRpdHlDaGFuZ2VEdG8+fTtcblxuICAgIG5nT25Jbml0KCk6IHZvaWQge1xuICAgICAgICB0aGlzLmZpZWxkVmFsdWUgPSB0aGlzLmZvcm1Db250cm9sLnZhbHVlIGFzIHtba2V5OiBzdHJpbmddOiBBcnJheTxNbmdFbnRpdHlDaGFuZ2VEdG8+fTtcbiAgICAgICAgdGhpcy5pbmplY3RvclxuICAgICAgICAgICAgPy5nZXQoTW5nQXVkaXRTZXJ2aWNlLCB1bmRlZmluZWQsIHtvcHRpb25hbDogdHJ1ZX0pXG4gICAgICAgICAgICA/LmF1ZGl0TW9kZWwkLnBpcGUodGFrZVVudGlsRGVzdHJveWVkKHRoaXMuZGVzdHJveVJlZikpXG4gICAgICAgICAgICAuc3Vic2NyaWJlKHtcbiAgICAgICAgICAgICAgICBuZXh0OiBtb2RlbCA9PiB7XG4gICAgICAgICAgICAgICAgICAgIHRoaXMuYXVkaXRNb2RlbCA9IG1vZGVsO1xuXG4gICAgICAgICAgICAgICAgICAgIGlmICh0aGlzLmZpZWxkVmFsdWUpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIGZvciAoY29uc3Qga2V5IG9mIE9iamVjdC5rZXlzKHRoaXMuZmllbGRWYWx1ZSkpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb25zdCBlYyA9IG5ldyBNbmdFbnRpdHlSZXZpc2lvbkNoYW5nZXMoKTtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBlYy5lbnRpdHlUeXBlID0ga2V5O1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGVjLml0ZW1zID0gW107XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgZm9yIChjb25zdCBjaGFuZ2Ugb2YgdGhpcy5maWVsZFZhbHVlW2tleV0pIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaWYgKGNoYW5nZS5yZXZUeXBlID09PSBNbmdSZXZpc2lvblR5cGVEdG8uQWRkICYmIGNoYW5nZS5lbnRpdHlOZXdTdGF0ZSkge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY29uc3QgaXRlbSA9IG5ldyBNbmdFbnRpdHlSZXZpc2lvbkNoYW5nZVN0YXRlKCk7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpdGVtLnJldlR5cGUgPSBjaGFuZ2UucmV2VHlwZTtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGl0ZW0uY29sb3IgPSAnZ3JlZW4nO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgT2JqZWN0LmVudHJpZXMoY2hhbmdlLmVudGl0eU5ld1N0YXRlKS5mb3JFYWNoKChba2V5LCB2YWx1ZV0pID0+IChpdGVtW2tleV0gPSB2YWx1ZSkpO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZWMuaXRlbXMucHVzaChpdGVtKTtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfSBlbHNlIGlmIChjaGFuZ2UucmV2VHlwZSA9PT0gTW5nUmV2aXNpb25UeXBlRHRvLkRlbCAmJiBjaGFuZ2UuZW50aXR5T2xkU3RhdGUpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IGl0ZW0gPSBuZXcgTW5nRW50aXR5UmV2aXNpb25DaGFuZ2VTdGF0ZSgpO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaXRlbS5yZXZUeXBlID0gY2hhbmdlLnJldlR5cGU7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpdGVtLmNvbG9yID0gJ3JlZCc7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBPYmplY3QuZW50cmllcyhjaGFuZ2UuZW50aXR5T2xkU3RhdGUpLmZvckVhY2goKFtrZXksIHZhbHVlXSkgPT4gKGl0ZW1ba2V5XSA9IHZhbHVlKSk7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBlYy5pdGVtcy5wdXNoKGl0ZW0pO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9IGVsc2UgaWYgKGNoYW5nZS5yZXZUeXBlID09PSBNbmdSZXZpc2lvblR5cGVEdG8uTW9kICYmIGNoYW5nZS5lbnRpdHlPbGRTdGF0ZSAmJiBjaGFuZ2UuZW50aXR5TmV3U3RhdGUpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IGl0ZW1PbGQgPSBuZXcgTW5nRW50aXR5UmV2aXNpb25DaGFuZ2VTdGF0ZSgpO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaXRlbU9sZC5yZXZUeXBlID0gY2hhbmdlLnJldlR5cGU7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpdGVtT2xkLmNvbG9yID0gJ3JlZCc7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBPYmplY3QuZW50cmllcyhjaGFuZ2UuZW50aXR5T2xkU3RhdGUpLmZvckVhY2goKFtrZXksIHZhbHVlXSkgPT4gKGl0ZW1PbGRba2V5XSA9IHZhbHVlKSk7XG5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IGl0ZW1OZXcgPSBuZXcgTW5nRW50aXR5UmV2aXNpb25DaGFuZ2VTdGF0ZSgpO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaXRlbU5ldy5yZXZUeXBlID0gY2hhbmdlLnJldlR5cGU7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpdGVtTmV3LmNvbG9yID0gJ2dyZWVuJztcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIE9iamVjdC5lbnRyaWVzKGNoYW5nZS5lbnRpdHlOZXdTdGF0ZSkuZm9yRWFjaCgoW2tleSwgdmFsdWVdKSA9PiAoaXRlbU5ld1trZXldID0gdmFsdWUpKTtcblxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZWMuaXRlbXMucHVzaChpdGVtT2xkKTtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGVjLml0ZW1zLnB1c2goaXRlbU5ldyk7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgdGhpcy5lbnRpdHlDaGFuZ2VzLnB1c2goZWMpO1xuICAgICAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICAgICAgdGhpcy5tb2RlbEZldGNoZWQubmV4dCh0cnVlKTtcbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgICAgZXJyb3I6IGVyciA9PiB7XG4gICAgICAgICAgICAgICAgICAgIHRocm93IG5ldyBNbmdJbnRlcm5hbEVycm9yKCdFcnJvciB3aGlsZSB0cnlpbmcgdG8gZmV0Y2ggYXVkaXQgbW9kZWwgZnJvbSBhdWRpdCBzZXJ2aWNlJywge25hbWU6ICdFbnRpdHlDaGFuZ2VzRmllbGRDb21wb25lbnRFcnJvcicsIGNhdXNlOiBlcnJ9KTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9KTtcbiAgICB9XG5cbiAgICBwdWJsaWMgY3JlYXRlRGVzY3JpcHRvcihlbnRpdHlDaGFuZ2VzOiBNbmdFbnRpdHlSZXZpc2lvbkNoYW5nZXMpIHtcbiAgICAgICAgY29uc3QgY2hhbmdlZEZpZWxkczogc3RyaW5nW10gPSBbXTtcbiAgICAgICAgaWYgKGVudGl0eUNoYW5nZXMuaXRlbXMgJiYgZW50aXR5Q2hhbmdlcy5pdGVtc1swXS5yZXZUeXBlID09PSBNbmdSZXZpc2lvblR5cGVEdG8uTW9kKSB7XG4gICAgICAgICAgICBmb3IgKGNvbnN0IGtleSBpbiBlbnRpdHlDaGFuZ2VzLml0ZW1zWzBdKSB7XG4gICAgICAgICAgICAgICAgaWYgKGVudGl0eUNoYW5nZXMuaXRlbXNbMF1ba2V5XSAhPT0gZW50aXR5Q2hhbmdlcy5pdGVtc1sxXVtrZXldKSB7XG4gICAgICAgICAgICAgICAgICAgIGNoYW5nZWRGaWVsZHMucHVzaChrZXkpO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIGNvbnN0IGd1aUVudGl0eU1vZGVsID0gdGhpcy5hdWRpdE1vZGVsLmZpbHRlcihtID0+IG0uZW50aXR5TmFtZSA9PT0gZW50aXR5Q2hhbmdlcy5lbnRpdHlUeXBlKVswXTtcblxuICAgICAgICBjb25zdCBkZXNjID0gbmV3IFRhYmxlRGVzY3JpcHRvcihNbmdFbnRpdHlSZXZpc2lvbkNoYW5nZVN0YXRlLCB1bmRlZmluZWQsIHVuZGVmaW5lZCwgZ3VpRW50aXR5TW9kZWwuZW50aXR5TmFtZSkud2l0aENsYXNzTmFtZSgncHktMicpO1xuICAgICAgICBpZiAoZ3VpRW50aXR5TW9kZWwuZW50aXR5TmFtZSkge1xuICAgICAgICAgICAgZGVzYy53aXRoVGl0bGUoZ3VpRW50aXR5TW9kZWwuZW50aXR5TmFtZSk7XG4gICAgICAgIH1cblxuICAgICAgICBkZXNjLmFkZENvbHVtbigncmV2VHlwZScpLndpdGhUaXRsZSgnTW5nRW50aXR5UmV2aXNpb25DaGFuZ2VTdGF0ZS5wcm9wZXJ0aWVzLnJldlR5cGUnKS5hc0VudW0oTW5nUmV2aXNpb25UeXBlRHRvKTtcblxuICAgICAgICBpZiAoZ3VpRW50aXR5TW9kZWwucHJvcGVydGllcykge1xuICAgICAgICAgICAgQXVkaXRVdGlsLmFkZENvbHVtbnNGcm9tTW9kZWwoZGVzYywgZ3VpRW50aXR5TW9kZWwucHJvcGVydGllcywgdW5kZWZpbmVkLCBmYWxzZSwgZmFsc2UpO1xuICAgICAgICB9XG5cbiAgICAgICAgZGVzYy53aXRoUm93Q2xhc3NOYW1lKHVuZGVmaW5lZCwgKF8sIGl0ZW0pID0+IChpdGVtID8gKGl0ZW0uY29sb3IgPT09ICdncmVlbicgPyAnYXVkaXQtcm93LWFkZGVkJyA6ICdhdWRpdC1yb3ctZGVsZXRlZCcpIDogJycpKTtcbiAgICAgICAgZGVzYy5jb2x1bW5zLmZvckVhY2goY29sID0+IHtcbiAgICAgICAgICAgIGlmIChjaGFuZ2VkRmllbGRzLmxlbmd0aCA+IDAgJiYgY2hhbmdlZEZpZWxkcy5zb21lKHZhbCA9PiBjb2wucHJvcGVydHkgPT09IHZhbCkpIHtcbiAgICAgICAgICAgICAgICBjb2wud2l0aENsYXNzTmFtZSgnYXVkaXQtY2VsbCcpO1xuICAgICAgICAgICAgfVxuICAgICAgICB9KTtcblxuICAgICAgICBkZXNjLndpdGhQYWdpbmF0aW9uTW9kZShUYWJsZVBhZ2luYXRpb25Nb2RlRW51bS5QYWdpbmF0aW9uKTtcbiAgICAgICAgZGVzYy53aXRoQ3VycmVudENvbHVtbnNSZW9yZGVyYWJsZSgpO1xuICAgICAgICBkZXNjLndpdGhDdXJyZW50Q29sdW1uc1RvZ2dsZWFibGUoKTtcbiAgICAgICAgZGVzYy53aXRoRGF0YUtleShgRW50aXR5Q2hhbmdlRmllbGRfJHtlbnRpdHlDaGFuZ2VzLmVudGl0eVR5cGUgPz8gJ2RlZmF1bHQnfWApO1xuXG4gICAgICAgIHJldHVybiBkZXNjO1xuICAgIH1cbn1cbiIsIjxkaXYgKm5nSWY9XCJtb2RlbEZldGNoZWQgfCBhc3luYzsgZWxzZSBsb2FkaW5nXCI+XG4gICAgPG1uZy10YWJsZSAqbmdGb3I9XCJsZXQgZWMgb2YgZW50aXR5Q2hhbmdlc1wiIFtpdGVtc109XCJlYy5pdGVtc1wiIFtkZXNjcmlwdG9yXT1cImNyZWF0ZURlc2NyaXB0b3IoZWMpXCI+PC9tbmctdGFibGU+XG48L2Rpdj5cbjxuZy10ZW1wbGF0ZSAjbG9hZGluZz5cbiAgICA8ZGl2IGNsYXNzPVwidGV4dC1jZW50ZXJcIj5cbiAgICAgICAgPGkgY2xhc3M9XCJwaSBwaS1zcGluIHBpLXNwaW5uZXJcIiBzdHlsZT1cImZvbnQtc2l6ZTogMnJlbVwiPjwvaT5cbiAgICA8L2Rpdj5cbjwvbmctdGVtcGxhdGU+XG4iXX0=
76
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZW50aXR5LWNoYW5nZXMtZmllbGQuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vc3JjL2xpYi9jb21wb25lbnRzL2VudGl0eS1jaGFuZ2VzLWZpZWxkL2VudGl0eS1jaGFuZ2VzLWZpZWxkLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uL3NyYy9saWIvY29tcG9uZW50cy9lbnRpdHktY2hhbmdlcy1maWVsZC9lbnRpdHktY2hhbmdlcy1maWVsZC5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUMsU0FBUyxFQUFFLE9BQU8sRUFBRSxJQUFJLEVBQUMsTUFBTSxpQkFBaUIsQ0FBQztBQUN6RCxPQUFPLEVBQUMsU0FBUyxFQUFFLFVBQVUsRUFBRSxRQUFRLEVBQUUsS0FBSyxFQUFVLE1BQU0sRUFBQyxNQUFNLGVBQWUsQ0FBQztBQUNyRixPQUFPLEVBQUMsa0JBQWtCLEVBQUMsTUFBTSw0QkFBNEIsQ0FBQztBQUU5RCxPQUFPLEVBQUMsZUFBZSxFQUFDLE1BQU0sTUFBTSxDQUFDO0FBRXJDLE9BQU8sRUFBQyw4QkFBOEIsRUFBRSxnQkFBZ0IsRUFBRSxpQkFBaUIsRUFBRSxlQUFlLEVBQUUsdUJBQXVCLEVBQUMsTUFBTSx3QkFBd0IsQ0FBQztBQUlySixPQUFPLEVBQUMsa0JBQWtCLEVBQUMsTUFBTSwrQkFBK0IsQ0FBQztBQUNqRSxPQUFPLEVBQUMsZUFBZSxFQUFDLE1BQU0sa0NBQWtDLENBQUM7QUFDakUsT0FBTyxFQUFDLDRCQUE0QixFQUFDLE1BQU0saURBQWlELENBQUM7QUFFN0YsT0FBTyxFQUFDLFNBQVMsRUFBQyxNQUFNLHdCQUF3QixDQUFDOztBQVNqRCxNQUFNLE9BQU8sMkJBQTRCLFNBQVEsOEJBQThCO0lBUC9FOztRQVVZLGVBQVUsR0FBRyxNQUFNLENBQUMsVUFBVSxDQUFDLENBQUM7UUFFakMsa0JBQWEsR0FBK0IsRUFBRSxDQUFDO1FB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LENBQUMsQ0FBQyxpQkFBaUIsQ0FBQyxDQUFDLENBQUMsbUJBQW1CLENBQUMsQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQztRQUNoSSxJQUFJLENBQUMsT0FBTyxDQUFDLE9BQU8sQ0FBQyxHQUFHLENBQUMsRUFBRTtZQUN2QixJQUFJLGFBQWEsQ0FBQyxNQUFNLEdBQUcsQ0FBQyxJQUFJLGFBQWEsQ0FBQyxJQUFJLENBQUMsR0FBRyxDQUFDLEVBQUUsQ0FBQyxHQUFHLENBQUMsUUFBUSxLQUFLLEdBQUcsQ0FBQyxFQUFFO2dCQUM3RSxHQUFHLENBQUMsYUFBYSxDQUFDLFlBQVksQ0FBQyxDQUFDO2FBQ25DO1FBQ0wsQ0FBQyxDQUFDLENBQUM7UUFFSCxJQUFJLENBQUMsa0JBQWtCLENBQUMsdUJBQXVCLENBQUMsVUFBVSxDQUFDLENBQUM7UUFDNUQsSUFBSSxDQUFDLDZCQUE2QixFQUFFLENBQUM7UUFDckMsSUFBSSxDQUFDLDRCQUE0QixFQUFFLENBQUM7UUFDcEMsSUFBSSxDQUFDLFdBQVcsQ0FBQyxxQkFBcUIsYUFBYSxDQUFDLFVBQVUsSUFBSSxTQUFTLEVBQUUsQ0FBQyxDQUFDO1FBRS9FLE9BQU8sSUFBSSxDQUFDO0lBQ2hCLENBQUM7OEdBbEVRLDJCQUEyQjtrR0FBM0IsMkJBQTJCLDZJQ3ZCeEMseVZBUUEsNFdEV2MsT0FBTyxtSEFBRSxpQkFBaUIseWJBQUUsSUFBSSx3RkFBRSxTQUFTOzsyRkFJNUMsMkJBQTJCO2tCQVB2QyxTQUFTO2lDQUNNLElBQUksWUFDTiwwQkFBMEIsV0FDM0IsQ0FBQyxPQUFPLEVBQUUsaUJBQWlCLEVBQUUsSUFBSSxFQUFFLFNBQVMsQ0FBQzs4QkFLdEMsUUFBUTtzQkFBdkIsS0FBSyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7QXN5bmNQaXBlLCBOZ0Zvck9mLCBOZ0lmfSBmcm9tICdAYW5ndWxhci9jb21tb24nO1xuaW1wb3J0IHtDb21wb25lbnQsIERlc3Ryb3lSZWYsIEluamVjdG9yLCBJbnB1dCwgT25Jbml0LCBpbmplY3R9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHt0YWtlVW50aWxEZXN0cm95ZWR9IGZyb20gJ0Bhbmd1bGFyL2NvcmUvcnhqcy1pbnRlcm9wJztcblxuaW1wb3J0IHtCZWhhdmlvclN1YmplY3R9IGZyb20gJ3J4anMnO1xuXG5pbXBvcnQge0FNbmdGb3JtbHlDdXN0b21GaWVsZENvbXBvbmVudCwgTW5nSW50ZXJuYWxFcnJvciwgTW5nVGFibGVDb21wb25lbnQsIFRhYmxlRGVzY3JpcHRvciwgVGFibGVQYWdpbmF0aW9uTW9kZUVudW19IGZyb20gJ0BtZWRpdXNpbmMvbW5nLWNvbW1vbnMnO1xuXG5pbXBvcnQge01uZ0VudGl0eUNoYW5nZUR0b30gZnJvbSAnLi4vLi4vYXBpL21vZGVscy9lbnRpdHlDaGFuZ2UnO1xuaW1wb3J0IHtNbmdHdWlFbnRpdHlNb2RlbER0b30gZnJvbSAnLi4vLi4vYXBpL21vZGVscy9ndWlFbnRpdHlNb2RlbCc7XG5pbXBvcnQge01uZ1JldmlzaW9uVHlwZUR0b30gZnJvbSAnLi4vLi4vYXBpL21vZGVscy9yZXZpc2lvblR5cGUnO1xuaW1wb3J0IHtNbmdBdWRpdFNlcnZpY2V9IGZyb20gJy4uLy4uL2FwaS9zZXJ2aWNlcy9hdWRpdC5zZXJ2aWNlJztcbmltcG9ydCB7TW5nRW50aXR5UmV2aXNpb25DaGFuZ2VTdGF0ZX0gZnJvbSAnLi4vLi4vbW9kZWxzL2VudGl0eS1yZXZpc2lvbi1jaGFuZ2Utc3RhdGUubW9kZWwnO1xuaW1wb3J0IHtNbmdFbnRpdHlSZXZpc2lvbkNoYW5nZXN9IGZyb20gJy4uLy4uL21vZGVscy9lbnRpdHktcmV2aXNpb24tY2hhbmdlcy5tb2RlbCc7XG5pbXBvcnQge0F1ZGl0VXRpbH0gZnJvbSAnLi4vLi4vdXRpbHMvYXVkaXQudXRpbCc7XG5cbkBDb21wb25lbnQoe1xuICAgIHN0YW5kYWxvbmU6IHRydWUsXG4gICAgc2VsZWN0b3I6ICdtbmctZW50aXR5LWNoYW5nZXMtZmllbGQnLFxuICAgIGltcG9ydHM6IFtOZ0Zvck9mLCBNbmdUYWJsZUNvbXBvbmVudCwgTmdJZiwgQXN5bmNQaXBlXSxcbiAgICBzdHlsZVVybHM6IFsnZW50aXR5LWNoYW5nZXMtZmllbGQuY29tcG9uZW50LnNjc3MnXSxcbiAgICB0ZW1wbGF0ZVVybDogJ2VudGl0eS1jaGFuZ2VzLWZpZWxkLmNvbXBvbmVudC5odG1sJ1xufSlcbmV4cG9ydCBjbGFzcyBFbnRpdHlDaGFuZ2VzRmllbGRDb21wb25lbnQgZXh0ZW5kcyBBTW5nRm9ybWx5Q3VzdG9tRmllbGRDb21wb25lbnQgaW1wbGVtZW50cyBPbkluaXQge1xuICAgIEBJbnB1dCgpIHB1YmxpYyBpbmplY3Rvcj86IEluamVjdG9yO1xuXG4gICAgcHJpdmF0ZSBkZXN0cm95UmVmID0gaW5qZWN0KERlc3Ryb3lSZWYpO1xuXG4gICAgcHVibGljIGVudGl0eUNoYW5nZXM6IE1uZ0VudGl0eVJldmlzaW9uQ2hhbmdlc1tdID0gW107XG4gICAgcHVibGljIG1vZGVsRmV0Y2hlZCA9IG5ldyBCZWhhdmlvclN1YmplY3QoZmFsc2UpO1xuXG4gICAgcHJpdmF0ZSBhdWRpdE1vZGVsOiBNbmdHdWlFbnRpdHlNb2RlbER0b1tdID0gW107XG4gICAgcHJpdmF0ZSBmaWVsZFZhbHVlPzoge1trZXk6IHN0cmluZ106IEFycmF5PE1uZ0VudGl0eUNoYW5nZUR0bz59O1xuXG4gICAgbmdPbkluaXQoKTogdm9pZCB7XG4gICAgICAgIHRoaXMuZmllbGRWYWx1ZSA9IHRoaXMuZm9ybUNvbnRyb2wudmFsdWUgYXMge1trZXk6IHN0cmluZ106IEFycmF5PE1uZ0VudGl0eUNoYW5nZUR0bz59O1xuICAgICAgICB0aGlzLmluamVjdG9yXG4gICAgICAgICAgICA/LmdldChNbmdBdWRpdFNlcnZpY2UsIHVuZGVmaW5lZCwge29wdGlvbmFsOiB0cnVlfSlcbiAgICAgICAgICAgID8uYXVkaXRNb2RlbCQucGlwZSh0YWtlVW50aWxEZXN0cm95ZWQodGhpcy5kZXN0cm95UmVmKSlcbiAgICAgICAgICAgIC5zdWJzY3JpYmUoe1xuICAgICAgICAgICAgICAgIG5leHQ6IG1vZGVsID0+IHtcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5hdWRpdE1vZGVsID0gbW9kZWw7XG4gICAgICAgICAgICAgICAgICAgIGlmICh0aGlzLmZpZWxkVmFsdWUpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIHRoaXMuZW50aXR5Q2hhbmdlcyA9IEF1ZGl0VXRpbC5tYXBJdGVtc1RvRW50aXR5Q2hhbmdlc0FycmF5KHRoaXMuZmllbGRWYWx1ZSk7XG4gICAgICAgICAgICAgICAgICAgICAgICB0aGlzLm1vZGVsRmV0Y2hlZC5uZXh0KHRydWUpO1xuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgICBlcnJvcjogZXJyID0+IHtcbiAgICAgICAgICAgICAgICAgICAgdGhyb3cgbmV3IE1uZ0ludGVybmFsRXJyb3IoJ0Vycm9yIHdoaWxlIHRyeWluZyB0byBmZXRjaCBhdWRpdCBtb2RlbCBmcm9tIGF1ZGl0IHNlcnZpY2UnLCB7bmFtZTogJ0VudGl0eUNoYW5nZXNGaWVsZENvbXBvbmVudEVycm9yJywgY2F1c2U6IGVycn0pO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH0pO1xuICAgIH1cblxuICAgIHB1YmxpYyBjcmVhdGVEZXNjcmlwdG9yKGVudGl0eUNoYW5nZXM6IE1uZ0VudGl0eVJldmlzaW9uQ2hhbmdlcykge1xuICAgICAgICBjb25zdCBjaGFuZ2VkRmllbGRzOiBzdHJpbmdbXSA9IFtdO1xuICAgICAgICBpZiAoZW50aXR5Q2hhbmdlcy5pdGVtcyAmJiBlbnRpdHlDaGFuZ2VzLml0ZW1zWzBdLnJldlR5cGUgPT09IE1uZ1JldmlzaW9uVHlwZUR0by5Nb2QpIHtcbiAgICAgICAgICAgIGZvciAoY29uc3Qga2V5IGluIGVudGl0eUNoYW5nZXMuaXRlbXNbMF0pIHtcbiAgICAgICAgICAgICAgICBpZiAoZW50aXR5Q2hhbmdlcy5pdGVtc1swXVtrZXldICE9PSBlbnRpdHlDaGFuZ2VzLml0ZW1zWzFdW2tleV0pIHtcbiAgICAgICAgICAgICAgICAgICAgY2hhbmdlZEZpZWxkcy5wdXNoKGtleSk7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgY29uc3QgZ3VpRW50aXR5TW9kZWwgPSB0aGlzLmF1ZGl0TW9kZWwuZmlsdGVyKG0gPT4gbS5lbnRpdHlOYW1lID09PSBlbnRpdHlDaGFuZ2VzLmVudGl0eVR5cGUpWzBdO1xuXG4gICAgICAgIGNvbnN0IGRlc2MgPSBuZXcgVGFibGVEZXNjcmlwdG9yKE1uZ0VudGl0eVJldmlzaW9uQ2hhbmdlU3RhdGUsIHVuZGVmaW5lZCwgdW5kZWZpbmVkLCBndWlFbnRpdHlNb2RlbC5lbnRpdHlOYW1lKS53aXRoQ2xhc3NOYW1lKCdweS0yJyk7XG4gICAgICAgIGlmIChndWlFbnRpdHlNb2RlbC5lbnRpdHlOYW1lKSB7XG4gICAgICAgICAgICBkZXNjLndpdGhUaXRsZShndWlFbnRpdHlNb2RlbC5lbnRpdHlOYW1lKTtcbiAgICAgICAgfVxuXG4gICAgICAgIGRlc2MuYWRkQ29sdW1uKCdyZXZUeXBlJykud2l0aFRpdGxlKCdNbmdFbnRpdHlSZXZpc2lvbkNoYW5nZVN0YXRlLnByb3BlcnRpZXMucmV2VHlwZScpLmFzRW51bShNbmdSZXZpc2lvblR5cGVEdG8pO1xuXG4gICAgICAgIGlmIChndWlFbnRpdHlNb2RlbC5wcm9wZXJ0aWVzKSB7XG4gICAgICAgICAgICBBdWRpdFV0aWwuYWRkQ29sdW1uc0Zyb21Nb2RlbChkZXNjLCBndWlFbnRpdHlNb2RlbC5wcm9wZXJ0aWVzLCB1bmRlZmluZWQsIGZhbHNlLCBmYWxzZSk7XG4gICAgICAgIH1cblxuICAgICAgICBkZXNjLndpdGhSb3dDbGFzc05hbWUodW5kZWZpbmVkLCAoXywgaXRlbSkgPT4gKGl0ZW0gPyAoaXRlbS5jb2xvciA9PT0gJ2dyZWVuJyA/ICdhdWRpdC1yb3ctYWRkZWQnIDogJ2F1ZGl0LXJvdy1kZWxldGVkJykgOiAnJykpO1xuICAgICAgICBkZXNjLmNvbHVtbnMuZm9yRWFjaChjb2wgPT4ge1xuICAgICAgICAgICAgaWYgKGNoYW5nZWRGaWVsZHMubGVuZ3RoID4gMCAmJiBjaGFuZ2VkRmllbGRzLnNvbWUodmFsID0+IGNvbC5wcm9wZXJ0eSA9PT0gdmFsKSkge1xuICAgICAgICAgICAgICAgIGNvbC53aXRoQ2xhc3NOYW1lKCdhdWRpdC1jZWxsJyk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH0pO1xuXG4gICAgICAgIGRlc2Mud2l0aFBhZ2luYXRpb25Nb2RlKFRhYmxlUGFnaW5hdGlvbk1vZGVFbnVtLlBhZ2luYXRpb24pO1xuICAgICAgICBkZXNjLndpdGhDdXJyZW50Q29sdW1uc1Jlb3JkZXJhYmxlKCk7XG4gICAgICAgIGRlc2Mud2l0aEN1cnJlbnRDb2x1bW5zVG9nZ2xlYWJsZSgpO1xuICAgICAgICBkZXNjLndpdGhEYXRhS2V5KGBFbnRpdHlDaGFuZ2VGaWVsZF8ke2VudGl0eUNoYW5nZXMuZW50aXR5VHlwZSA/PyAnZGVmYXVsdCd9YCk7XG5cbiAgICAgICAgcmV0dXJuIGRlc2M7XG4gICAgfVxufVxuIiwiPGRpdiAqbmdJZj1cIm1vZGVsRmV0Y2hlZCB8IGFzeW5jOyBlbHNlIGxvYWRpbmdcIj5cbiAgICA8bW5nLXRhYmxlICpuZ0Zvcj1cImxldCBlYyBvZiBlbnRpdHlDaGFuZ2VzXCIgW2l0ZW1zXT1cImVjLml0ZW1zXCIgW2Rlc2NyaXB0b3JdPVwiY3JlYXRlRGVzY3JpcHRvcihlYylcIj48L21uZy10YWJsZT5cbjwvZGl2PlxuPG5nLXRlbXBsYXRlICNsb2FkaW5nPlxuICAgIDxkaXYgY2xhc3M9XCJ0ZXh0LWNlbnRlclwiPlxuICAgICAgICA8aSBjbGFzcz1cInBpIHBpLXNwaW4gcGktc3Bpbm5lclwiIHN0eWxlPVwiZm9udC1zaXplOiAycmVtXCI+PC9pPlxuICAgIDwvZGl2PlxuPC9uZy10ZW1wbGF0ZT5cbiJdfQ==
@@ -2,10 +2,10 @@ import { Component } from '@angular/core';
2
2
  import { RouterOutlet } from '@angular/router';
3
3
  import * as i0 from "@angular/core";
4
4
  export class MngAuditPageComponent {
5
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.1.7", ngImport: i0, type: MngAuditPageComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
6
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.1.7", 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"] }] }); }
5
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.6", ngImport: i0, type: MngAuditPageComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
6
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.2.6", 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"] }] }); }
7
7
  }
8
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.1.7", ngImport: i0, type: MngAuditPageComponent, decorators: [{
8
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.6", ngImport: i0, type: MngAuditPageComponent, decorators: [{
9
9
  type: Component,
10
10
  args: [{ standalone: true, selector: 'mng-audit-page', imports: [RouterOutlet], template: "<router-outlet></router-outlet>\n" }]
11
11
  }] });
@@ -7,10 +7,10 @@ import { FormlyModule } from '@ngx-formly/core';
7
7
  import { TranslateModule } from '@ngx-translate/core';
8
8
  import { combineLatest, throwError } from 'rxjs';
9
9
  import { map } from 'rxjs/operators';
10
- import { AMngTableviewRouteComponent, ActionDataProviderUtil, ActionEditorDescriptor, ActionEditorSubmitDescriptor, ActionEditorSubmitTypeEnum, ActionPositionEnum, LookupDataProvider, MediusQueryResult, MngDropdownComponent, MngInternalError, MngTableviewRouteComponent, TableviewActionDefaultCategories, TableviewDataProvider, TableviewDescriptor } from '@mediusinc/mng-commons';
11
- import { MngGuiEntityModelDto } from '../../../api/models/guiEntityModel';
10
+ import { AMngTableviewRouteComponent, ActionEditorDetailsDescriptor, LookupDataProvider, MediusQueryResult, MngDropdownComponent, MngInternalError, MngTableviewRouteComponent, TableviewDataProvider, TableviewDescriptor } from '@mediusinc/mng-commons';
12
11
  import { MngAuditRevisionsApiService } from '../../../api/services/audit-revisions-api.service';
13
12
  import { MngAuditService } from '../../../api/services/audit.service';
13
+ import { MngGuiEntityModelWithI18n } from '../../../models/guiEntityModelWithI18n.model';
14
14
  import { MngRevEntityWithId } from '../../../models/revEntityWithId.model';
15
15
  import { AuditUtil } from '../../../utils/audit.util';
16
16
  import * as i0 from "@angular/core";
@@ -25,17 +25,25 @@ export class MngAuditEntityRevisionsPageComponent extends AMngTableviewRouteComp
25
25
  this.auditService = inject(MngAuditService);
26
26
  this.revisisonsApiService = inject(MngAuditRevisionsApiService);
27
27
  this.showTableview = signal(false);
28
- this.revisionEntitiesLookupProvider = new LookupDataProvider(MngGuiEntityModelDto).withLookup(() => this.auditService.auditModel$.pipe(map(model => model.sort((m1, m2) => {
29
- if (m1.entityName && m2.entityName) {
30
- return m1.entityName.localeCompare(m2.entityName);
31
- }
32
- else if (m1.entityName && !m2.entityName) {
33
- return 1;
34
- }
35
- else {
36
- return -1;
37
- }
38
- }))));
28
+ this.revisionEntitiesLookupProvider = new LookupDataProvider(MngGuiEntityModelWithI18n).withLookup(() => this.auditService.auditModel$.pipe(map(model => {
29
+ const modelI18n = model;
30
+ modelI18n.sort((m1, m2) => {
31
+ if (m1.entityName && m2.entityName) {
32
+ return m1.entityName.localeCompare(m2.entityName);
33
+ }
34
+ else if (m1.entityName && !m2.entityName) {
35
+ return 1;
36
+ }
37
+ else {
38
+ return -1;
39
+ }
40
+ });
41
+ modelI18n.forEach(item => {
42
+ const translatedEntityName = this.translateService.instant('AuditEntities.' + item.entityName);
43
+ item.entityNameI18n = translatedEntityName.includes('AuditEntities.') ? item.entityName : translatedEntityName;
44
+ });
45
+ return modelI18n;
46
+ })));
39
47
  }
40
48
  ngOnInit() {
41
49
  this.route.paramMap.pipe(takeUntilDestroyed(this.destroyRef)).subscribe(params => {
@@ -104,11 +112,7 @@ export class MngAuditEntityRevisionsPageComponent extends AMngTableviewRouteComp
104
112
  throw new MngInternalError('No revision model or revision entity is provided for tableview.');
105
113
  }
106
114
  const entityName = this.selectedRevisionEntity.entityName;
107
- const detailsAction = new ActionEditorDescriptor(this.descriptor.detailsEditor, 'entity-revision-details')
108
- .withPosition(ActionPositionEnum.RowClick)
109
- .withRouteTrigger(':itemId')
110
- .withFetchFunction(ActionDataProviderUtil.runFetchOrFail)
111
- .withTableviewCategory(TableviewActionDefaultCategories.DETAILS)
115
+ const detailsAction = new ActionEditorDetailsDescriptor(this.descriptor.detailsEditor)
112
116
  .withFetchFunction(ctx => {
113
117
  if (!entityName) {
114
118
  return throwError(() => new MngInternalError('No revision entity is provided for details.'));
@@ -119,15 +123,15 @@ export class MngAuditEntityRevisionsPageComponent extends AMngTableviewRouteComp
119
123
  const revId = ctx.parameters.itemId.toString().split('_')[0];
120
124
  const itemId = ctx.parameters.itemId.toString().split('_')[1];
121
125
  return this.revisisonsApiService.fetchRevisionsWithStateForEntityType(entityName, revId, itemId);
122
- });
123
- detailsAction.withEditorActions([new ActionEditorSubmitDescriptor(detailsAction, ActionEditorSubmitTypeEnum.Cancel)]);
126
+ })
127
+ .withEditorTitle('pages.entityRevisions.actions.details.editor.title');
124
128
  return [detailsAction];
125
129
  }
126
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.1.7", ngImport: i0, type: MngAuditEntityRevisionsPageComponent, deps: [{ token: i1.Router }], target: i0.ɵɵFactoryTarget.Component }); }
127
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.1.7", type: MngAuditEntityRevisionsPageComponent, isStandalone: true, selector: "mng-audit-entity-revisions-page", usesInheritance: true, 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 [itemsLabelProperty]=\"'entityName'\"\n [(ngModel)]=\"selectedRevisionEntity\"\n (valueChange)=\"onRevisionEntityChange()\"\n [dataProvider]=\"revisionEntitiesLookupProvider\"></mng-dropdown>\n <small *ngIf=\"!selectedRevisionEntity\" class=\"block\">\n {{ 'pages.entityRevisions.dropdown.helpText' | translate }}\n </small>\n </div>\n</div>\n<div *ngIf=\"showTableview()\">\n <mng-tableview-route [descriptor]=\"descriptor\" [dataProvider]=\"dataProvider\" [actions]=\"actions\"></mng-tableview-route>\n</div>\n", dependencies: [{ kind: "component", type: MngDropdownComponent, selector: "mng-dropdown", inputs: ["dataProvider", "dataKeyProperty", "itemsLabelProperty", "itemsLabelTranslate", "itemsValueProperty", "itemsDisabledProperty", "multiselect", "placeholder", "showClear", "selectFirstItem", "className", "dropdownClassName", "changeValueOnBlur"], outputs: ["valueChange"] }, { kind: "component", type: MngTableviewRouteComponent, selector: "mng-tableview-route", inputs: ["descriptor", "dataProvider", "actions"] }, { kind: "ngmodule", type: FormsModule }, { kind: "directive", type: i2.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i2.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }, { kind: "directive", type: NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "ngmodule", type: TranslateModule }, { kind: "pipe", type: i3.TranslatePipe, name: "translate" }, { kind: "ngmodule", type: FormlyModule }] }); }
130
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.6", ngImport: i0, type: MngAuditEntityRevisionsPageComponent, deps: [{ token: i1.Router }], target: i0.ɵɵFactoryTarget.Component }); }
131
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.2.6", type: MngAuditEntityRevisionsPageComponent, isStandalone: true, selector: "mng-audit-entity-revisions-page", usesInheritance: true, 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 [itemsLabelProperty]=\"'entityNameI18n'\"\n [(ngModel)]=\"selectedRevisionEntity\"\n (valueChange)=\"onRevisionEntityChange()\"\n [dataProvider]=\"revisionEntitiesLookupProvider\"></mng-dropdown>\n <small *ngIf=\"!selectedRevisionEntity\" class=\"block\">\n {{ 'pages.entityRevisions.dropdown.helpText' | translate }}\n </small>\n </div>\n</div>\n<div *ngIf=\"showTableview()\">\n <mng-tableview-route [descriptor]=\"descriptor\" [dataProvider]=\"dataProvider\" [actions]=\"actions\"></mng-tableview-route>\n</div>\n", dependencies: [{ kind: "component", type: MngDropdownComponent, selector: "mng-dropdown", inputs: ["dataProvider", "dataKeyProperty", "itemsLabelProperty", "itemsLabelTranslate", "itemsValueProperty", "itemsDisabledProperty", "multiselect", "placeholder", "showClear", "selectFirstItem", "className", "dropdownClassName", "changeValueOnBlur"], outputs: ["valueChange"] }, { kind: "component", type: MngTableviewRouteComponent, selector: "mng-tableview-route", inputs: ["descriptor", "dataProvider", "actions"] }, { kind: "ngmodule", type: FormsModule }, { kind: "directive", type: i2.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i2.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }, { kind: "directive", type: NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "ngmodule", type: TranslateModule }, { kind: "pipe", type: i3.TranslatePipe, name: "translate" }, { kind: "ngmodule", type: FormlyModule }] }); }
128
132
  }
129
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.1.7", ngImport: i0, type: MngAuditEntityRevisionsPageComponent, decorators: [{
133
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.6", ngImport: i0, type: MngAuditEntityRevisionsPageComponent, decorators: [{
130
134
  type: Component,
131
- args: [{ standalone: true, selector: 'mng-audit-entity-revisions-page', imports: [MngDropdownComponent, MngTableviewRouteComponent, FormsModule, AsyncPipe, NgIf, TranslateModule, FormlyModule], template: "<div class=\"card\">\n <div class=\"field mb-0\">\n <mng-dropdown\n id=\"revisionEntityDropdown\"\n [placeholder]=\"'pages.entityRevisions.dropdown.placeholder' | translate\"\n [itemsLabelProperty]=\"'entityName'\"\n [(ngModel)]=\"selectedRevisionEntity\"\n (valueChange)=\"onRevisionEntityChange()\"\n [dataProvider]=\"revisionEntitiesLookupProvider\"></mng-dropdown>\n <small *ngIf=\"!selectedRevisionEntity\" class=\"block\">\n {{ 'pages.entityRevisions.dropdown.helpText' | translate }}\n </small>\n </div>\n</div>\n<div *ngIf=\"showTableview()\">\n <mng-tableview-route [descriptor]=\"descriptor\" [dataProvider]=\"dataProvider\" [actions]=\"actions\"></mng-tableview-route>\n</div>\n" }]
135
+ args: [{ standalone: true, selector: 'mng-audit-entity-revisions-page', imports: [MngDropdownComponent, MngTableviewRouteComponent, FormsModule, AsyncPipe, NgIf, TranslateModule, FormlyModule], template: "<div class=\"card\">\n <div class=\"field mb-0\">\n <mng-dropdown\n id=\"revisionEntityDropdown\"\n [placeholder]=\"'pages.entityRevisions.dropdown.placeholder' | translate\"\n [itemsLabelProperty]=\"'entityNameI18n'\"\n [(ngModel)]=\"selectedRevisionEntity\"\n (valueChange)=\"onRevisionEntityChange()\"\n [dataProvider]=\"revisionEntitiesLookupProvider\"></mng-dropdown>\n <small *ngIf=\"!selectedRevisionEntity\" class=\"block\">\n {{ 'pages.entityRevisions.dropdown.helpText' | translate }}\n </small>\n </div>\n</div>\n<div *ngIf=\"showTableview()\">\n <mng-tableview-route [descriptor]=\"descriptor\" [dataProvider]=\"dataProvider\" [actions]=\"actions\"></mng-tableview-route>\n</div>\n" }]
132
136
  }], ctorParameters: function () { return [{ type: i1.Router }]; } });
133
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYXVkaXQtZW50aXR5LXJldmlzaW9ucy1wYWdlLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3NyYy9saWIvY29tcG9uZW50cy9wYWdlcy9lbnRpdHktcmV2aXNpb25zL2F1ZGl0LWVudGl0eS1yZXZpc2lvbnMtcGFnZS5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi9zcmMvbGliL2NvbXBvbmVudHMvcGFnZXMvZW50aXR5LXJldmlzaW9ucy9hdWRpdC1lbnRpdHktcmV2aXNpb25zLXBhZ2UuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFDLFNBQVMsRUFBRSxJQUFJLEVBQUMsTUFBTSxpQkFBaUIsQ0FBQztBQUNoRCxPQUFPLEVBQUMsU0FBUyxFQUFFLFVBQVUsRUFBMEIsTUFBTSxFQUFFLE1BQU0sRUFBQyxNQUFNLGVBQWUsQ0FBQztBQUM1RixPQUFPLEVBQUMsa0JBQWtCLEVBQUMsTUFBTSw0QkFBNEIsQ0FBQztBQUM5RCxPQUFPLEVBQUMsV0FBVyxFQUFDLE1BQU0sZ0JBQWdCLENBQUM7QUFDM0MsT0FBTyxFQUFDLE1BQU0sRUFBQyxNQUFNLGlCQUFpQixDQUFDO0FBRXZDLE9BQU8sRUFBQyxZQUFZLEVBQUMsTUFBTSxrQkFBa0IsQ0FBQztBQUM5QyxPQUFPLEVBQUMsZUFBZSxFQUFDLE1BQU0scUJBQXFCLENBQUM7QUFDcEQsT0FBTyxFQUFDLGFBQWEsRUFBRSxVQUFVLEVBQUMsTUFBTSxNQUFNLENBQUM7QUFDL0MsT0FBTyxFQUFDLEdBQUcsRUFBQyxNQUFNLGdCQUFnQixDQUFDO0FBRW5DLE9BQU8sRUFDSCwyQkFBMkIsRUFDM0Isc0JBQXNCLEVBRXRCLHNCQUFzQixFQUN0Qiw0QkFBNEIsRUFDNUIsMEJBQTBCLEVBQzFCLGtCQUFrQixFQUNsQixrQkFBa0IsRUFDbEIsaUJBQWlCLEVBQ2pCLG9CQUFvQixFQUNwQixnQkFBZ0IsRUFD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LENBQUMsTUFBTSxDQUFDLFFBQVEsRUFBRSxDQUFDLEtBQUssQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQztZQUM3RCxNQUFNLE1BQU0sR0FBRyxHQUFHLENBQUMsVUFBVSxDQUFDLE1BQU0sQ0FBQyxRQUFRLEVBQUUsQ0FBQyxLQUFLLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUM7WUFDOUQsT0FBTyxJQUFJLENBQUMsb0JBQW9CLENBQUMsb0NBQW9DLENBQUMsVUFBVSxFQUFFLEtBQUssRUFBRSxNQUFNLENBQUMsQ0FBQztRQUNyRyxDQUFDLENBQUMsQ0FBQztRQUNQLGFBQWEsQ0FBQyxpQkFBaUIsQ0FBQyxDQUFDLElBQUksNEJBQTRCLENBQUMsYUFBYSxFQUFFLDBCQUEwQixDQUFDLE1BQU0sQ0FBQyxDQUFDLENBQUMsQ0FBQztRQUN0SCxPQUFPLENBQUMsYUFBYSxDQUFDLENBQUM7SUFDM0IsQ0FBQzs4R0FqSVEsb0NBQW9DO2tHQUFwQyxvQ0FBb0Msa0hDekNqRCw4eEJBaUJBLDRDRHFCYyxvQkFBb0IsaVZBQUUsMEJBQTBCLGtIQUFFLFdBQVcsK1ZBQWEsSUFBSSw0RkFBRSxlQUFlLDJGQUFFLFlBQVk7OzJGQUc5RyxvQ0FBb0M7a0JBTmhELFNBQVM7aUNBQ00sSUFBSSxZQUNOLGlDQUFpQyxXQUNsQyxDQUFDLG9CQUFvQixFQUFFLDBCQUEwQixFQUFFLFdBQVcsRUFBRSxTQUFTLEVBQUUsSUFBSSxFQUFFLGVBQWUsRUFBRSxZQUFZLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge0FzeW5jUGlwZSwgTmdJZn0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uJztcbmltcG9ydCB7Q29tcG9uZW50LCBEZXN0cm95UmVmLCBPbkluaXQsIFdyaXRhYmxlU2lnbmFsLCBpbmplY3QsIHNpZ25hbH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQge3Rha2VVbnRpbERlc3Ryb3llZH0gZnJvbSAnQGFuZ3VsYXIvY29yZS9yeGpzLWludGVyb3AnO1xuaW1wb3J0IHtGb3Jtc01vZHVsZX0gZnJvbSAnQGFuZ3VsYXIvZm9ybXMnO1xuaW1wb3J0IHtSb3V0ZXJ9IGZyb20gJ0Bhbmd1bGFyL3JvdXRlcic7XG5cbmltcG9ydCB7Rm9ybWx5TW9kdWxlfSBmcm9tICdAbmd4LWZvcm1seS9jb3JlJztcbmltcG9ydCB7VHJhbnNsYXRlTW9kdWxlfSBmcm9tICdAbmd4LXRyYW5zbGF0ZS9jb3JlJztcbmltcG9ydCB7Y29tYmluZUxhdGVzdCwgdGhyb3dFcnJvcn0gZnJvbSAncnhqcyc7XG5pbXBvcnQge21hcH0gZnJvbSAncnhqcy9vcGVyYXRvcnMnO1xuXG5pbXBvcnQge1xuICAgIEFNbmdUYWJsZXZpZXdSb3V0ZUNvbXBvbmVudCxcbiAgICBBY3Rpb25EYXRhUHJvdmlkZXJVdGlsLFxuICAgIEFjdGlvbkRlc2NyaXB0b3IsXG4gICAgQWN0aW9uRWRpdG9yRGVzY3JpcHRvcixcbiAgICBBY3Rpb25FZGl0b3JTdWJtaXREZXNjcmlwdG9yLFxuICAgIEFjdGlvbkVkaXRvclN1Ym1pdFR5cGVFbnVtLFxuICAgIEFjdGlvblBvc2l0aW9uRW51bSxcbiAgICBMb29rdXBEYXRhUHJvdmlkZXIsXG4gICAgTWVkaXVzUXVlcnlSZXN1bHQsXG4gICAgTW5nRHJvcGRvd25Db21wb25lbnQsXG4gICAgTW5nSW50ZXJuYWxFcnJvcixcbiAgICBNbmdUYWJsZXZpZXdSb3V0ZUNvbXBvbmVudCxcbiAgICBUYWJsZXZpZXdBY3Rpb25EZWZhdWx0Q2F0ZWdvcmllcyxcbiAgICBUYWJsZXZpZXdEYXRhUHJvdmlkZXIsXG4gICAgVGFibGV2aWV3RGVzY3JpcHRvclxufSBmcm9tICdAbWVkaXVzaW5jL21uZy1jb21tb25zJztcblxuaW1wb3J0IHtNbmdHdWlFbnRpdHlNb2RlbER0b30gZnJvbSAnLi4vLi4vLi4vYXBpL21vZGVscy9ndWlFbnRpdHlNb2RlbCc7XG5pbXBvcnQge01uZ0F1ZGl0UmV2aXNpb25zQXBpU2VydmljZX0gZnJvbSAnLi4vLi4vLi4vYXBpL3NlcnZpY2VzL2F1ZGl0LXJldmlzaW9ucy1hcGkuc2VydmljZSc7XG5pbXBvcnQge01uZ0F1ZGl0U2VydmljZX0gZnJvbSAnLi4vLi4vLi4vYXBpL3NlcnZpY2VzL2F1ZGl0LnNlcnZpY2UnO1xuaW1wb3J0IHtNbmdSZXZFbnRpdHlXaXRoSWR9IGZyb20gJy4uLy4uLy4uL21vZGVscy9yZXZFbnRpdHlXaXRoSWQubW9kZWwnO1xuaW1wb3J0IHtBdWRpdFV0aWx9IGZyb20gJy4uLy4uLy4uL3V0aWxzL2F1ZGl0LnV0aWwnO1xuXG5AQ29tcG9uZW50KHtcbiAgICBzdGFuZGFsb25lOiB0cnVlLFxuICAgIHNlbGVjdG9yOiAnbW5nLWF1ZGl0LWVudGl0eS1yZXZpc2lvbnMtcGFnZScsXG4gICAgaW1wb3J0czogW01uZ0Ryb3Bkb3duQ29tcG9uZW50LCBNbmdUYWJsZXZpZXdSb3V0ZUNvbXBvbmVudCwgRm9ybXNNb2R1bGUsIEFzeW5jUGlwZSwgTmdJZiwgVHJhbnNsYXRlTW9kdWxlLCBGb3JtbHlNb2R1bGVdLFxuICAgIHRlbXBsYXRlVXJsOiAnYXVkaXQtZW50aXR5LXJldmlzaW9ucy1wYWdlLmNvbXBvbmVudC5odG1sJ1xufSlcbmV4cG9ydCBjbGFzcyBNbmdBdWRpdEVudGl0eVJldmlzaW9uc1BhZ2VDb21wb25lbnQgZXh0ZW5kcyBBTW5nVGFibGV2aWV3Um91dGVDb21wb25lbnQ8TW5nUmV2RW50aXR5V2l0aElkLCB1bmtub3duPiBpbXBsZW1lbnRzIE9uSW5pdCB7XG4gICAgcHJpdmF0ZSBkZXN0cm95UmVmID0gaW5qZWN0KERlc3Ryb3lSZWYpO1xuICAgIHByaXZhdGUgYXVkaXRTZXJ2aWNlID0gaW5qZWN0KE1uZ0F1ZGl0U2VydmljZSk7XG4gICAgcHJpdmF0ZSByZXZpc2lzb25zQXBpU2VydmljZSA9IGluamVjdChNbmdBdWRpdFJldmlzaW9uc0FwaVNlcnZpY2UpO1xuXG4gICAgcHVibGljIHJldk1vZGVsPzogTW5nR3VpRW50aXR5TW9kZWxEdG87XG4gICAgcHVibGljIHNlbGVjdGVkUmV2aXNpb25FbnRpdHk/OiBNbmdHdWlFbnRpdHlNb2RlbER0bztcbiAgICBwdWJsaWMgcmV2aXNpb25FbnRpdGllc0xvb2t1cFByb3ZpZGVyPzogTG9va3VwRGF0YVByb3ZpZGVyPE1uZ0d1aUVudGl0eU1vZGVsRHRvLCBuZXZlcj47XG5cbiAgICBwdWJsaWMgc2hvd1RhYmxldmlldzogV3JpdGFibGVTaWduYWw8Ym9vbGVhbj4gPSBzaWduYWwoZmFsc2UpO1xuXG4gICAgY29uc3RydWN0b3IocHJpdmF0ZSByb3V0ZXI6IFJvdXRlcikge1xuICAgICAgICBzdXBlcigpO1xuICAgICAgICB0aGlzLnJldmlzaW9uRW50aXRpZXNMb29rdXBQcm92aWRlciA9IG5ldyBMb29rdXBEYXRhUHJvdmlkZXI8TW5nR3VpRW50aXR5TW9kZWxEdG8sIG5ldmVyPihNbmdHdWlFbnRpdHlNb2RlbER0bykud2l0aExvb2t1cCgoKSA9PlxuICAgICAgICAgICAgdGhpcy5hdWRpdFNlcnZpY2UuYXVkaXRNb2RlbCQucGlwZShcbiAgICAgICAgICAgICAgICBtYXAobW9kZWwgPT5cbiAgICAgICAgICAgICAgICAgICAgbW9kZWwuc29ydCgobTEsIG0yKSA9PiB7XG4gICAgICAgICAgICAgICAgICAgICAgICBpZiAobTEuZW50aXR5TmFtZSAmJiBtMi5lbnRpdHlOYW1lKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuIG0xLmVudGl0eU5hbWUubG9jYWxlQ29tcGFyZShtMi5lbnRpdHlOYW1lKTtcbiAgICAgICAgICAgICAgICAgICAgICAgIH0gZWxzZSBpZiAobTEuZW50aXR5TmFtZSAmJiAhbTIuZW50aXR5TmFtZSkge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybiAxO1xuICAgICAgICAgICAgICAgICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICByZXR1cm4gLTE7XG4gICAgICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgIH0pXG4gICAgICAgICAgICAgICAgKVxuICAgICAgICAgICAgKVxuICAgICAgICApO1xuICAgIH1cblxuICAgIG92ZXJyaWRlIG5nT25Jbml0KCkge1xuICAgICAgICB0aGlzLnJvdXRlLnBhcmFtTWFwLnBpcGUodGFrZVVudGlsRGVzdHJveWVkKHRoaXMuZGVzdHJveVJlZikpLnN1YnNjcmliZShwYXJhbXMgPT4ge1xuICAgICAgICAgICAgY29uc3QgZW50aXR5Q2xhc3MgPSBwYXJhbXMuZ2V0KCdlbnRpdHlDbGFzcycpO1xuICAgICAgICAgICAgaWYgKGVudGl0eUNsYXNzKSB7XG4gICAgICAgICAgICAgICAgY29tYmluZUxhdGVzdChbdGhpcy5hdWRpdFNlcnZpY2UuYXVkaXRNb2RlbCQsIHRoaXMuYXVkaXRTZXJ2aWNlLnJldk1vZGVsJF0pLnN1YnNjcmliZSgoW2VudGl0aWVzLCByZXZNb2RlbF0pID0+IHtcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5yZXZNb2RlbCA9IHJldk1vZGVsO1xuXG4gICAgICAgICAgICAgICAgICAgIGZvciAoY29uc3QgZSBvZiBlbnRpdGllcykge1xuICAgICAgICAgICAgICAgICAgICAgICAgaWYgKGUuZW50aXR5TmFtZSA9PT0gZW50aXR5Q2xhc3MpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB0aGlzLnNlbGVjdGVkUmV2aXNpb25FbnRpdHkgPSBlO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHN1cGVyLm5nT25Jbml0KCk7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgc2V0VGltZW91dCgoKSA9PiB0aGlzLnNob3dUYWJsZXZpZXcuc2V0KHRydWUpKTtcbiAgICAgICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIH0pO1xuICAgICAgICAgICAgfVxuICAgICAgICB9KTtcbiAgICB9XG5cbiAgICBwdWJsaWMgb25SZXZpc2lvbkVudGl0eUNoYW5nZSgpIHtcbiAgICAgICAgdGhpcy5zaG93VGFibGV2aWV3LnNldChmYWxzZSk7XG4gICAgICAgIGlmICh0aGlzLnNlbGVjdGVkUmV2aXNpb25FbnRpdHkpIHtcbiAgICAgICAgICAgIHRoaXMucm91dGVyLm5hdmlnYXRlKFsnL2F1ZGl0L2VudGl0eS1yZXZpc2lvbnMvJyArIHRoaXMuc2VsZWN0ZWRSZXZpc2lvbkVudGl0eS5lbnRpdHlOYW1lXSk7XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICB0aGlzLnJvdXRlci5uYXZpZ2F0ZShbJy9hdWRpdC9lbnRpdHktcmV2aXNpb25zLyddKTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIHByb3RlY3RlZCBjcmVhdGVUYWJsZXZpZXdEZXNjcmlwdG9yKCkge1xuICAgICAgICBpZiAoIXRoaXMucmV2TW9kZWwgfHwgIXRoaXMuc2VsZWN0ZWRSZXZpc2lvbkVudGl0eT8uZW50aXR5TmFtZSkge1xuICAgICAgICAgICAgdGhyb3cgbmV3IE1uZ0ludGVybmFsRXJyb3IoJ05vIHJldmlzaW9uIG1vZGVsIG9yIHJldmlzaW9uIGVudGl0eSBpcyBwcm92aWRlZCBmb3IgdGFibGV2aWV3LicpO1xuICAgICAgICB9XG5cbiAgICAgICAgY29uc3QgZGVzYyA9IG5ldyBUYWJsZXZpZXdEZXNjcmlwdG9yKE1uZ1JldkVudGl0eVdpdGhJZCwgJ21lcmdlZElkJywgdW5kZWZpbmVkLCB0aGlzLnNlbGVjdGVkUmV2aXNpb25FbnRpdHkuZW50aXR5TmFtZSk7XG5cbiAgICAgICAgQXVkaXRVdGlsLmJ1aWxkRGVzY3JpcHRvckZvckVudGl0eVJldmlzaW9uKGRlc2MsIHRoaXMucmV2TW9kZWwsIHRoaXMuc2VsZWN0ZWRSZXZpc2lvbkVudGl0eSk7XG5cbiAgICAgICAgZGVzYy50YWJsZS53aXRoQ29sdW1uc1Jlc2l6YWJsZSgpO1xuICAgICAgICBkZXNjLnRhYmxlLndpdGhDdXJyZW50Q29sdW1uc1Jlb3JkZXJhYmxlKCk7XG4gICAgICAgIGRlc2MudGFibGUud2l0aEN1cnJlbnRDb2x1bW5zVG9nZ2xlYWJsZSgpO1xuICAgICAgICBkZXNjLnRhYmxlLndpdGhEYXRhS2V5KGBFbnRpdHlSZXZpc2lvbnNQYWdlXyR7dGhpcy5zZWxlY3RlZFJldmlzaW9uRW50aXR5LmVudGl0eU5hbWV9YCk7XG5cbiAgICAgICAgcmV0dXJuIGRlc2M7XG4gICAgfVxuXG4gICAgcHJvdGVjdGVkIGNyZWF0ZVRhYmxldmlld0RhdGFQcm92aWRlcigpIHtcbiAgICAgICAgaWYgKCF0aGlzLnJldk1vZGVsIHx8ICF0aGlzLnNlbGVjdGVkUmV2aXNpb25FbnRpdHk/LmVudGl0eU5hbWUpIHtcbiAgICAgICAgICAgIHRocm93IG5ldyBNbmdJbnRlcm5hbEVycm9yKCdObyByZXZpc2lvbiBtb2RlbCBvciByZXZpc2lvbiBlbnRpdHkgaXMgcHJvdmlkZWQgZm9yIHRhYmxldmlldy4nKTtcbiAgICAgICAgfVxuXG4gICAgICAgIGNvbnN0IGVudGl0eU5hbWUgPSB0aGlzLnNlbGVjdGVkUmV2aXNpb25FbnRpdHkuZW50aXR5TmFtZTtcbiAgICAgICAgcmV0dXJuIG5ldyBUYWJsZXZpZXdEYXRhUHJvdmlkZXIoTW5nUmV2RW50aXR5V2l0aElkKS53aXRoR2V0QWxsKHFwID0+XG4gICAgICAgICAgICB0aGlzLnNlbGVjdGVkUmV2aXNpb25FbnRpdHk/LmVudGl0eU5hbWVcbiAgICAgICAgICAgICAgICA/IGNvbWJpbmVMYXRlc3QoW1xuICAgICAgICAgICAgICAgICAgICAgIHRoaXMucmV2aXNpc29uc0FwaVNlcnZpY2UuY291bnRSZXZpc2lvbnNXaXRoU3RhdGVGb3JFbnRpdHlUeXBlKHFwLCBlbnRpdHlOYW1lKSxcbiAgICAgICAgICAgICAgICAgICAgICB0aGlzLnJldmlzaXNvbnNBcGlTZXJ2aWNlLmxpc3RSZXZpc2lvbnNXaXRoU3RhdGVGb3JFbnRpdHlUeXBlKHFwLCBlbnRpdHlOYW1lKVxuICAgICAgICAgICAgICAgICAgXSkucGlwZShcbiAgICAgICAgICAgICAgICAgICAgICBtYXAoKFtjb3VudCwgdmFsdWVzXSkgPT4ge1xuICAgICAgICAgICAgICAgICAgICAgICAgICBjb25zdCByZXZFbnRpdHlXaXRoU3RhdGVBbmRJZExpc3QgPSBbXTtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgZm9yIChjb25zdCByZXZFbnRpdHlXaXRoU3RhdGUgb2YgdmFsdWVzKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb25zdCByZXZFbnRpdHlXaXRoU3RhdGVBbmRJZCA9IG5ldyBNbmdSZXZFbnRpdHlXaXRoSWQoKTtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJldkVudGl0eVdpdGhTdGF0ZUFuZElkLm1lcmdlZElkID0gcmV2RW50aXR5V2l0aFN0YXRlLnJldkVudGl0eT8uWydyZXYnXSArICdfJyArIHJldkVudGl0eVdpdGhTdGF0ZS5lbnRpdHlTdGF0ZT8uWydpZCddO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcmV2RW50aXR5V2l0aFN0YXRlQW5kSWQucmV2VHlwZSA9IHJldkVudGl0eVdpdGhTdGF0ZS5yZXZUeXBlO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcmV2RW50aXR5V2l0aFN0YXRlQW5kSWQucmV2RW50aXR5ID0gcmV2RW50aXR5V2l0aFN0YXRlLnJldkVudGl0eTtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJldkVudGl0eVdpdGhTdGF0ZUFuZElkLmVudGl0eVN0YXRlID0gcmV2RW50aXR5V2l0aFN0YXRlLmVudGl0eVN0YXRlO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcmV2RW50aXR5V2l0aFN0YXRlQW5kSWQuZW50aXR5Q2xhc3NOYW1lID0gcmV2RW50aXR5V2l0aFN0YXRlLmVudGl0eUNsYXNzTmFtZTtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJldkVudGl0eVdpdGhTdGF0ZUFuZElkTGlzdC5wdXNoKHJldkVudGl0eVdpdGhTdGF0ZUFuZElkKTtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICAgICAgICByZXR1cm4gTWVkaXVzUXVlcnlSZXN1bHQuZnJvbUFycmF5KHJldkVudGl0eVdpdGhTdGF0ZUFuZElkTGlzdCwgY291bnQpO1xuICAgICAgICAgICAgICAgICAgICAgIH0pXG4gICAgICAgICAgICAgICAgICApXG4gICAgICAgICAgICAgICAgOiB0aHJvd0Vycm9yKCgpID0+IG5ldyBNbmdJbnRlcm5hbEVycm9yKCdObyByZXZpc2lvbiBlbnRpdHkgaXMgcHJvdmlkZWQgZm9yIGxpc3QuJykpXG4gICAgICAgICk7XG4gICAgfVxuXG4gICAgcHVibGljIG92ZXJyaWRlIGNyZWF0ZUFjdGlvbkRlc2NyaXB0b3JzKCk6IEFycmF5PEFjdGlvbkRlc2NyaXB0b3I8TW5nUmV2RW50aXR5V2l0aElkPj4ge1xuICAgICAgICBpZiAoIXRoaXMucmV2TW9kZWwgfHwgIXRoaXMuc2VsZWN0ZWRSZXZpc2lvbkVudGl0eT8uZW50aXR5TmFtZSkge1xuICAgICAgICAgICAgdGhyb3cgbmV3IE1uZ0ludGVybmFsRXJyb3IoJ05vIHJldmlzaW9uIG1vZGVsIG9yIHJldmlzaW9uIGVudGl0eSBpcyBwcm92aWRlZCBmb3IgdGFibGV2aWV3LicpO1xuICAgICAgICB9XG5cbiAgICAgICAgY29uc3QgZW50aXR5TmFtZSA9IHRoaXMuc2VsZWN0ZWRSZXZpc2lvbkVudGl0eS5lbnRpdHlOYW1lO1xuICAgICAgICBjb25zdCBkZXRhaWxzQWN0aW9uID0gbmV3IEFjdGlvbkVkaXRvckRlc2NyaXB0b3IodGhpcy5kZXNjcmlwdG9yLmRldGFpbHNFZGl0b3IsICdlbnRpdHktcmV2aXNpb24tZGV0YWlscycpXG4gICAgICAgICAgICAud2l0aFBvc2l0aW9uKEFjdGlvblBvc2l0aW9uRW51bS5Sb3dDbGljaylcbiAgICAgICAgICAgIC53aXRoUm91dGVUcmlnZ2VyKCc6aXRlbUlkJylcbiAgICAgICAgICAgIC53aXRoRmV0Y2hGdW5jdGlvbihBY3Rpb25EYXRhUHJvdmlkZXJVdGlsLnJ1bkZldGNoT3JGYWlsKVxuICAgICAgICAgICAgLndpdGhUYWJsZXZpZXdDYXRlZ29yeShUYWJsZXZpZXdBY3Rpb25EZWZhdWx0Q2F0ZWdvcmllcy5ERVRBSUxTKVxuICAgICAgICAgICAgLndpdGhGZXRjaEZ1bmN0aW9uKGN0eCA9PiB7XG4gICAgICAgICAgICAgICAgaWYgKCFlbnRpdHlOYW1lKSB7XG4gICAgICAgICAgICAgICAgICAgIHJldHVybiB0aHJvd0Vycm9yKCgpID0+IG5ldyBNbmdJbnRlcm5hbEVycm9yKCdObyByZXZpc2lvbiBlbnRpdHkgaXMgcHJvdmlkZWQgZm9yIGRldGFpbHMuJykpO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICBpZiAoIWN0eC5wYXJhbWV0ZXJzLml0ZW1JZCkge1xuICAgICAgICAgICAgICAgICAgICByZXR1cm4gdGhyb3dFcnJvcigoKSA9PiBuZXcgTW5nSW50ZXJuYWxFcnJvcignTm8gaXRlbSBpZCBmb3IgcmV2aXNpb24gZW50aXR5IGRldGFpbHMgaXMgcHJvdmlkZWQuJykpO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICBjb25zdCByZXZJZCA9IGN0eC5wYXJhbWV0ZXJzLml0ZW1JZC50b1N0cmluZygpLnNwbGl0KCdfJylbMF07XG4gICAgICAgICAgICAgICAgY29uc3QgaXRlbUlkID0gY3R4LnBhcmFtZXRlcnMuaXRlbUlkLnRvU3RyaW5nKCkuc3BsaXQoJ18nKVsxXTtcbiAgICAgICAgICAgICAgICByZXR1cm4gdGhpcy5yZXZpc2lzb25zQXBpU2VydmljZS5mZXRjaFJldmlzaW9uc1dpdGhTdGF0ZUZvckVudGl0eVR5cGUoZW50aXR5TmFtZSwgcmV2SWQsIGl0ZW1JZCk7XG4gICAgICAgICAgICB9KTtcbiAgICAgICAgZGV0YWlsc0FjdGlvbi53aXRoRWRpdG9yQWN0aW9ucyhbbmV3IEFjdGlvbkVkaXRvclN1Ym1pdERlc2NyaXB0b3IoZGV0YWlsc0FjdGlvbiwgQWN0aW9uRWRpdG9yU3VibWl0VHlwZUVudW0uQ2FuY2VsKV0pO1xuICAgICAgICByZXR1cm4gW2RldGFpbHNBY3Rpb25dO1xuICAgIH1cbn1cbiIsIjxkaXYgY2xhc3M9XCJjYXJkXCI+XG4gICAgPGRpdiBjbGFzcz1cImZpZWxkIG1iLTBcIj5cbiAgICAgICAgPG1uZy1kcm9wZG93blxuICAgICAgICAgICAgaWQ9XCJyZXZpc2lvbkVudGl0eURyb3Bkb3duXCJcbiAgICAgICAgICAgIFtwbGFjZWhvbGRlcl09XCIncGFnZXMuZW50aXR5UmV2aXNpb25zLmRyb3Bkb3duLnBsYWNlaG9sZGVyJyB8IHRyYW5zbGF0ZVwiXG4gICAgICAgICAgICBbaXRlbXNMYWJlbFByb3BlcnR5XT1cIidlbnRpdHlOYW1lJ1wiXG4gICAgICAgICAgICBbKG5nTW9kZWwpXT1cInNlbGVjdGVkUmV2aXNpb25FbnRpdHlcIlxuICAgICAgICAgICAgKHZhbHVlQ2hhbmdlKT1cIm9uUmV2aXNpb25FbnRpdHlDaGFuZ2UoKVwiXG4gICAgICAgICAgICBbZGF0YVByb3ZpZGVyXT1cInJldmlzaW9uRW50aXRpZXNMb29rdXBQcm92aWRlclwiPjwvbW5nLWRyb3Bkb3duPlxuICAgICAgICA8c21hbGwgKm5nSWY9XCIhc2VsZWN0ZWRSZXZpc2lvbkVudGl0eVwiIGNsYXNzPVwiYmxvY2tcIj5cbiAgICAgICAgICAgIHt7ICdwYWdlcy5lbnRpdHlSZXZpc2lvbnMuZHJvcGRvd24uaGVscFRleHQnIHwgdHJhbnNsYXRlIH19XG4gICAgICAgIDwvc21hbGw+XG4gICAgPC9kaXY+XG48L2Rpdj5cbjxkaXYgKm5nSWY9XCJzaG93VGFibGV2aWV3KClcIj5cbiAgICA8bW5nLXRhYmxldmlldy1yb3V0ZSBbZGVzY3JpcHRvcl09XCJkZXNjcmlwdG9yXCIgW2RhdGFQcm92aWRlcl09XCJkYXRhUHJvdmlkZXJcIiBbYWN0aW9uc109XCJhY3Rpb25zXCI+PC9tbmctdGFibGV2aWV3LXJvdXRlPlxuPC9kaXY+XG4iXX0=
137
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYXVkaXQtZW50aXR5LXJldmlzaW9ucy1wYWdlLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3NyYy9saWIvY29tcG9uZW50cy9wYWdlcy9lbnRpdHktcmV2aXNpb25zL2F1ZGl0LWVudGl0eS1yZXZpc2lvbnMtcGFnZS5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi9zcmMvbGliL2NvbXBvbmVudHMvcGFnZXMvZW50aXR5LXJldmlzaW9ucy9hdWRpdC1lbnRpdHktcmV2aXNpb25zLXBhZ2UuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFDLFNBQVMsRUFBRSxJQUFJLEVBQUMsTUFBTSxpQkFBaUIsQ0FBQztBQUNoRCxPQUFPLEVBQUMsU0FBUyxFQUFFLFVBQVUsRUFBMEIsTUFBTSxFQUFFLE1BQU0sRUFBQyxNQUFNLGVBQWUsQ0FBQztBQUM1RixPQUFPLEVBQUMsa0JBQWtCLEVBQUMsTUFBTSw0QkFBNEIsQ0FBQztBQUM5RCxPQUFPLEVBQUMsV0FBVyxFQUFDLE1BQU0sZ0JBQWdCLENBQUM7QUFDM0MsT0FBTyxFQUFDLE1BQU0sRUFBQyxNQUFNLGlCQUFpQixDQUFDO0FBRXZDLE9BQU8sRUFBQyxZQUFZLEVBQUMsTUFBTSxrQkFBa0IsQ0FBQztBQUM5QyxPQUFPLEVBQUMsZUFBZSxFQUFDLE1BQU0scUJBQXFCLENBQUM7QUFDcEQsT0FBTyxFQUFDLGFBQWEsRUFBRSxVQUFVLEVBQUMsTUFBTSxNQUFNLENBQUM7QUFDL0MsT0FBTyxFQUFDLEdBQUcsRUFBQyxNQUFNLGdCQUFnQixDQUFDO0FBRW5DLE9BQU8sRUFDSCwyQkFBMkIsRUFFM0IsNkJBQTZCLEVBQzdCLGtCQUFrQixFQUNsQixpQkFBaUIsRUFDakIsb0JBQW9CLEVBQ3BCLGdCQUFnQixFQUNoQiwwQkFBMEIsRUFDMUIscUJBQXFCLEVBQ3JCLG1CQUFtQixFQUN0QixNQUFNLHdCQUF3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RUFBRTtnQkFDeEIsT0FBTyxVQUFVLENBQUMsR0FBRyxFQUFFLENBQUMsSUFBSSxnQkFBZ0IsQ0FBQyxxREFBcUQsQ0FBQyxDQUFDLENBQUM7YUFDeEc7WUFDRCxNQUFNLEtBQUssR0FBRyxHQUFHLENBQUMsVUFBVSxDQUFDLE1BQU0sQ0FBQyxRQUFRLEVBQUUsQ0FBQyxLQUFLLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUM7WUFDN0QsTUFBTSxNQUFNLEdBQUcsR0FBRyxDQUFDLFVBQVUsQ0FBQyxNQUFNLENBQUMsUUFBUSxFQUFFLENBQUMsS0FBSyxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDO1lBQzlELE9BQU8sSUFBSSxDQUFDLG9CQUFvQixDQUFDLG9DQUFvQyxDQUFDLFVBQVUsRUFBRSxLQUFLLEVBQUUsTUFBTSxDQUFDLENBQUM7UUFDckcsQ0FBQyxDQUFDO2FBQ0QsZUFBZSxDQUFDLG9EQUFvRCxDQUFDLENBQUM7UUFDM0UsT0FBTyxDQUFDLGFBQWEsQ0FBQyxDQUFDO0lBQzNCLENBQUM7OEdBbklRLG9DQUFvQztrR0FBcEMsb0NBQW9DLGtIQ3JDakQsa3lCQWlCQSw0Q0RpQmMsb0JBQW9CLGlWQUFFLDBCQUEwQixrSEFBRSxXQUFXLCtWQUFhLElBQUksNEZBQUUsZUFBZSwyRkFBRSxZQUFZOzsyRkFHOUcsb0NBQW9DO2tCQU5oRCxTQUFTO2lDQUNNLElBQUksWUFDTixpQ0FBaUMsV0FDbEMsQ0FBQyxvQkFBb0IsRUFBRSwwQkFBMEIsRUFBRSxXQUFXLEVBQUUsU0FBUyxFQUFFLElBQUksRUFBRSxlQUFlLEVBQUUsWUFBWSxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtBc3luY1BpcGUsIE5nSWZ9IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbic7XG5pbXBvcnQge0NvbXBvbmVudCwgRGVzdHJveVJlZiwgT25Jbml0LCBXcml0YWJsZVNpZ25hbCwgaW5qZWN0LCBzaWduYWx9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHt0YWtlVW50aWxEZXN0cm95ZWR9IGZyb20gJ0Bhbmd1bGFyL2NvcmUvcnhqcy1pbnRlcm9wJztcbmltcG9ydCB7Rm9ybXNNb2R1bGV9IGZyb20gJ0Bhbmd1bGFyL2Zvcm1zJztcbmltcG9ydCB7Um91dGVyfSBmcm9tICdAYW5ndWxhci9yb3V0ZXInO1xuXG5pbXBvcnQge0Zvcm1seU1vZHVsZX0gZnJvbSAnQG5neC1mb3JtbHkvY29yZSc7XG5pbXBvcnQge1RyYW5zbGF0ZU1vZHVsZX0gZnJvbSAnQG5neC10cmFuc2xhdGUvY29yZSc7XG5pbXBvcnQge2NvbWJpbmVMYXRlc3QsIHRocm93RXJyb3J9IGZyb20gJ3J4anMnO1xuaW1wb3J0IHttYXB9IGZyb20gJ3J4anMvb3BlcmF0b3JzJztcblxuaW1wb3J0IHtcbiAgICBBTW5nVGFibGV2aWV3Um91dGVDb21wb25lbnQsXG4gICAgQWN0aW9uRGVzY3JpcHRvcixcbiAgICBBY3Rpb25FZGl0b3JEZXRhaWxzRGVzY3JpcHRvcixcbiAgICBMb29rdXBEYXRhUHJvdmlkZXIsXG4gICAgTWVkaXVzUXVlcnlSZXN1bHQsXG4gICAgTW5nRHJvcGRvd25Db21wb25lbnQsXG4gICAgTW5nSW50ZXJuYWxFcnJvcixcbiAgICBNbmdUYWJsZXZpZXdSb3V0ZUNvbXBvbmVudCxcbiAgICBUYWJsZXZpZXdEYXRhUHJvdmlkZXIsXG4gICAgVGFibGV2aWV3RGVzY3JpcHRvclxufSBmcm9tICdAbWVkaXVzaW5jL21uZy1jb21tb25zJztcblxuaW1wb3J0IHtNbmdHdWlFbnRpdHlNb2RlbER0b30gZnJvbSAnLi4vLi4vLi4vYXBpL21vZGVscy9ndWlFbnRpdHlNb2RlbCc7XG5pbXBvcnQge01uZ0F1ZGl0UmV2aXNpb25zQXBpU2VydmljZX0gZnJvbSAnLi4vLi4vLi4vYXBpL3NlcnZpY2VzL2F1ZGl0LXJldmlzaW9ucy1hcGkuc2VydmljZSc7XG5pbXBvcnQge01uZ0F1ZGl0U2VydmljZX0gZnJvbSAnLi4vLi4vLi4vYXBpL3NlcnZpY2VzL2F1ZGl0LnNlcnZpY2UnO1xuaW1wb3J0IHtNbmdHdWlFbnRpdHlNb2RlbFdpdGhJMThufSBmcm9tICcuLi8uLi8uLi9tb2RlbHMvZ3VpRW50aXR5TW9kZWxXaXRoSTE4bi5tb2RlbCc7XG5pbXBvcnQge01uZ1JldkVudGl0eVdpdGhJZH0gZnJvbSAnLi4vLi4vLi4vbW9kZWxzL3JldkVudGl0eVdpdGhJZC5tb2RlbCc7XG5pbXBvcnQge0F1ZGl0VXRpbH0gZnJvbSAnLi4vLi4vLi4vdXRpbHMvYXVkaXQudXRpbCc7XG5cbkBDb21wb25lbnQoe1xuICAgIHN0YW5kYWxvbmU6IHRydWUsXG4gICAgc2VsZWN0b3I6ICdtbmctYXVkaXQtZW50aXR5LXJldmlzaW9ucy1wYWdlJyxcbiAgICBpbXBvcnRzOiBbTW5nRHJvcGRvd25Db21wb25lbnQsIE1uZ1RhYmxldmlld1JvdXRlQ29tcG9uZW50LCBGb3Jtc01vZHVsZSwgQXN5bmNQaXBlLCBOZ0lmLCBUcmFuc2xhdGVNb2R1bGUsIEZvcm1seU1vZHVsZV0sXG4gICAgdGVtcGxhdGVVcmw6ICdhdWRpdC1lbnRpdHktcmV2aXNpb25zLXBhZ2UuY29tcG9uZW50Lmh0bWwnXG59KVxuZXhwb3J0IGNsYXNzIE1uZ0F1ZGl0RW50aXR5UmV2aXNpb25zUGFnZUNvbXBvbmVudCBleHRlbmRzIEFNbmdUYWJsZXZpZXdSb3V0ZUNvbXBvbmVudDxNbmdSZXZFbnRpdHlXaXRoSWQsIHVua25vd24+IGltcGxlbWVudHMgT25Jbml0IHtcbiAgICBwcml2YXRlIGRlc3Ryb3lSZWYgPSBpbmplY3QoRGVzdHJveVJlZik7XG4gICAgcHJpdmF0ZSBhdWRpdFNlcnZpY2UgPSBpbmplY3QoTW5nQXVkaXRTZXJ2aWNlKTtcbiAgICBwcml2YXRlIHJldmlzaXNvbnNBcGlTZXJ2aWNlID0gaW5qZWN0KE1uZ0F1ZGl0UmV2aXNpb25zQXBpU2VydmljZSk7XG5cbiAgICBwdWJsaWMgcmV2TW9kZWw/OiBNbmdHdWlFbnRpdHlNb2RlbER0bztcbiAgICBwdWJsaWMgc2VsZWN0ZWRSZXZpc2lvbkVudGl0eT86IE1uZ0d1aUVudGl0eU1vZGVsRHRvO1xuICAgIHB1YmxpYyByZXZpc2lvbkVudGl0aWVzTG9va3VwUHJvdmlkZXI/OiBMb29rdXBEYXRhUHJvdmlkZXI8TW5nR3VpRW50aXR5TW9kZWxXaXRoSTE4biwgbmV2ZXI+O1xuXG4gICAgcHVibGljIHNob3dUYWJsZXZpZXc6IFdyaXRhYmxlU2lnbmFsPGJvb2xlYW4+ID0gc2lnbmFsKGZhbHNlKTtcblxuICAgIGNvbnN0cnVjdG9yKHByaXZhdGUgcm91dGVyOiBSb3V0ZXIpIHtcbiAgICAgICAgc3VwZXIoKTtcbiAgICAgICAgdGhpcy5yZXZpc2lvbkVudGl0aWVzTG9va3VwUHJvdmlkZXIgPSBuZXcgTG9va3VwRGF0YVByb3ZpZGVyPE1uZ0d1aUVudGl0eU1vZGVsV2l0aEkxOG4sIG5ldmVyPihNbmdHdWlFbnRpdHlNb2RlbFdpdGhJMThuKS53aXRoTG9va3VwKCgpID0+XG4gICAgICAgICAgICB0aGlzLmF1ZGl0U2VydmljZS5hdWRpdE1vZGVsJC5waXBlKFxuICAgICAgICAgICAgICAgIG1hcChtb2RlbCA9PiB7XG4gICAgICAgICAgICAgICAgICAgIGNvbnN0IG1vZGVsSTE4biA9IG1vZGVsIGFzIE1uZ0d1aUVudGl0eU1vZGVsV2l0aEkxOG5bXTtcbiAgICAgICAgICAgICAgICAgICAgbW9kZWxJMThuLnNvcnQoKG0xLCBtMikgPT4ge1xuICAgICAgICAgICAgICAgICAgICAgICAgaWYgKG0xLmVudGl0eU5hbWUgJiYgbTIuZW50aXR5TmFtZSkge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybiBtMS5lbnRpdHlOYW1lLmxvY2FsZUNvbXBhcmUobTIuZW50aXR5TmFtZSk7XG4gICAgICAgICAgICAgICAgICAgICAgICB9IGVsc2UgaWYgKG0xLmVudGl0eU5hbWUgJiYgIW0yLmVudGl0eU5hbWUpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICByZXR1cm4gMTtcbiAgICAgICAgICAgICAgICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuIC0xO1xuICAgICAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICB9KTtcbiAgICAgICAgICAgICAgICAgICAgbW9kZWxJMThuLmZvckVhY2goaXRlbSA9PiB7XG4gICAgICAgICAgICAgICAgICAgICAgICBjb25zdCB0cmFuc2xhdGVkRW50aXR5TmFtZSA9IHRoaXMudHJhbnNsYXRlU2VydmljZS5pbnN0YW50KCdBdWRpdEVudGl0aWVzLicgKyBpdGVtLmVudGl0eU5hbWUpO1xuICAgICAgICAgICAgICAgICAgICAgICAgaXRlbS5lbnRpdHlOYW1lSTE4biA9IHRyYW5zbGF0ZWRFbnRpdHlOYW1lLmluY2x1ZGVzKCdBdWRpdEVudGl0aWVzLicpID8gaXRlbS5lbnRpdHlOYW1lIDogdHJhbnNsYXRlZEVudGl0eU5hbWU7XG4gICAgICAgICAgICAgICAgICAgIH0pO1xuICAgICAgICAgICAgICAgICAgICByZXR1cm4gbW9kZWxJMThuO1xuICAgICAgICAgICAgICAgIH0pXG4gICAgICAgICAgICApXG4gICAgICAgICk7XG4gICAgfVxuXG4gICAgb3ZlcnJpZGUgbmdPbkluaXQoKSB7XG4gICAgICAgIHRoaXMucm91dGUucGFyYW1NYXAucGlwZSh0YWtlVW50aWxEZXN0cm95ZWQodGhpcy5kZXN0cm95UmVmKSkuc3Vic2NyaWJlKHBhcmFtcyA9PiB7XG4gICAgICAgICAgICBjb25zdCBlbnRpdHlDbGFzcyA9IHBhcmFtcy5nZXQoJ2VudGl0eUNsYXNzJyk7XG4gICAgICAgICAgICBpZiAoZW50aXR5Q2xhc3MpIHtcbiAgICAgICAgICAgICAgICBjb21iaW5lTGF0ZXN0KFt0aGlzLmF1ZGl0U2VydmljZS5hdWRpdE1vZGVsJCwgdGhpcy5hdWRpdFNlcnZpY2UucmV2TW9kZWwkXSkuc3Vic2NyaWJlKChbZW50aXRpZXMsIHJldk1vZGVsXSkgPT4ge1xuICAgICAgICAgICAgICAgICAgICB0aGlzLnJldk1vZGVsID0gcmV2TW9kZWw7XG5cbiAgICAgICAgICAgICAgICAgICAgZm9yIChjb25zdCBlIG9mIGVudGl0aWVzKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICBpZiAoZS5lbnRpdHlOYW1lID09PSBlbnRpdHlDbGFzcykge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRoaXMuc2VsZWN0ZWRSZXZpc2lvbkVudGl0eSA9IGU7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgc3VwZXIubmdPbkluaXQoKTtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBzZXRUaW1lb3V0KCgpID0+IHRoaXMuc2hvd1RhYmxldmlldy5zZXQodHJ1ZSkpO1xuICAgICAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgfSk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH0pO1xuICAgIH1cblxuICAgIHB1YmxpYyBvblJldmlzaW9uRW50aXR5Q2hhbmdlKCkge1xuICAgICAgICB0aGlzLnNob3dUYWJsZXZpZXcuc2V0KGZhbHNlKTtcbiAgICAgICAgaWYgKHRoaXMuc2VsZWN0ZWRSZXZpc2lvbkVudGl0eSkge1xuICAgICAgICAgICAgdGhpcy5yb3V0ZXIubmF2aWdhdGUoWycvYXVkaXQvZW50aXR5LXJldmlzaW9ucy8nICsgdGhpcy5zZWxlY3RlZFJldmlzaW9uRW50aXR5LmVudGl0eU5hbWVdKTtcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgIHRoaXMucm91dGVyLm5hdmlnYXRlKFsnL2F1ZGl0L2VudGl0eS1yZXZpc2lvbnMvJ10pO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgcHJvdGVjdGVkIGNyZWF0ZVRhYmxldmlld0Rlc2NyaXB0b3IoKSB7XG4gICAgICAgIGlmICghdGhpcy5yZXZNb2RlbCB8fCAhdGhpcy5zZWxlY3RlZFJldmlzaW9uRW50aXR5Py5lbnRpdHlOYW1lKSB7XG4gICAgICAgICAgICB0aHJvdyBuZXcgTW5nSW50ZXJuYWxFcnJvcignTm8gcmV2aXNpb24gbW9kZWwgb3IgcmV2aXNpb24gZW50aXR5IGlzIHByb3ZpZGVkIGZvciB0YWJsZXZpZXcuJyk7XG4gICAgICAgIH1cblxuICAgICAgICBjb25zdCBkZXNjID0gbmV3IFRhYmxldmlld0Rlc2NyaXB0b3IoTW5nUmV2RW50aXR5V2l0aElkLCAnbWVyZ2VkSWQnLCB1bmRlZmluZWQsIHRoaXMuc2VsZWN0ZWRSZXZpc2lvbkVudGl0eS5lbnRpdHlOYW1lKTtcblxuICAgICAgICBBdWRpdFV0aWwuYnVpbGREZXNjcmlwdG9yRm9yRW50aXR5UmV2aXNpb24oZGVzYywgdGhpcy5yZXZNb2RlbCwgdGhpcy5zZWxlY3RlZFJldmlzaW9uRW50aXR5KTtcblxuICAgICAgICBkZXNjLnRhYmxlLndpdGhDb2x1bW5zUmVzaXphYmxlKCk7XG4gICAgICAgIGRlc2MudGFibGUud2l0aEN1cnJlbnRDb2x1bW5zUmVvcmRlcmFibGUoKTtcbiAgICAgICAgZGVzYy50YWJsZS53aXRoQ3VycmVudENvbHVtbnNUb2dnbGVhYmxlKCk7XG4gICAgICAgIGRlc2MudGFibGUud2l0aERhdGFLZXkoYEVudGl0eVJldmlzaW9uc1BhZ2VfJHt0aGlzLnNlbGVjdGVkUmV2aXNpb25FbnRpdHkuZW50aXR5TmFtZX1gKTtcblxuICAgICAgICByZXR1cm4gZGVzYztcbiAgICB9XG5cbiAgICBwcm90ZWN0ZWQgY3JlYXRlVGFibGV2aWV3RGF0YVByb3ZpZGVyKCkge1xuICAgICAgICBpZiAoIXRoaXMucmV2TW9kZWwgfHwgIXRoaXMuc2VsZWN0ZWRSZXZpc2lvbkVudGl0eT8uZW50aXR5TmFtZSkge1xuICAgICAgICAgICAgdGhyb3cgbmV3IE1uZ0ludGVybmFsRXJyb3IoJ05vIHJldmlzaW9uIG1vZGVsIG9yIHJldmlzaW9uIGVudGl0eSBpcyBwcm92aWRlZCBmb3IgdGFibGV2aWV3LicpO1xuICAgICAgICB9XG5cbiAgICAgICAgY29uc3QgZW50aXR5TmFtZSA9IHRoaXMuc2VsZWN0ZWRSZXZpc2lvbkVudGl0eS5lbnRpdHlOYW1lO1xuICAgICAgICByZXR1cm4gbmV3IFRhYmxldmlld0RhdGFQcm92aWRlcihNbmdSZXZFbnRpdHlXaXRoSWQpLndpdGhHZXRBbGwocXAgPT5cbiAgICAgICAgICAgIHRoaXMuc2VsZWN0ZWRSZXZpc2lvbkVudGl0eT8uZW50aXR5TmFtZVxuICAgICAgICAgICAgICAgID8gY29tYmluZUxhdGVzdChbXG4gICAgICAgICAgICAgICAgICAgICAgdGhpcy5yZXZpc2lzb25zQXBpU2VydmljZS5jb3VudFJldmlzaW9uc1dpdGhTdGF0ZUZvckVudGl0eVR5cGUocXAsIGVudGl0eU5hbWUpLFxuICAgICAgICAgICAgICAgICAgICAgIHRoaXMucmV2aXNpc29uc0FwaVNlcnZpY2UubGlzdFJldmlzaW9uc1dpdGhTdGF0ZUZvckVudGl0eVR5cGUocXAsIGVudGl0eU5hbWUpXG4gICAgICAgICAgICAgICAgICBdKS5waXBlKFxuICAgICAgICAgICAgICAgICAgICAgIG1hcCgoW2NvdW50LCB2YWx1ZXNdKSA9PiB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IHJldkVudGl0eVdpdGhTdGF0ZUFuZElkTGlzdCA9IFtdO1xuICAgICAgICAgICAgICAgICAgICAgICAgICBmb3IgKGNvbnN0IHJldkVudGl0eVdpdGhTdGF0ZSBvZiB2YWx1ZXMpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IHJldkVudGl0eVdpdGhTdGF0ZUFuZElkID0gbmV3IE1uZ1JldkVudGl0eVdpdGhJZCgpO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcmV2RW50aXR5V2l0aFN0YXRlQW5kSWQubWVyZ2VkSWQgPSByZXZFbnRpdHlXaXRoU3RhdGUucmV2RW50aXR5Py5bJ3JldiddICsgJ18nICsgcmV2RW50aXR5V2l0aFN0YXRlLmVudGl0eVN0YXRlPy5bJ2lkJ107XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICByZXZFbnRpdHlXaXRoU3RhdGVBbmRJZC5yZXZUeXBlID0gcmV2RW50aXR5V2l0aFN0YXRlLnJldlR5cGU7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICByZXZFbnRpdHlXaXRoU3RhdGVBbmRJZC5yZXZFbnRpdHkgPSByZXZFbnRpdHlXaXRoU3RhdGUucmV2RW50aXR5O1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcmV2RW50aXR5V2l0aFN0YXRlQW5kSWQuZW50aXR5U3RhdGUgPSByZXZFbnRpdHlXaXRoU3RhdGUuZW50aXR5U3RhdGU7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICByZXZFbnRpdHlXaXRoU3RhdGVBbmRJZC5lbnRpdHlDbGFzc05hbWUgPSByZXZFbnRpdHlXaXRoU3RhdGUuZW50aXR5Q2xhc3NOYW1lO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcmV2RW50aXR5V2l0aFN0YXRlQW5kSWRMaXN0LnB1c2gocmV2RW50aXR5V2l0aFN0YXRlQW5kSWQpO1xuICAgICAgICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybiBNZWRpdXNRdWVyeVJlc3VsdC5mcm9tQXJyYXkocmV2RW50aXR5V2l0aFN0YXRlQW5kSWRMaXN0LCBjb3VudCk7XG4gICAgICAgICAgICAgICAgICAgICAgfSlcbiAgICAgICAgICAgICAgICAgIClcbiAgICAgICAgICAgICAgICA6IHRocm93RXJyb3IoKCkgPT4gbmV3IE1uZ0ludGVybmFsRXJyb3IoJ05vIHJldmlzaW9uIGVudGl0eSBpcyBwcm92aWRlZCBmb3IgbGlzdC4nKSlcbiAgICAgICAgKTtcbiAgICB9XG5cbiAgICBwdWJsaWMgb3ZlcnJpZGUgY3JlYXRlQWN0aW9uRGVzY3JpcHRvcnMoKTogQXJyYXk8QWN0aW9uRGVzY3JpcHRvcjxNbmdSZXZFbnRpdHlXaXRoSWQ+PiB7XG4gICAgICAgIGlmICghdGhpcy5yZXZNb2RlbCB8fCAhdGhpcy5zZWxlY3RlZFJldmlzaW9uRW50aXR5Py5lbnRpdHlOYW1lKSB7XG4gICAgICAgICAgICB0aHJvdyBuZXcgTW5nSW50ZXJuYWxFcnJvcignTm8gcmV2aXNpb24gbW9kZWwgb3IgcmV2aXNpb24gZW50aXR5IGlzIHByb3ZpZGVkIGZvciB0YWJsZXZpZXcuJyk7XG4gICAgICAgIH1cblxuICAgICAgICBjb25zdCBlbnRpdHlOYW1lID0gdGhpcy5zZWxlY3RlZFJldmlzaW9uRW50aXR5LmVudGl0eU5hbWU7XG4gICAgICAgIGNvbnN0IGRldGFpbHNBY3Rpb24gPSBuZXcgQWN0aW9uRWRpdG9yRGV0YWlsc0Rlc2NyaXB0b3IodGhpcy5kZXNjcmlwdG9yLmRldGFpbHNFZGl0b3IpXG4gICAgICAgICAgICAud2l0aEZldGNoRnVuY3Rpb24oY3R4ID0+IHtcbiAgICAgICAgICAgICAgICBpZiAoIWVudGl0eU5hbWUpIHtcbiAgICAgICAgICAgICAgICAgICAgcmV0dXJuIHRocm93RXJyb3IoKCkgPT4gbmV3IE1uZ0ludGVybmFsRXJyb3IoJ05vIHJldmlzaW9uIGVudGl0eSBpcyBwcm92aWRlZCBmb3IgZGV0YWlscy4nKSk7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIGlmICghY3R4LnBhcmFtZXRlcnMuaXRlbUlkKSB7XG4gICAgICAgICAgICAgICAgICAgIHJldHVybiB0aHJvd0Vycm9yKCgpID0+IG5ldyBNbmdJbnRlcm5hbEVycm9yKCdObyBpdGVtIGlkIGZvciByZXZpc2lvbiBlbnRpdHkgZGV0YWlscyBpcyBwcm92aWRlZC4nKSk7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIGNvbnN0IHJldklkID0gY3R4LnBhcmFtZXRlcnMuaXRlbUlkLnRvU3RyaW5nKCkuc3BsaXQoJ18nKVswXTtcbiAgICAgICAgICAgICAgICBjb25zdCBpdGVtSWQgPSBjdHgucGFyYW1ldGVycy5pdGVtSWQudG9TdHJpbmcoKS5zcGxpdCgnXycpWzFdO1xuICAgICAgICAgICAgICAgIHJldHVybiB0aGlzLnJldmlzaXNvbnNBcGlTZXJ2aWNlLmZldGNoUmV2aXNpb25zV2l0aFN0YXRlRm9yRW50aXR5VHlwZShlbnRpdHlOYW1lLCByZXZJZCwgaXRlbUlkKTtcbiAgICAgICAgICAgIH0pXG4gICAgICAgICAgICAud2l0aEVkaXRvclRpdGxlKCdwYWdlcy5lbnRpdHlSZXZpc2lvbnMuYWN0aW9ucy5kZXRhaWxzLmVkaXRvci50aXRsZScpO1xuICAgICAgICByZXR1cm4gW2RldGFpbHNBY3Rpb25dO1xuICAgIH1cbn1cbiIsIjxkaXYgY2xhc3M9XCJjYXJkXCI+XG4gICAgPGRpdiBjbGFzcz1cImZpZWxkIG1iLTBcIj5cbiAgICAgICAgPG1uZy1kcm9wZG93blxuICAgICAgICAgICAgaWQ9XCJyZXZpc2lvbkVudGl0eURyb3Bkb3duXCJcbiAgICAgICAgICAgIFtwbGFjZWhvbGRlcl09XCIncGFnZXMuZW50aXR5UmV2aXNpb25zLmRyb3Bkb3duLnBsYWNlaG9sZGVyJyB8IHRyYW5zbGF0ZVwiXG4gICAgICAgICAgICBbaXRlbXNMYWJlbFByb3BlcnR5XT1cIidlbnRpdHlOYW1lSTE4bidcIlxuICAgICAgICAgICAgWyhuZ01vZGVsKV09XCJzZWxlY3RlZFJldmlzaW9uRW50aXR5XCJcbiAgICAgICAgICAgICh2YWx1ZUNoYW5nZSk9XCJvblJldmlzaW9uRW50aXR5Q2hhbmdlKClcIlxuICAgICAgICAgICAgW2RhdGFQcm92aWRlcl09XCJyZXZpc2lvbkVudGl0aWVzTG9va3VwUHJvdmlkZXJcIj48L21uZy1kcm9wZG93bj5cbiAgICAgICAgPHNtYWxsICpuZ0lmPVwiIXNlbGVjdGVkUmV2aXNpb25FbnRpdHlcIiBjbGFzcz1cImJsb2NrXCI+XG4gICAgICAgICAgICB7eyAncGFnZXMuZW50aXR5UmV2aXNpb25zLmRyb3Bkb3duLmhlbHBUZXh0JyB8IHRyYW5zbGF0ZSB9fVxuICAgICAgICA8L3NtYWxsPlxuICAgIDwvZGl2PlxuPC9kaXY+XG48ZGl2ICpuZ0lmPVwic2hvd1RhYmxldmlldygpXCI+XG4gICAgPG1uZy10YWJsZXZpZXctcm91dGUgW2Rlc2NyaXB0b3JdPVwiZGVzY3JpcHRvclwiIFtkYXRhUHJvdmlkZXJdPVwiZGF0YVByb3ZpZGVyXCIgW2FjdGlvbnNdPVwiYWN0aW9uc1wiPjwvbW5nLXRhYmxldmlldy1yb3V0ZT5cbjwvZGl2PlxuIl19