@netgrif/components-core 6.2.2 → 6.3.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.
- package/esm2020/assets/i18n/de.json +17 -0
- package/esm2020/assets/i18n/en.json +17 -0
- package/esm2020/assets/i18n/sk.json +17 -0
- package/esm2020/lib/authentication/models/user.transformer.mjs +2 -2
- package/esm2020/lib/authentication/public-api.mjs +3 -1
- package/esm2020/lib/authorization/permission/permission.service.mjs +2 -2
- package/esm2020/lib/filter/filter.repository.mjs +7 -1
- package/esm2020/lib/impersonation/models/user-impersonate-config-metadata.mjs +2 -0
- package/esm2020/lib/impersonation/models/user-impersonation-constants.mjs +11 -0
- package/esm2020/lib/impersonation/public-api.mjs +9 -0
- package/esm2020/lib/impersonation/services/impersonation-user-list.service.mjs +19 -0
- package/esm2020/lib/impersonation/services/impersonation-user-resource.service.mjs +25 -0
- package/esm2020/lib/impersonation/services/impersonation-user-select.service.mjs +85 -0
- package/esm2020/lib/impersonation/services/impersonation.service.mjs +90 -0
- package/esm2020/lib/navigation/navigation-double-drawer/abstract-navigation-double-drawer.mjs +19 -6
- package/esm2020/lib/navigation/navigation-drawer/abstract-navigation-drawer.component.mjs +2 -2
- package/esm2020/lib/navigation/quick-panel/components/abstract-quick-panel.component.mjs +1 -1
- package/esm2020/lib/resources/interface/user-resource.mjs +1 -1
- package/esm2020/lib/side-menu/content-components/injection-tokens.mjs +3 -1
- package/esm2020/lib/side-menu/content-components/public-api.mjs +3 -1
- package/esm2020/lib/side-menu/content-components/user-impersonate/abstract-user-impersonate.component.mjs +37 -0
- package/esm2020/lib/side-menu/content-components/user-impersonate/model/user-impersonate-injection-data.mjs +2 -0
- package/esm2020/lib/side-menu/models/side-menu-size.mjs +2 -1
- package/esm2020/lib/user/models/user.mjs +15 -2
- package/esm2020/lib/user/services/user-comparator.service.mjs +4 -3
- package/esm2020/lib/user/services/user.service.mjs +17 -12
- package/esm2020/lib/utility/tests/test-config.mjs +6 -1
- package/esm2020/public-api.mjs +2 -1
- package/fesm2015/netgrif-components-core.mjs +353 -25
- package/fesm2015/netgrif-components-core.mjs.map +1 -1
- package/fesm2020/netgrif-components-core.mjs +349 -25
- package/fesm2020/netgrif-components-core.mjs.map +1 -1
- package/lib/authentication/public-api.d.ts +2 -0
- package/lib/filter/filter.repository.d.ts +4 -0
- package/lib/impersonation/models/user-impersonate-config-metadata.d.ts +3 -0
- package/lib/impersonation/models/user-impersonation-constants.d.ts +9 -0
- package/lib/impersonation/public-api.d.ts +6 -0
- package/lib/impersonation/services/impersonation-user-list.service.d.ts +12 -0
- package/lib/impersonation/services/impersonation-user-resource.service.d.ts +17 -0
- package/lib/impersonation/services/impersonation-user-select.service.d.ts +25 -0
- package/lib/impersonation/services/impersonation.service.d.ts +37 -0
- package/lib/navigation/navigation-double-drawer/abstract-navigation-double-drawer.d.ts +9 -2
- package/lib/navigation/quick-panel/components/abstract-quick-panel.component.d.ts +1 -1
- package/lib/resources/interface/user-resource.d.ts +1 -0
- package/lib/side-menu/content-components/injection-tokens.d.ts +2 -0
- package/lib/side-menu/content-components/public-api.d.ts +2 -0
- package/lib/side-menu/content-components/user-impersonate/abstract-user-impersonate.component.d.ts +14 -0
- package/lib/side-menu/content-components/user-impersonate/model/user-impersonate-injection-data.d.ts +8 -0
- package/lib/side-menu/models/side-menu-size.d.ts +2 -1
- package/lib/user/models/user.d.ts +10 -1
- package/lib/user/services/user-comparator.service.d.ts +1 -1
- package/package.json +1 -1
- package/public-api.d.ts +1 -0
- package/src/assets/i18n/de.json +17 -0
- package/src/assets/i18n/en.json +17 -0
- package/src/assets/i18n/sk.json +17 -0
|
@@ -109,6 +109,12 @@
|
|
|
109
109
|
"option-selector": {
|
|
110
110
|
"select": "Auswählen",
|
|
111
111
|
"choose-one-option": "Wählen Sie eine Option aus"
|
|
112
|
+
},
|
|
113
|
+
"impersonation": {
|
|
114
|
+
"title": "Benutzer vertreten",
|
|
115
|
+
"submit": "Vertreten",
|
|
116
|
+
"cease": "Vertretung abbrechen",
|
|
117
|
+
"impersonating": "in Vertretung als"
|
|
112
118
|
}
|
|
113
119
|
},
|
|
114
120
|
"search": {
|
|
@@ -457,5 +463,16 @@
|
|
|
457
463
|
},
|
|
458
464
|
"dynamicNavigation": {
|
|
459
465
|
"couldNotResolveView": "Ein Fehler ist aufgetreten während des Ansichtauflösungsprocess. Der Ansicht kann nicht angezeigt werden"
|
|
466
|
+
},
|
|
467
|
+
"impersonation": {
|
|
468
|
+
"user": {
|
|
469
|
+
"successfullyRepresented": "Benutzer wird jetzt vertreten",
|
|
470
|
+
"currentlyAlreadyRepresented": "Für den Benutzer existiert bereits eine Vertretung",
|
|
471
|
+
"currentlyLogged": "Benutzer ist bereits angemeldet"
|
|
472
|
+
},
|
|
473
|
+
"action": {
|
|
474
|
+
"failed": "Aktion ist fehlgeschlagen",
|
|
475
|
+
"deactivated": "Vertretung wurde erfolgreich deaktiviert"
|
|
476
|
+
}
|
|
460
477
|
}
|
|
461
478
|
}
|
|
@@ -109,6 +109,12 @@
|
|
|
109
109
|
"option-selector": {
|
|
110
110
|
"select": "Select",
|
|
111
111
|
"choose-one-option": "Choose one of the provided options"
|
|
112
|
+
},
|
|
113
|
+
"impersonation": {
|
|
114
|
+
"title": "Impersonate user",
|
|
115
|
+
"submit": "Impersonate",
|
|
116
|
+
"cease": "Cancel impersonation",
|
|
117
|
+
"impersonating": "impersonating"
|
|
112
118
|
}
|
|
113
119
|
},
|
|
114
120
|
"search": {
|
|
@@ -457,5 +463,16 @@
|
|
|
457
463
|
},
|
|
458
464
|
"dynamicNavigation": {
|
|
459
465
|
"couldNotResolveView": "An error has occurred during the view resolution process. The view could not be displayed"
|
|
466
|
+
},
|
|
467
|
+
"impersonation": {
|
|
468
|
+
"user": {
|
|
469
|
+
"successfullyRepresented": "User successfully represented",
|
|
470
|
+
"currentlyAlreadyRepresented": "User is already being represented by someone else",
|
|
471
|
+
"currentlyLogged": "User is currently logged in"
|
|
472
|
+
},
|
|
473
|
+
"action": {
|
|
474
|
+
"failed": "Action failed",
|
|
475
|
+
"deactivated": "Representation was successfully deactivated"
|
|
476
|
+
}
|
|
460
477
|
}
|
|
461
478
|
}
|
|
@@ -109,6 +109,12 @@
|
|
|
109
109
|
"option-selector": {
|
|
110
110
|
"select": "Zvoliť",
|
|
111
111
|
"choose-one-option": "Vyberte jednu z možností"
|
|
112
|
+
},
|
|
113
|
+
"impersonation": {
|
|
114
|
+
"title": "Zastúpenie používateľa",
|
|
115
|
+
"submit": "Zastúpiť",
|
|
116
|
+
"cease": "Zrušiť zastúpenie",
|
|
117
|
+
"impersonating": "v zastúpení"
|
|
112
118
|
}
|
|
113
119
|
},
|
|
114
120
|
"search": {
|
|
@@ -457,5 +463,16 @@
|
|
|
457
463
|
},
|
|
458
464
|
"dynamicNavigation": {
|
|
459
465
|
"couldNotResolveView": "Počas načítania zobrazenia sa vyskytla chyba. Zobrazenie nie je možné zobraziť"
|
|
466
|
+
},
|
|
467
|
+
"impersonation": {
|
|
468
|
+
"user": {
|
|
469
|
+
"successfullyRepresented": "Používateľ bol úspešne zastúpený",
|
|
470
|
+
"currentlyAlreadyRepresented": "Používateľ je momentálne zastupovaný",
|
|
471
|
+
"currentlyLogged": "Používateľ je momentálne prihlásený"
|
|
472
|
+
},
|
|
473
|
+
"action": {
|
|
474
|
+
"failed": "Akciu sa nepodarilo vykonať",
|
|
475
|
+
"deactivated": "Zastupovanie bolo úspešne deaktivované"
|
|
476
|
+
}
|
|
460
477
|
}
|
|
461
478
|
}
|
|
@@ -7,7 +7,7 @@ export class UserTransformer {
|
|
|
7
7
|
}
|
|
8
8
|
transform(user) {
|
|
9
9
|
const groups = []; // TODO groups parsing
|
|
10
|
-
return new User(user.id, user.email, user.name, user.surname, this.transformAuthorities(user.authorities), user.processRoles, groups, user.nextGroups);
|
|
10
|
+
return new User(user.id, user.email, user.name, user.surname, this.transformAuthorities(user.authorities), user.processRoles, groups, user.nextGroups, user.impersonated ? this.transform(user.impersonated) : undefined);
|
|
11
11
|
}
|
|
12
12
|
}
|
|
13
13
|
UserTransformer.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.3.11", ngImport: i0, type: UserTransformer, deps: [], target: i0.ɵɵFactoryTarget.Injectable });
|
|
@@ -18,4 +18,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.11", ngImpo
|
|
|
18
18
|
providedIn: 'root'
|
|
19
19
|
}]
|
|
20
20
|
}] });
|
|
21
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
21
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidXNlci50cmFuc2Zvcm1lci5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL25ldGdyaWYtY29tcG9uZW50cy1jb3JlL3NyYy9saWIvYXV0aGVudGljYXRpb24vbW9kZWxzL3VzZXIudHJhbnNmb3JtZXIudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFDLElBQUksRUFBQyxNQUFNLHdCQUF3QixDQUFDO0FBRTVDLE9BQU8sRUFBQyxVQUFVLEVBQUMsTUFBTSxlQUFlLENBQUM7O0FBT3pDLE1BQU0sT0FBTyxlQUFlO0lBRWQsb0JBQW9CLENBQUMsV0FBNkI7UUFDeEQsT0FBTyxDQUFDLFdBQVcsQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQyxXQUFXLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDLFNBQVMsQ0FBQyxDQUFDO0lBQ2pFLENBQUM7SUFFTSxTQUFTLENBQUMsSUFBa0I7UUFDL0IsTUFBTSxNQUFNLEdBQWtCLEVBQUUsQ0FBQyxDQUFDLHNCQUFzQjtRQUV4RCxPQUFPLElBQUksSUFBSSxDQUNYLElBQUksQ0FBQyxFQUFFLEVBQ1AsSUFBSSxDQUFDLEtBQUssRUFDVixJQUFJLENBQUMsSUFBSSxFQUNULElBQUksQ0FBQyxPQUFPLEVBQ1osSUFBSSxDQUFDLG9CQUFvQixDQUFDLElBQUksQ0FBQyxXQUFXLENBQUMsRUFDM0MsSUFBSSxDQUFDLFlBQVksRUFDakIsTUFBTSxFQUNOLElBQUksQ0FBQyxVQUFVLEVBQ2YsSUFBSSxDQUFDLFlBQVksQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLFNBQVMsQ0FBQyxJQUFJLENBQUMsWUFBWSxDQUFDLENBQUMsQ0FBQyxDQUFDLFNBQVMsQ0FBQyxDQUFDO0lBRTNFLENBQUM7OzZHQXBCUSxlQUFlO2lIQUFmLGVBQWUsY0FGWixNQUFNOzRGQUVULGVBQWU7a0JBSDNCLFVBQVU7bUJBQUM7b0JBQ1IsVUFBVSxFQUFFLE1BQU07aUJBQ3JCIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtVc2VyfSBmcm9tICcuLi8uLi91c2VyL21vZGVscy91c2VyJztcbmltcG9ydCB7VHJhbnNmb3JtZXJ9IGZyb20gJy4vdHJhbnNmb3JtZXInO1xuaW1wb3J0IHtJbmplY3RhYmxlfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7VXNlclJlc291cmNlfSBmcm9tICcuLi8uLi9yZXNvdXJjZXMvaW50ZXJmYWNlL3VzZXItcmVzb3VyY2UnO1xuaW1wb3J0IHtBdXRob3JpdHl9IGZyb20gJy4uLy4uL3Jlc291cmNlcy9pbnRlcmZhY2UvYXV0aG9yaXR5JztcblxuQEluamVjdGFibGUoe1xuICAgIHByb3ZpZGVkSW46ICdyb290J1xufSlcbmV4cG9ydCBjbGFzcyBVc2VyVHJhbnNmb3JtZXIgaW1wbGVtZW50cyBUcmFuc2Zvcm1lcjxVc2VyUmVzb3VyY2UsIFVzZXI+IHtcblxuICAgIHByb3RlY3RlZCB0cmFuc2Zvcm1BdXRob3JpdGllcyhhdXRob3JpdGllczogQXJyYXk8QXV0aG9yaXR5Pik6IEFycmF5PHN0cmluZz4ge1xuICAgICAgICByZXR1cm4gIWF1dGhvcml0aWVzID8gW10gOiBhdXRob3JpdGllcy5tYXAoYSA9PiBhLmF1dGhvcml0eSk7XG4gICAgfVxuXG4gICAgcHVibGljIHRyYW5zZm9ybSh1c2VyOiBVc2VyUmVzb3VyY2UpOiBVc2VyIHtcbiAgICAgICAgY29uc3QgZ3JvdXBzOiBBcnJheTxzdHJpbmc+ID0gW107IC8vIFRPRE8gZ3JvdXBzIHBhcnNpbmdcblxuICAgICAgICByZXR1cm4gbmV3IFVzZXIoXG4gICAgICAgICAgICB1c2VyLmlkLFxuICAgICAgICAgICAgdXNlci5lbWFpbCxcbiAgICAgICAgICAgIHVzZXIubmFtZSxcbiAgICAgICAgICAgIHVzZXIuc3VybmFtZSxcbiAgICAgICAgICAgIHRoaXMudHJhbnNmb3JtQXV0aG9yaXRpZXModXNlci5hdXRob3JpdGllcyksXG4gICAgICAgICAgICB1c2VyLnByb2Nlc3NSb2xlcyxcbiAgICAgICAgICAgIGdyb3VwcyxcbiAgICAgICAgICAgIHVzZXIubmV4dEdyb3VwcyxcbiAgICAgICAgICAgIHVzZXIuaW1wZXJzb25hdGVkID8gdGhpcy50cmFuc2Zvcm0odXNlci5pbXBlcnNvbmF0ZWQpIDogdW5kZWZpbmVkKTtcblxuICAgIH1cblxufVxuIl19
|
|
@@ -9,6 +9,8 @@ export * from './authentication.module';
|
|
|
9
9
|
export * from './authentication.factory';
|
|
10
10
|
/* SERVICES */
|
|
11
11
|
export * from './anonymous/anonymous.service';
|
|
12
|
+
export * from './services/anonymous-authentication-interceptor';
|
|
13
|
+
export * from './services/authentication-interceptor';
|
|
12
14
|
/* COMPONENTS */
|
|
13
15
|
export * from './components/abstract-authentication-overlay';
|
|
14
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
16
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicHVibGljLWFwaS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL25ldGdyaWYtY29tcG9uZW50cy1jb3JlL3NyYy9saWIvYXV0aGVudGljYXRpb24vcHVibGljLWFwaS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxVQUFVO0FBQ1YsY0FBYyxxQkFBcUIsQ0FBQztBQUNwQyxjQUFjLHVCQUF1QixDQUFDO0FBQ3RDLGNBQWMsc0JBQXNCLENBQUM7QUFDckMsY0FBYyxzQkFBc0IsQ0FBQztBQUVyQyxhQUFhO0FBQ2IsY0FBYyx5QkFBeUIsQ0FBQztBQUV4QyxhQUFhO0FBQ2IsY0FBYywwQkFBMEIsQ0FBQztBQUV6QyxjQUFjO0FBQ2QsY0FBYywrQkFBK0IsQ0FBQztBQUM5QyxjQUFjLGlEQUFpRCxDQUFBO0FBQy9ELGNBQWMsdUNBQXVDLENBQUE7QUFFckQsZ0JBQWdCO0FBQ2hCLGNBQWMsOENBQThDLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyIvKiBBUElTICovXG5leHBvcnQgKiBmcm9tICcuL21vZGVscy9wdWJsaWMtYXBpJztcbmV4cG9ydCAqIGZyb20gJy4vc2VydmljZXMvcHVibGljLWFwaSc7XG5leHBvcnQgKiBmcm9tICcuL3Nlc3Npb24vcHVibGljLWFwaSc7XG5leHBvcnQgKiBmcm9tICcuL3NpZ24tdXAvcHVibGljLWFwaSc7XG5cbi8qIE1PRFVMRVMgKi9cbmV4cG9ydCAqIGZyb20gJy4vYXV0aGVudGljYXRpb24ubW9kdWxlJztcblxuLyogQ0xBU1NFUyAqL1xuZXhwb3J0ICogZnJvbSAnLi9hdXRoZW50aWNhdGlvbi5mYWN0b3J5JztcblxuLyogU0VSVklDRVMgKi9cbmV4cG9ydCAqIGZyb20gJy4vYW5vbnltb3VzL2Fub255bW91cy5zZXJ2aWNlJztcbmV4cG9ydCAqIGZyb20gJy4vc2VydmljZXMvYW5vbnltb3VzLWF1dGhlbnRpY2F0aW9uLWludGVyY2VwdG9yJ1xuZXhwb3J0ICogZnJvbSAnLi9zZXJ2aWNlcy9hdXRoZW50aWNhdGlvbi1pbnRlcmNlcHRvcidcblxuLyogQ09NUE9ORU5UUyAqL1xuZXhwb3J0ICogZnJvbSAnLi9jb21wb25lbnRzL2Fic3RyYWN0LWF1dGhlbnRpY2F0aW9uLW92ZXJsYXknO1xuIl19
|
|
@@ -82,7 +82,7 @@ export class PermissionService {
|
|
|
82
82
|
checkUserPerms(users, permission) {
|
|
83
83
|
let userPermValue;
|
|
84
84
|
if (!!users) {
|
|
85
|
-
const loggedUserId = this._userService.user.id;
|
|
85
|
+
const loggedUserId = this._userService.user.getSelfOrImpersonated().id;
|
|
86
86
|
Object.keys(users).forEach(user => {
|
|
87
87
|
if (user === loggedUserId && users[user][permission] !== undefined) {
|
|
88
88
|
userPermValue = userPermValue === undefined ?
|
|
@@ -101,4 +101,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.11", ngImpo
|
|
|
101
101
|
providedIn: 'root'
|
|
102
102
|
}]
|
|
103
103
|
}], ctorParameters: function () { return [{ type: i1.UserComparatorService }, { type: i2.UserService }]; } });
|
|
104
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicGVybWlzc2lvbi5zZXJ2aWNlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvbmV0Z3JpZi1jb21wb25lbnRzLWNvcmUvc3JjL2xpYi9hdXRob3JpemF0aW9uL3Blcm1pc3Npb24vcGVybWlzc2lvbi5zZXJ2aWNlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBQyxVQUFVLEVBQUMsTUFBTSxlQUFlLENBQUM7QUFFekMsT0FBTyxFQUFDLFlBQVksRUFBQyxNQUFNLGlDQUFpQyxDQUFDO0FBSzdELE9BQU8sRUFBYyxjQUFjLEVBQWtCLE1BQU0sMkJBQTJCLENBQUM7Ozs7QUFLdkYsTUFBTSxPQUFPLGlCQUFpQjtJQUUxQixZQUFzQixjQUFxQyxFQUFZLFlBQXlCO1FBQTFFLG1CQUFjLEdBQWQsY0FBYyxDQUF1QjtRQUFZLGlCQUFZLEdBQVosWUFBWSxDQUFhO0lBQ2hHLENBQUM7SUFFTSxpQkFBaUIsQ0FBQyxJQUFzQixFQUFFLFVBQWtCO1FBQy9ELElBQUksQ0FBQyxJQUFJLEVBQUU7WUFDUCxPQUFPLEtBQUssQ0FBQztTQUNoQjtRQUVELE1BQU0sYUFBYSxHQUFHLElBQUksQ0FBQyxjQUFjLENBQUMsSUFBSSxDQUFDLEtBQUssRUFBRSxVQUFVLENBQUMsQ0FBQztRQUNsRSxNQUFNLGFBQWEsR0FBRyxJQUFJLENBQUMsY0FBYyxDQUFDLElBQUksQ0FBQyxLQUFLLEVBQUUsVUFBVSxDQUFDLENBQUM7UUFDbEUsT0FBTyxJQUFJLENBQUMsa0JBQWtCLENBQUMsYUFBYSxFQUFFLGFBQWEsQ0FBQyxDQUFDO0lBQ2pFLENBQUM7SUFFTSxpQkFBaUIsQ0FBQyxLQUF1QixFQUFFLFVBQWtCO1FBQ2hFLElBQUksQ0FBQyxLQUFLLEVBQUU7WUFDUixPQUFPLEtBQUssQ0FBQztTQUNoQjtRQUVELE1BQU0sYUFBYSxHQUFHLElBQUksQ0FBQyxjQUFjLENBQUMsS0FBSyxDQUFDLFdBQVcsRUFB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QUM7WUFDL0MsTUFBTSxDQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsQ0FBQyxPQUFPLENBQUMsSUFBSSxDQUFDLEVBQUU7Z0JBQzlCLElBQUksSUFBSSxLQUFLLFlBQVksSUFBSSxLQUFLLENBQUMsSUFBSSxDQUFDLENBQUMsVUFBVSxDQUFDLEtBQUssU0FBUyxFQUFFO29CQUNoRSxhQUFhLEdBQUcsYUFBYSxLQUFLLFNBQVMsQ0FBQyxDQUFDO3dCQUN6QyxLQUFLLENBQUMsSUFBSSxDQUFDLENBQUMsVUFBVSxDQUFDLENBQUMsQ0FBQyxDQUFDLGFBQWEsSUFBSSxLQUFLLENBQUMsSUFBSSxDQUFDLENBQUMsVUFBVSxDQUFDLENBQUM7aUJBQzFFO1lBQ0wsQ0FBQyxDQUFDLENBQUM7U0FDTjtRQUNELE9BQU8sYUFBYSxDQUFDO0lBQ3pCLENBQUM7OytHQTNHUSxpQkFBaUI7bUhBQWpCLGlCQUFpQixjQUZkLE1BQU07NEZBRVQsaUJBQWlCO2tCQUg3QixVQUFVO21CQUFDO29CQUNSLFVBQVUsRUFBRSxNQUFNO2lCQUNyQiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7SW5qZWN0YWJsZX0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQge1VzZXJDb21wYXJhdG9yU2VydmljZX0gZnJvbSAnLi4vLi4vdXNlci9zZXJ2aWNlcy91c2VyLWNvbXBhcmF0b3Iuc2VydmljZSc7XG5pbXBvcnQge0Fzc2lnblBvbGljeX0gZnJvbSAnLi4vLi4vdGFzay1jb250ZW50L21vZGVsL3BvbGljeSc7XG5pbXBvcnQge1Rhc2t9IGZyb20gJy4uLy4uL3Jlc291cmNlcy9pbnRlcmZhY2UvdGFzayc7XG5pbXBvcnQge1VzZXJTZXJ2aWNlfSBmcm9tICcuLi8uLi91c2VyL3NlcnZpY2VzL3VzZXIuc2VydmljZSc7XG5pbXBvcnQge0Nhc2V9IGZyb20gJy4uLy4uL3Jlc291cmNlcy9pbnRlcmZhY2UvY2FzZSc7XG5pbXBvcnQge1BldHJpTmV0UmVmZXJlbmNlV2l0aFBlcm1pc3Npb25zfSBmcm9tICcuLi8uLi9wcm9jZXNzL3BldHJpLW5ldC1yZWZlcmVuY2Utd2l0aC1wZXJtaXNzaW9ucyc7XG5pbXBvcnQge1Blcm1pc3Npb25zLCBQZXJtaXNzaW9uVHlwZSwgVXNlclBlcm1pc3Npb25zfSBmcm9tICcuLi8uLi9wcm9jZXNzL3Blcm1pc3Npb25zJztcblxuQEluamVjdGFibGUoe1xuICAgIHByb3ZpZGVkSW46ICdyb290J1xufSlcbmV4cG9ydCBjbGFzcyBQZXJtaXNzaW9uU2VydmljZSB7XG5cbiAgICBjb25zdHJ1Y3Rvcihwcm90ZWN0ZWQgdXNlckNvbXBhcmF0b3I6IFVzZXJDb21wYXJhdG9yU2VydmljZSwgcHJvdGVjdGVkIF91c2VyU2VydmljZTogVXNlclNlcnZpY2UpIHtcbiAgICB9XG5cbiAgICBwdWJsaWMgaGFzVGFza1Blcm1pc3Npb24odGFzazogVGFzayB8IHVuZGVmaW5lZCwgcGVybWlzc2lvbjogc3RyaW5nKTogYm9vbGVhbiB7XG4gICAgICAgIGlmICghdGFzaykge1xuICAgICAgICAgICAgcmV0dXJuIGZhbHNlO1xuICAgICAgICB9XG5cbiAgICAgICAgY29uc3Qgcm9sZVBlcm1WYWx1ZSA9IHRoaXMuY2hlY2tSb2xlUGVybXModGFzay5yb2xlcywgcGVybWlzc2lvbik7XG4gICAgICAgIGNvbnN0IHVzZXJQZXJtVmFsdWUgPSB0aGlzLmNoZWNrVXNlclBlcm1zKHRhc2sudXNlcnMsIHBlcm1pc3Npb24pO1xuICAgICAgICByZXR1cm4gdGhpcy5yZXNvbHZlUGVybWlzc2lvbnMocm9sZVBlcm1WYWx1ZSwgdXNlclBlcm1WYWx1ZSk7XG4gICAgfVxuXG4gICAgcHVibGljIGhhc0Nhc2VQZXJtaXNzaW9uKGNhc2VfOiBDYXNlIHwgdW5kZWZpbmVkLCBwZXJtaXNzaW9uOiBzdHJpbmcpOiBib29sZWFuIHtcbiAgICAgICAgaWYgKCFjYXNlXykge1xuICAgICAgICAgICAgcmV0dXJuIGZhbHNlO1xuICAgICAgICB9XG5cbiAgICAgICAgY29uc3Qgcm9sZVBlcm1WYWx1ZSA9IHRoaXMuY2hlY2tSb2xlUGVybXMoY2FzZV8ucGVybWlzc2lvbnMsIHBlcm1pc3Npb24pO1xuICAgICAgICBjb25zdCB1c2VyUGVybVZhbHVlID0gdGhpcy5jaGVja1VzZXJQZXJtcyhjYXNlXy51c2VycywgcGVybWlzc2lvbik7XG4gICAgICAgIHJldHVybiB0aGlzLnJlc29sdmVQZXJtaXNzaW9ucyhyb2xlUGVybVZhbHVlLCB1c2VyUGVybVZhbHVlKTtcbiAgICB9XG5cbiAgICBwdWJsaWMgcmVzb2x2ZVBlcm1pc3Npb25zKHJvbGVQZXJtVmFsdWU6IGJvb2xlYW4gfCB1bmRlZmluZWQsIHVzZXJQZXJtVmFsdWU6IGJvb2xlYW4gfCB1bmRlZmluZWQpOiBib29sZWFuIHtcbiAgICAgICAgcmV0dXJuIHVzZXJQZXJtVmFsdWUgPT09IHVuZGVmaW5lZCA/ICghIXJvbGVQZXJtVmFsdWUpIDogdXNlclBlcm1WYWx1ZTtcbiAgICB9XG5cbiAgICBwdWJsaWMgaGFzTmV0UGVybWlzc2lvbihhY3Rpb246IHN0cmluZywgbmV0OiBQZXRyaU5ldFJlZmVyZW5jZVdpdGhQZXJtaXNzaW9ucyk6IGJvb2xlYW4ge1xuICAgICAgICBpZiAoIW5ldFxuICAgICAgICAgICAgfHwgIW5ldC5wZXJtaXNzaW9uc1xuICAgICAgICAgICAgfHwgIWFjdGlvblxuICAgICAgICAgICAgfHwgIShuZXQucGVybWlzc2lvbnMgaW5zdGFuY2VvZiBPYmplY3QpXG4gICAgICAgICkge1xuICAgICAgICAgICAgcmV0dXJuIGZhbHNlO1xuICAgICAgICB9XG4gICAgICAgIGlmIChPYmplY3Qua2V5cyhuZXQucGVybWlzc2lvbnMpLnNvbWUocm9sZSA9PlxuICAgICAgICAgICAgdGhpcy5fdXNlclNlcnZpY2UuaGFzUm9sZUJ5SWQocm9sZSkgPyBuZXQucGVybWlzc2lvbnNbcm9sZV1bYWN0aW9uXSA9PT0gZmFsc2UgOiBmYWxzZSkpIHtcbiAgICAgICAgICAgIHJldHVybiBmYWxzZTtcbiAgICAgICAgfVxuICAgICAgICByZXR1cm4gT2JqZWN0LmtleXMobmV0LnBlcm1pc3Npb25zKS5zb21lKHJvbGUgPT5cbiAgICAgICAgICAgIHRoaXMuX3VzZXJTZXJ2aWNlLmhhc1JvbGVCeUlkKHJvbGUpID8gISFuZXQucGVybWlzc2lvbnNbcm9sZV1bYWN0aW9uXSA6IGZhbHNlXG4gICAgICAgICk7XG4gICAgfVxuXG4gICAgcHVibGljIGNhbkFzc2lnbih0YXNrOiBUYXNrIHwgdW5kZWZpbmVkKTogYm9vbGVhbiB7XG4gICAgICAgIHJldHVybiAhIXRhc2tcbiAgICAgICAgICAgICYmIChcbiAgICAgICAgICAgICAgICAoXG4gICAgICAgICAgICAgICAgICAgIHRhc2suYXNzaWduUG9saWN5ID09PSBBc3NpZ25Qb2xpY3kubWFudWFsXG4gICAgICAgICAgICAgICAgICAgICYmICF0YXNrLnVzZXJcbiAgICAgICAgICAgICAgICAgICAgJiYgdGhpcy5oYXNUYXNrUGVybWlzc2lvbih0YXNrLCBQZXJtaXNzaW9uVHlwZS5BU1NJR04pXG4gICAgICAgICAgICAgICAgKVxuICAgICAgICAgICAgKTtcbiAgICB9XG5cbiAgICBwdWJsaWMgY2FuQ2FuY2VsKHRhc2s6IFRhc2sgfCB1bmRlZmluZWQpOiBib29sZWFuIHtcbiAgICAgICAgcmV0dXJuICEhdGFzayAmJiAhIXRhc2sudXNlclxuICAgICAgICAgICAgJiYgdGhpcy5oYXNUYXNrUGVybWlzc2lvbih0YXNrLCBQZXJtaXNzaW9uVHlwZS5DQU5DRUwpXG4gICAgICAgICAgICAmJiAoKHRhc2suYXNzaWduZWRVc2VyUG9saWN5ID09PSB1bmRlZmluZWQgfHwgdGFzay5hc3NpZ25lZFVzZXJQb2xpY3kuY2FuY2VsID09PSB1bmRlZmluZWQpXG4gICAgICAgICAgICAgICAgfHwgdGFzay5hc3NpZ25lZFVzZXJQb2xpY3kuY2FuY2VsKTtcbiAgICB9XG5cbiAgICBwdWJsaWMgY2FuUmVhc3NpZ24odGFzazogVGFzayB8IHVuZGVmaW5lZCk6IGJvb2xlYW4ge1xuICAgICAgICByZXR1cm4gISF0YXNrICYmICEhdGFzay51c2VyICYmIHRoaXMudXNlckNvbXBhcmF0b3IuY29tcGFyZVVzZXJzKHRhc2sudXNlcilcbiAgICAgICAgICAgICYmIHRoaXMuaGFzVGFza1Blcm1pc3Npb24odGFzaywgUGVybWlzc2lvblR5cGUuREVMRUdBVEUpXG4gICAgICAgICAgICAmJiAoKHRhc2suYXNzaWduZWRVc2VyUG9saWN5ID09PSB1bmRlZmluZWQgfHwgdGFzay5hc3NpZ25lZFVzZXJQb2xpY3kucmVhc3NpZ24gPT09IHVuZGVmaW5lZClcbiAgICAgICAgICAgICAgICB8fCB0YXNrLmFzc2lnbmVkVXNlclBvbGljeS5yZWFzc2lnbik7XG4gICAgfVxuXG4gICAgcHVibGljIGNhbkZpbmlzaCh0YXNrOiBUYXNrIHwgdW5kZWZpbmVkKTogYm9vbGVhbiB7XG4gICAgICAgIHJldHVybiAhIXRhc2tcbiAgICAgICAgICAgICYmICEhdGFzay51c2VyXG4gICAgICAgICAgICAmJiB0aGlzLnVzZXJDb21wYXJhdG9yLmNvbXBhcmVVc2Vycyh0YXNrLnVzZXIpXG4gICAgICAgICAgICAmJiB0aGlzLmhhc1Rhc2tQZXJtaXNzaW9uKHRhc2ssIFBlcm1pc3Npb25UeXBlLkZJTklTSCk7XG4gICAgfVxuXG4gICAgcHVibGljIGNhbkNvbGxhcHNlKHRhc2s6IFRhc2sgfCB1bmRlZmluZWQpOiBib29sZWFuIHtcbiAgICAgICAgcmV0dXJuICEhdGFza1xuICAgICAgICAgICAgJiYgdGFzay5hc3NpZ25Qb2xpY3kgPT09IEFzc2lnblBvbGljeS5tYW51YWw7XG4gICAgfVxuXG4gICAgcHVibGljIGNoZWNrUm9sZVBlcm1zKHJvbGVzOiBQZXJtaXNzaW9ucywgcGVybWlzc2lvbjogc3RyaW5nKTogYm9vbGVhbiB8IHVuZGVmaW5lZCB7XG4gICAgICAgIGxldCByb2xlUGVybVZhbHVlOiBib29sZWFuO1xuICAgICAgICBpZiAoISFyb2xlcykge1xuICAgICAgICAgICAgT2JqZWN0LmtleXMocm9sZXMpLmZvckVhY2gocm9sZSA9PiB7XG4gICAgICAgICAgICAgICAgaWYgKHJvbGVzW3JvbGVdW3Blcm1pc3Npb25dICE9PSB1bmRlZmluZWQgJiYgdGhpcy5fdXNlclNlcnZpY2UuaGFzUm9sZUJ5SWQocm9sZSkpIHtcbiAgICAgICAgICAgICAgICAgICAgcm9sZVBlcm1WYWx1ZSA9IHJvbGVQZXJtVmFsdWUgPT09IHVuZGVmaW5lZCA/IHJvbGVzW3JvbGVdW3Blcm1pc3Npb25dIDogcm9sZVBlcm1WYWx1ZSAmJiByb2xlc1tyb2xlXVtwZXJtaXNzaW9uXTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9KTtcbiAgICAgICAgfVxuICAgICAgICByZXR1cm4gcm9sZVBlcm1WYWx1ZTtcbiAgICB9XG5cbiAgICBwdWJsaWMgY2hlY2tVc2VyUGVybXModXNlcnM6IFVzZXJQZXJtaXNzaW9ucywgcGVybWlzc2lvbik6IGJvb2xlYW4gfCB1bmRlZmluZWQge1xuICAgICAgICBsZXQgdXNlclBlcm1WYWx1ZTogYm9vbGVhbjtcbiAgICAgICAgaWYgKCEhdXNlcnMpIHtcbiAgICAgICAgICAgIGNvbnN0IGxvZ2dlZFVzZXJJZCA9IHRoaXMuX3VzZXJTZXJ2aWNlLnVzZXIuaWQ7XG4gICAgICAgICAgICBPYmplY3Qua2V5cyh1c2VycykuZm9yRWFjaCh1c2VyID0+IHtcbiAgICAgICAgICAgICAgICBpZiAodXNlciA9PT0gbG9nZ2VkVXNlcklkICYmIHVzZXJzW3VzZXJdW3Blcm1pc3Npb25dICE9PSB1bmRlZmluZWQpIHtcbiAgICAgICAgICAgICAgICAgICAgdXNlclBlcm1WYWx1ZSA9IHVzZXJQZXJtVmFsdWUgPT09IHVuZGVmaW5lZCA/XG4gICAgICAgICAgICAgICAgICAgICAgICB1c2Vyc1t1c2VyXVtwZXJtaXNzaW9uXSA6IHVzZXJQZXJtVmFsdWUgJiYgdXNlcnNbdXNlcl1bcGVybWlzc2lvbl07XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfSk7XG4gICAgICAgIH1cbiAgICAgICAgcmV0dXJuIHVzZXJQZXJtVmFsdWU7XG4gICAgfVxufVxuIl19
|
|
104
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicGVybWlzc2lvbi5zZXJ2aWNlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvbmV0Z3JpZi1jb21wb25lbnRzLWNvcmUvc3JjL2xpYi9hdXRob3JpemF0aW9uL3Blcm1pc3Npb24vcGVybWlzc2lvbi5zZXJ2aWNlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBQyxVQUFVLEVBQUMsTUFBTSxlQUFlLENBQUM7QUFFekMsT0FBTyxFQUFDLFlBQVksRUFBQyxNQUFNLGlDQUFpQyxDQUFDO0FBSzdELE9BQU8sRUFBYyxjQUFjLEVBQWtCLE1BQU0sMkJBQTJCLENBQUM7Ozs7QUFLdkYsTUFBTSxPQUFPLGlCQUFpQjtJQUUxQixZQUFzQixjQUFxQyxFQUFZLFlBQXlCO1FBQTFFLG1CQUFjLEdBQWQsY0FBYyxDQUF1QjtRQUFZLGlCQUFZLEdBQVosWUFBWSxDQUFhO0lBQ2hHLENBQUM7SUFFTSxpQkFBaUIsQ0FBQyxJQUFzQixFQUFFLFVBQWtCO1FBQy9ELElBQUksQ0FBQyxJQUFJLEVBQUU7WUFDUCxPQUFPLEtBQUssQ0FBQztTQUNoQjtRQUVELE1BQU0sYUFBYSxHQUFHLElBQUksQ0FBQyxjQUFjLENBQUMsSUFBSSxDQUFDLEtBQUssRUFBRSxVQUFVLENBQUMsQ0FBQztRQUNsRSxNQUFNLGFBQWEsR0FBRyxJQUFJLENBQUMsY0FBYyxDQUFDLElBQUksQ0FBQyxLQUFLLEVBQUUsVUFBVSxDQUFDLENBQUM7UUFDbEUsT0FBTyxJQUFJLENBQUMsa0JBQWtCLENBQUMsYUFBYSxFQUFFLGFBQWEsQ0FBQyxDQUFDO0lBQ2pFLENBQUM7SUFFTSxpQkFBaUIsQ0FBQyxLQUF1QixFQUFFLFVBQWtCO1FBQ2hFLElBQUksQ0FBQyxLQUFLLEVBQUU7WUFDUixPQUFPLEtBQUssQ0FBQztTQUNoQjtRQUVELE1BQU0sYUFBYSxHQUFHLElBQUksQ0FBQyxjQUFjLENBQUMsS0FBSyxDQUFDLFdBQVcsRUFBRSxVQUFVLENBQUMsQ0FBQztRQUN6RSxNQUFNLGFBQWEsR0FBRyxJQUFJLENBQUMsY0FBYyxDQUFDLEtBQUssQ0FBQyxLQUFLLEVBQUUsVUFBVSxDQUFDLENBQUM7UUFDbkUsT0FBTyxJQUFJLENBQUMsa0JBQWtCLENBQUMsYUFBYSxFQUFFLGFBQWEsQ0FBQyxDQUFDO0lBQ2pFLENBQUM7SUFFTSxrQkFBa0IsQ0FBQyxhQUFrQyxFQUFFLGFBQWtDO1FBQzVGLE9BQU8sYUFBYSxLQUFLLFNBQVMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsYUFBYSxDQUFDLENBQUMsQ0FBQyxDQUFDLGFBQWEsQ0FBQztJQUMzRSxDQUFDO0lBRU0sZ0JBQWdCLENBQUMsTUFBYyxFQUFFLEdBQXFDO1FBQ3pFLElBQUksQ0FBQyxHQUFHO2VBQ0QsQ0FBQyxHQUFHLENBQUMsV0FBVztlQUNoQixDQUFDLE1BQU07ZUFDUCxDQUFDLENBQUMsR0FBRyxDQUFDLFdBQVcsWUFBWSxNQUFNLENBQUMsRUFDekM7WUFDRSxPQUFPLEtBQUssQ0FBQztTQUNoQjtRQUNELElBQUksTUFBTSxDQUFDLElBQUksQ0FBQyxHQUFHLENBQUMsV0FBVyxDQUFDLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxFQUFFLENBQ3pDLElBQUksQ0FBQyxZQUFZLENBQUMsV0FBVyxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsQ0FBQyxHQUFHLENBQUMsV0FBVyxDQUFDLElBQUksQ0FBQyxDQUFDLE1BQU0sQ0FBQyxLQUFLLEtBQUssQ0FBQyxDQUFDLENBQUMsS0FBSyxDQUFDLEVBQUU7WUFDeEYsT0FBTyxLQUFLLENBQUM7U0FDaEI7UUFDRCxPQUFPLE1BQU0sQ0FBQyxJQUFJLENBQUMsR0FBRyxDQUFDLFdBQVcsQ0FBQyxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsRUFBRSxDQUM1QyxJQUFJLENBQUMsWUFBWSxDQUFDLFdBQVcsQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxXQUFXLENBQUMsSUFBSSxDQUFDLENBQUMsTUFBTSxDQUFDLENBQUMsQ0FBQyxDQUFDLEtBQUssQ0FDaEYsQ0FBQztJQUNOLENBQUM7SUFFTSxTQUFTLENBQUMsSUFBc0I7UUFDbkMsT0FBTyxDQUFDLENBQUMsSUFBSTtlQUNOLENBQ0MsQ0FDSSxJQUFJLENBQUMsWUFBWSxLQUFLLFlBQVksQ0FBQyxNQUFNO21CQUN0QyxDQUFDLElBQUksQ0FBQyxJQUFJO21CQUNWLElBQUksQ0FBQyxpQkFBaUIsQ0FBQyxJQUFJLEVBQUUsY0FBYyxDQUFDLE1BQU0sQ0FBQyxDQUN6RCxDQUNKLENBQUM7SUFDVixDQUFDO0lBRU0sU0FBUyxDQUFDLElBQXNCO1FBQ25DLE9BQU8sQ0FBQyxDQUFDLElBQUksSUFBSSxDQUFDLENBQUMsSUFBSSxDQUFDLElBQUk7ZUFDckIsSUFBSSxDQUFDLGlCQUFpQixDQUFDLElBQUksRUFBRSxjQUFjLENBQUMsTUFBTSxDQUFDO2VBQ25ELENBQUMsQ0FBQyxJQUFJLENBQUMsa0JBQWtCLEtBQUssU0FBUyxJQUFJLElBQUksQ0FBQyxrQkFBa0IsQ0FBQyxNQUFNLEtBQUssU0FBUyxDQUFDO21CQUNwRixJQUFJLENBQUMsa0JBQWtCLENBQUMsTUFBTSxDQUFDLENBQUM7SUFDL0MsQ0FBQztJQUVNLFdBQVcsQ0FBQyxJQUFzQjtRQUNyQyxPQUFPLENBQUMsQ0FBQyxJQUFJLElBQUksQ0FBQyxDQUFDLElBQUksQ0FBQyxJQUFJLElBQUksSUFBSSxDQUFDLGNBQWMsQ0FBQyxZQUFZLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQztlQUNwRSxJQUFJLENBQUMsaUJBQWlCLENBQUMsSUFBSSxFQUFFLGNBQWMsQ0FBQyxRQUFRLENBQUM7ZUFDckQsQ0FBQyxDQUFDLElBQUksQ0FBQyxrQkFBa0IsS0FBSyxTQUFTLElBQUksSUFBSSxDQUFDLGtCQUFrQixDQUFDLFFBQVEsS0FBSyxTQUFTLENBQUM7bUJBQ3RGLElBQUksQ0FBQyxrQkFBa0IsQ0FBQyxRQUFRLENBQUMsQ0FBQztJQUNqRCxDQUFDO0lBRU0sU0FBUyxDQUFDLElBQXNCO1FBQ25DLE9BQU8sQ0FBQyxDQUFDLElBQUk7ZUFDTixDQUFDLENBQUMsSUFBSSxDQUFDLElBQUk7ZUFDWCxJQUFJLENBQUMsY0FBYyxDQUFDLFlBQVksQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDO2VBQzNDLElBQUksQ0FBQyxpQkFBaUIsQ0FBQyxJQUFJLEVBQUUsY0FBYyxDQUFDLE1BQU0sQ0FBQyxDQUFDO0lBQy9ELENBQUM7SUFFTSxXQUFXLENBQUMsSUFBc0I7UUFDckMsT0FBTyxDQUFDLENBQUMsSUFBSTtlQUNOLElBQUksQ0FBQyxZQUFZLEtBQUssWUFBWSxDQUFDLE1BQU0sQ0FBQztJQUNyRCxDQUFDO0lBRU0sY0FBYyxDQUFDLEtBQWtCLEVBQUUsVUFBa0I7UUFDeEQsSUFBSSxhQUFzQixDQUFDO1FBQzNCLElBQUksQ0FBQyxDQUFDLEtBQUssRUFBRTtZQUNULE1BQU0sQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLENBQUMsT0FBTyxDQUFDLElBQUksQ0FBQyxFQUFFO2dCQUM5QixJQUFJLEtBQUssQ0FBQyxJQUFJLENBQUMsQ0FBQyxVQUFVLENBQUMsS0FBSyxTQUFTLElBQUksSUFBSSxDQUFDLFlBQVksQ0FBQyxXQUFXLENBQUMsSUFBSSxDQUFDLEVBQUU7b0JBQzlFLGFBQWEsR0FBRyxhQUFhLEtBQUssU0FBUyxDQUFDLENBQUMsQ0FBQyxLQUFLLENBQUMsSUFBSSxDQUFDLENBQUMsVUFBVSxDQUFDLENBQUMsQ0FBQyxDQUFDLGFBQWEsSUFBSSxLQUFLLENBQUMsSUFBSSxDQUFDLENBQUMsVUFBVSxDQUFDLENBQUM7aUJBQ3BIO1lBQ0wsQ0FBQyxDQUFDLENBQUM7U0FDTjtRQUNELE9BQU8sYUFBYSxDQUFDO0lBQ3pCLENBQUM7SUFFTSxjQUFjLENBQUMsS0FBc0IsRUFBRSxVQUFVO1FBQ3BELElBQUksYUFBc0IsQ0FBQztRQUMzQixJQUFJLENBQUMsQ0FBQyxLQUFLLEVBQUU7WUFDVCxNQUFNLFlBQVksR0FBRyxJQUFJLENBQUMsWUFBWSxDQUFDLElBQUksQ0FBQyxxQkFBcUIsRUFBRSxDQUFDLEVBQUUsQ0FBQztZQUN2RSxNQUFNLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxDQUFDLE9BQU8sQ0FBQyxJQUFJLENBQUMsRUFBRTtnQkFDOUIsSUFBSSxJQUFJLEtBQUssWUFBWSxJQUFJLEtBQUssQ0FBQyxJQUFJLENBQUMsQ0FBQyxVQUFVLENBQUMsS0FBSyxTQUFTLEVBQUU7b0JBQ2hFLGFBQWEsR0FBRyxhQUFhLEtBQUssU0FBUyxDQUFDLENBQUM7d0JBQ3pDLEtBQUssQ0FBQyxJQUFJLENBQUMsQ0FBQyxVQUFVLENBQUMsQ0FBQyxDQUFDLENBQUMsYUFBYSxJQUFJLEtBQUssQ0FBQyxJQUFJLENBQUMsQ0FBQyxVQUFVLENBQUMsQ0FBQztpQkFDMUU7WUFDTCxDQUFDLENBQUMsQ0FBQztTQUNOO1FBQ0QsT0FBTyxhQUFhLENBQUM7SUFDekIsQ0FBQzs7K0dBM0dRLGlCQUFpQjttSEFBakIsaUJBQWlCLGNBRmQsTUFBTTs0RkFFVCxpQkFBaUI7a0JBSDdCLFVBQVU7bUJBQUM7b0JBQ1IsVUFBVSxFQUFFLE1BQU07aUJBQ3JCIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtJbmplY3RhYmxlfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7VXNlckNvbXBhcmF0b3JTZXJ2aWNlfSBmcm9tICcuLi8uLi91c2VyL3NlcnZpY2VzL3VzZXItY29tcGFyYXRvci5zZXJ2aWNlJztcbmltcG9ydCB7QXNzaWduUG9saWN5fSBmcm9tICcuLi8uLi90YXNrLWNvbnRlbnQvbW9kZWwvcG9saWN5JztcbmltcG9ydCB7VGFza30gZnJvbSAnLi4vLi4vcmVzb3VyY2VzL2ludGVyZmFjZS90YXNrJztcbmltcG9ydCB7VXNlclNlcnZpY2V9IGZyb20gJy4uLy4uL3VzZXIvc2VydmljZXMvdXNlci5zZXJ2aWNlJztcbmltcG9ydCB7Q2FzZX0gZnJvbSAnLi4vLi4vcmVzb3VyY2VzL2ludGVyZmFjZS9jYXNlJztcbmltcG9ydCB7UGV0cmlOZXRSZWZlcmVuY2VXaXRoUGVybWlzc2lvbnN9IGZyb20gJy4uLy4uL3Byb2Nlc3MvcGV0cmktbmV0LXJlZmVyZW5jZS13aXRoLXBlcm1pc3Npb25zJztcbmltcG9ydCB7UGVybWlzc2lvbnMsIFBlcm1pc3Npb25UeXBlLCBVc2VyUGVybWlzc2lvbnN9IGZyb20gJy4uLy4uL3Byb2Nlc3MvcGVybWlzc2lvbnMnO1xuXG5ASW5qZWN0YWJsZSh7XG4gICAgcHJvdmlkZWRJbjogJ3Jvb3QnXG59KVxuZXhwb3J0IGNsYXNzIFBlcm1pc3Npb25TZXJ2aWNlIHtcblxuICAgIGNvbnN0cnVjdG9yKHByb3RlY3RlZCB1c2VyQ29tcGFyYXRvcjogVXNlckNvbXBhcmF0b3JTZXJ2aWNlLCBwcm90ZWN0ZWQgX3VzZXJTZXJ2aWNlOiBVc2VyU2VydmljZSkge1xuICAgIH1cblxuICAgIHB1YmxpYyBoYXNUYXNrUGVybWlzc2lvbih0YXNrOiBUYXNrIHwgdW5kZWZpbmVkLCBwZXJtaXNzaW9uOiBzdHJpbmcpOiBib29sZWFuIHtcbiAgICAgICAgaWYgKCF0YXNrKSB7XG4gICAgICAgICAgICByZXR1cm4gZmFsc2U7XG4gICAgICAgIH1cblxuICAgICAgICBjb25zdCByb2xlUGVybVZhbHVlID0gdGhpcy5jaGVja1JvbGVQZXJtcyh0YXNrLnJvbGVzLCBwZXJtaXNzaW9uKTtcbiAgICAgICAgY29uc3QgdXNlclBlcm1WYWx1ZSA9IHRoaXMuY2hlY2tVc2VyUGVybXModGFzay51c2VycywgcGVybWlzc2lvbik7XG4gICAgICAgIHJldHVybiB0aGlzLnJlc29sdmVQZXJtaXNzaW9ucyhyb2xlUGVybVZhbHVlLCB1c2VyUGVybVZhbHVlKTtcbiAgICB9XG5cbiAgICBwdWJsaWMgaGFzQ2FzZVBlcm1pc3Npb24oY2FzZV86IENhc2UgfCB1bmRlZmluZWQsIHBlcm1pc3Npb246IHN0cmluZyk6IGJvb2xlYW4ge1xuICAgICAgICBpZiAoIWNhc2VfKSB7XG4gICAgICAgICAgICByZXR1cm4gZmFsc2U7XG4gICAgICAgIH1cblxuICAgICAgICBjb25zdCByb2xlUGVybVZhbHVlID0gdGhpcy5jaGVja1JvbGVQZXJtcyhjYXNlXy5wZXJtaXNzaW9ucywgcGVybWlzc2lvbik7XG4gICAgICAgIGNvbnN0IHVzZXJQZXJtVmFsdWUgPSB0aGlzLmNoZWNrVXNlclBlcm1zKGNhc2VfLnVzZXJzLCBwZXJtaXNzaW9uKTtcbiAgICAgICAgcmV0dXJuIHRoaXMucmVzb2x2ZVBlcm1pc3Npb25zKHJvbGVQZXJtVmFsdWUsIHVzZXJQZXJtVmFsdWUpO1xuICAgIH1cblxuICAgIHB1YmxpYyByZXNvbHZlUGVybWlzc2lvbnMocm9sZVBlcm1WYWx1ZTogYm9vbGVhbiB8IHVuZGVmaW5lZCwgdXNlclBlcm1WYWx1ZTogYm9vbGVhbiB8IHVuZGVmaW5lZCk6IGJvb2xlYW4ge1xuICAgICAgICByZXR1cm4gdXNlclBlcm1WYWx1ZSA9PT0gdW5kZWZpbmVkID8gKCEhcm9sZVBlcm1WYWx1ZSkgOiB1c2VyUGVybVZhbHVlO1xuICAgIH1cblxuICAgIHB1YmxpYyBoYXNOZXRQZXJtaXNzaW9uKGFjdGlvbjogc3RyaW5nLCBuZXQ6IFBldHJpTmV0UmVmZXJlbmNlV2l0aFBlcm1pc3Npb25zKTogYm9vbGVhbiB7XG4gICAgICAgIGlmICghbmV0XG4gICAgICAgICAgICB8fCAhbmV0LnBlcm1pc3Npb25zXG4gICAgICAgICAgICB8fCAhYWN0aW9uXG4gICAgICAgICAgICB8fCAhKG5ldC5wZXJtaXNzaW9ucyBpbnN0YW5jZW9mIE9iamVjdClcbiAgICAgICAgKSB7XG4gICAgICAgICAgICByZXR1cm4gZmFsc2U7XG4gICAgICAgIH1cbiAgICAgICAgaWYgKE9iamVjdC5rZXlzKG5ldC5wZXJtaXNzaW9ucykuc29tZShyb2xlID0+XG4gICAgICAgICAgICB0aGlzLl91c2VyU2VydmljZS5oYXNSb2xlQnlJZChyb2xlKSA/IG5ldC5wZXJtaXNzaW9uc1tyb2xlXVthY3Rpb25dID09PSBmYWxzZSA6IGZhbHNlKSkge1xuICAgICAgICAgICAgcmV0dXJuIGZhbHNlO1xuICAgICAgICB9XG4gICAgICAgIHJldHVybiBPYmplY3Qua2V5cyhuZXQucGVybWlzc2lvbnMpLnNvbWUocm9sZSA9PlxuICAgICAgICAgICAgdGhpcy5fdXNlclNlcnZpY2UuaGFzUm9sZUJ5SWQocm9sZSkgPyAhIW5ldC5wZXJtaXNzaW9uc1tyb2xlXVthY3Rpb25dIDogZmFsc2VcbiAgICAgICAgKTtcbiAgICB9XG5cbiAgICBwdWJsaWMgY2FuQXNzaWduKHRhc2s6IFRhc2sgfCB1bmRlZmluZWQpOiBib29sZWFuIHtcbiAgICAgICAgcmV0dXJuICEhdGFza1xuICAgICAgICAgICAgJiYgKFxuICAgICAgICAgICAgICAgIChcbiAgICAgICAgICAgICAgICAgICAgdGFzay5hc3NpZ25Qb2xpY3kgPT09IEFzc2lnblBvbGljeS5tYW51YWxcbiAgICAgICAgICAgICAgICAgICAgJiYgIXRhc2sudXNlclxuICAgICAgICAgICAgICAgICAgICAmJiB0aGlzLmhhc1Rhc2tQZXJtaXNzaW9uKHRhc2ssIFBlcm1pc3Npb25UeXBlLkFTU0lHTilcbiAgICAgICAgICAgICAgICApXG4gICAgICAgICAgICApO1xuICAgIH1cblxuICAgIHB1YmxpYyBjYW5DYW5jZWwodGFzazogVGFzayB8IHVuZGVmaW5lZCk6IGJvb2xlYW4ge1xuICAgICAgICByZXR1cm4gISF0YXNrICYmICEhdGFzay51c2VyXG4gICAgICAgICAgICAmJiB0aGlzLmhhc1Rhc2tQZXJtaXNzaW9uKHRhc2ssIFBlcm1pc3Npb25UeXBlLkNBTkNFTClcbiAgICAgICAgICAgICYmICgodGFzay5hc3NpZ25lZFVzZXJQb2xpY3kgPT09IHVuZGVmaW5lZCB8fCB0YXNrLmFzc2lnbmVkVXNlclBvbGljeS5jYW5jZWwgPT09IHVuZGVmaW5lZClcbiAgICAgICAgICAgICAgICB8fCB0YXNrLmFzc2lnbmVkVXNlclBvbGljeS5jYW5jZWwpO1xuICAgIH1cblxuICAgIHB1YmxpYyBjYW5SZWFzc2lnbih0YXNrOiBUYXNrIHwgdW5kZWZpbmVkKTogYm9vbGVhbiB7XG4gICAgICAgIHJldHVybiAhIXRhc2sgJiYgISF0YXNrLnVzZXIgJiYgdGhpcy51c2VyQ29tcGFyYXRvci5jb21wYXJlVXNlcnModGFzay51c2VyKVxuICAgICAgICAgICAgJiYgdGhpcy5oYXNUYXNrUGVybWlzc2lvbih0YXNrLCBQZXJtaXNzaW9uVHlwZS5ERUxFR0FURSlcbiAgICAgICAgICAgICYmICgodGFzay5hc3NpZ25lZFVzZXJQb2xpY3kgPT09IHVuZGVmaW5lZCB8fCB0YXNrLmFzc2lnbmVkVXNlclBvbGljeS5yZWFzc2lnbiA9PT0gdW5kZWZpbmVkKVxuICAgICAgICAgICAgICAgIHx8IHRhc2suYXNzaWduZWRVc2VyUG9saWN5LnJlYXNzaWduKTtcbiAgICB9XG5cbiAgICBwdWJsaWMgY2FuRmluaXNoKHRhc2s6IFRhc2sgfCB1bmRlZmluZWQpOiBib29sZWFuIHtcbiAgICAgICAgcmV0dXJuICEhdGFza1xuICAgICAgICAgICAgJiYgISF0YXNrLnVzZXJcbiAgICAgICAgICAgICYmIHRoaXMudXNlckNvbXBhcmF0b3IuY29tcGFyZVVzZXJzKHRhc2sudXNlcilcbiAgICAgICAgICAgICYmIHRoaXMuaGFzVGFza1Blcm1pc3Npb24odGFzaywgUGVybWlzc2lvblR5cGUuRklOSVNIKTtcbiAgICB9XG5cbiAgICBwdWJsaWMgY2FuQ29sbGFwc2UodGFzazogVGFzayB8IHVuZGVmaW5lZCk6IGJvb2xlYW4ge1xuICAgICAgICByZXR1cm4gISF0YXNrXG4gICAgICAgICAgICAmJiB0YXNrLmFzc2lnblBvbGljeSA9PT0gQXNzaWduUG9saWN5Lm1hbnVhbDtcbiAgICB9XG5cbiAgICBwdWJsaWMgY2hlY2tSb2xlUGVybXMocm9sZXM6IFBlcm1pc3Npb25zLCBwZXJtaXNzaW9uOiBzdHJpbmcpOiBib29sZWFuIHwgdW5kZWZpbmVkIHtcbiAgICAgICAgbGV0IHJvbGVQZXJtVmFsdWU6IGJvb2xlYW47XG4gICAgICAgIGlmICghIXJvbGVzKSB7XG4gICAgICAgICAgICBPYmplY3Qua2V5cyhyb2xlcykuZm9yRWFjaChyb2xlID0+IHtcbiAgICAgICAgICAgICAgICBpZiAocm9sZXNbcm9sZV1bcGVybWlzc2lvbl0gIT09IHVuZGVmaW5lZCAmJiB0aGlzLl91c2VyU2VydmljZS5oYXNSb2xlQnlJZChyb2xlKSkge1xuICAgICAgICAgICAgICAgICAgICByb2xlUGVybVZhbHVlID0gcm9sZVBlcm1WYWx1ZSA9PT0gdW5kZWZpbmVkID8gcm9sZXNbcm9sZV1bcGVybWlzc2lvbl0gOiByb2xlUGVybVZhbHVlICYmIHJvbGVzW3JvbGVdW3Blcm1pc3Npb25dO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH0pO1xuICAgICAgICB9XG4gICAgICAgIHJldHVybiByb2xlUGVybVZhbHVlO1xuICAgIH1cblxuICAgIHB1YmxpYyBjaGVja1VzZXJQZXJtcyh1c2VyczogVXNlclBlcm1pc3Npb25zLCBwZXJtaXNzaW9uKTogYm9vbGVhbiB8IHVuZGVmaW5lZCB7XG4gICAgICAgIGxldCB1c2VyUGVybVZhbHVlOiBib29sZWFuO1xuICAgICAgICBpZiAoISF1c2Vycykge1xuICAgICAgICAgICAgY29uc3QgbG9nZ2VkVXNlcklkID0gdGhpcy5fdXNlclNlcnZpY2UudXNlci5nZXRTZWxmT3JJbXBlcnNvbmF0ZWQoKS5pZDtcbiAgICAgICAgICAgIE9iamVjdC5rZXlzKHVzZXJzKS5mb3JFYWNoKHVzZXIgPT4ge1xuICAgICAgICAgICAgICAgIGlmICh1c2VyID09PSBsb2dnZWRVc2VySWQgJiYgdXNlcnNbdXNlcl1bcGVybWlzc2lvbl0gIT09IHVuZGVmaW5lZCkge1xuICAgICAgICAgICAgICAgICAgICB1c2VyUGVybVZhbHVlID0gdXNlclBlcm1WYWx1ZSA9PT0gdW5kZWZpbmVkID9cbiAgICAgICAgICAgICAgICAgICAgICAgIHVzZXJzW3VzZXJdW3Blcm1pc3Npb25dIDogdXNlclBlcm1WYWx1ZSAmJiB1c2Vyc1t1c2VyXVtwZXJtaXNzaW9uXTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9KTtcbiAgICAgICAgfVxuICAgICAgICByZXR1cm4gdXNlclBlcm1WYWx1ZTtcbiAgICB9XG59XG4iXX0=
|
|
@@ -121,6 +121,12 @@ export class FilterRepository {
|
|
|
121
121
|
});
|
|
122
122
|
return result;
|
|
123
123
|
}
|
|
124
|
+
/**
|
|
125
|
+
* Removes all stored filters from the repository
|
|
126
|
+
*/
|
|
127
|
+
removeAllFilters() {
|
|
128
|
+
this._filters = new Map();
|
|
129
|
+
}
|
|
124
130
|
}
|
|
125
131
|
FilterRepository.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.3.11", ngImport: i0, type: FilterRepository, deps: [{ token: i1.ConfigurationService }, { token: i2.LoggerService }], target: i0.ɵɵFactoryTarget.Injectable });
|
|
126
132
|
FilterRepository.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "13.3.11", ngImport: i0, type: FilterRepository, providedIn: 'root' });
|
|
@@ -130,4 +136,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.11", ngImpo
|
|
|
130
136
|
providedIn: 'root'
|
|
131
137
|
}]
|
|
132
138
|
}], ctorParameters: function () { return [{ type: i1.ConfigurationService }, { type: i2.LoggerService }]; } });
|
|
133
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZmlsdGVyLnJlcG9zaXRvcnkuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9uZXRncmlmLWNvbXBvbmVudHMtY29yZS9zcmMvbGliL2ZpbHRlci9maWx0ZXIucmVwb3NpdG9yeS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUMsVUFBVSxFQUFDLE1BQU0sZUFBZSxDQUFDO0FBS3pDLE9BQU8sRUFBQyxVQUFVLEVBQUMsTUFBTSxzQkFBc0IsQ0FBQztBQUNoRCxPQUFPLEVBQUMsWUFBWSxFQUFDLE1BQU0sd0JBQXdCLENBQUM7QUFFcEQsT0FBTyxFQUFDLFlBQVksRUFBQyxNQUFNLHdCQUF3QixDQUFDOzs7O0FBR3BEOzs7Ozs7R0FNRztBQUlILE1BQU0sT0FBTyxnQkFBZ0I7SUFPekI7O09BRUc7SUFDSCxZQUFzQixjQUFvQyxFQUFZLElBQW1CO1FBQW5FLG1CQUFjLEdBQWQsY0FBYyxDQUFzQjtRQUFZLFNBQUksR0FBSixJQUFJLENBQWU7UUFSekY7O1dBRUc7UUFDTyxhQUFRLEdBQXdCLElBQUksR0FBRyxFQUFrQixDQUFDO1FBTWhFLE1BQU0sT0FBTyxHQUFHLGNBQWMsQ0FBQyxHQUFHLEVBQUUsQ0FBQyxPQUFPLENBQUM7UUFDN0MsSUFBSSxDQUFDLE9BQU8sRUFBRTtZQUNWLE9BQU87U0FDVjtRQUVELE1BQU0sQ0FBQyxJQUFJLENBQUMsT0FBTyxDQUFDLENBQUMsT0FBTyxDQUFDLFFBQVEsQ0FBQyxFQUFFO1lBQ3BDLE1BQU0sWUFBWSxHQUFpQixPQUFPLENBQUMsUUFBUSxDQUFDLENBQUM7WUFDckQsdURBQXVEO1lBQ3ZELElBQUksQ0FBQyxZQUFZLENBQUMsSUFBSSxJQUFJLENBQUMsWUFBWSxDQUFDLElBQUksRUFBRTtnQkFDMUMsSUFBSSxDQUFDLElBQUksQ0FBQyxXQUFXLFFBQVEsMERBQTBELENBQUMsQ0FBQztnQkFDekYsT0FBTzthQUNWO1lBQ0QsSUFBSSxLQUFL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Q0FBQztRQUNsQixTQUFTLENBQUMsT0FBTyxDQUFDLEVBQUUsQ0FBQyxFQUFFO1lBQ25CLE1BQU0sTUFBTSxHQUFHLElBQUksQ0FBQyxTQUFTLENBQUMsRUFBRSxDQUFDLENBQUM7WUFDbEMsSUFBSSxNQUFNLEtBQUssU0FBUyxFQUFFO2dCQUN2QixNQUFNLENBQUMsSUFBSSxDQUFDLE1BQU0sQ0FBQyxDQUFDO2FBQ3RCO1FBQ0wsQ0FBQyxDQUFDLENBQUM7UUFDSCxPQUFPLE1BQU0sQ0FBQztJQUNsQixDQUFDOzs4R0F0SFEsZ0JBQWdCO2tIQUFoQixnQkFBZ0IsY0FGYixNQUFNOzRGQUVULGdCQUFnQjtrQkFINUIsVUFBVTttQkFBQztvQkFDUixVQUFVLEVBQUUsTUFBTTtpQkFDckIiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge0luamVjdGFibGV9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHtDb25maWd1cmF0aW9uU2VydmljZX0gZnJvbSAnLi4vY29uZmlndXJhdGlvbi9jb25maWd1cmF0aW9uLnNlcnZpY2UnO1xuaW1wb3J0IHtDb25maWdGaWx0ZXJ9IGZyb20gJy4uLy4uL2NvbW1vbnMvc2NoZW1hJztcbmltcG9ydCB7TG9nZ2VyU2VydmljZX0gZnJvbSAnLi4vbG9nZ2VyL3NlcnZpY2VzL2xvZ2dlci5zZXJ2aWNlJztcbmltcG9ydCB7TWVyZ2VPcGVyYXRvcn0gZnJvbSAnLi9tb2RlbHMvbWVyZ2Utb3BlcmF0b3InO1xuaW1wb3J0IHtGaWx0ZXJUeXBlfSBmcm9tICcuL21vZGVscy9maWx0ZXItdHlwZSc7XG5pbXBvcnQge1NpbXBsZUZpbHRlcn0gZnJvbSAnLi9tb2RlbHMvc2ltcGxlLWZpbHRlcic7XG5pbXBvcnQge0ZpbHRlcn0gZnJvbSAnLi9tb2RlbHMvZmlsdGVyJztcbmltcG9ydCB7TWVyZ2VkRmlsdGVyfSBmcm9tICcuL21vZGVscy9tZXJnZWQtZmlsdGVyJztcblxuXG4vKipcbiAqIEFsbG93cyBhY2Nlc3MgdG8gZmlsdGVycyBkZWZpbmVkIGluIG5hZS5qc29uIGR1cmluZyBydW50aW1lLlxuICpcbiAqIEZpbHRlcnMgYXJlIGFsd2F5cyByZXR1cm5lZCBhcyBjb3BpZXMgdG8gYXZvaWQgdW5pbnRlbmRlZCBzaWRlIGVmZmVjdHMgd2hlbiBvcGVyYXRpbmcgb24gdGhlbS5cbiAqXG4gKiBBbHNvIHNlZSB7QGxpbmsgRmlsdGVyfS5cbiAqL1xuQEluamVjdGFibGUoe1xuICAgIHByb3ZpZGVkSW46ICdyb290J1xufSlcbmV4cG9ydCBjbGFzcyBGaWx0ZXJSZXBvc2l0b3J5IHtcblxuICAgIC8qKlxuICAgICAqIFN0b3JlcyB0aGUgZmlsdGVycyBtYW5hZ2VkIGJ5IHRoZSByZXBvc2l0b3J5LiBLZXlzIGFyZSBmaWx0ZXJJZHMuXG4gICAgICovXG4gICAgcHJvdGVjdGVkIF9maWx0ZXJzOiBNYXA8c3RyaW5nLCBGaWx0ZXI+ID0gbmV3IE1hcDxzdHJpbmcsIEZpbHRlcj4oKTtcblxuICAgIC8qKlxuICAgICAqIExvYWRzIGFuZCBjcmVhdGVzIGZpbHRlcnMgZGVjbGFyZWQgaW4gbmFlLmpzb24uXG4gICAgICovXG4gICAgY29uc3RydWN0b3IocHJvdGVjdGVkIF9jb25maWdTZXJ2aWNlOiBDb25maWd1cmF0aW9uU2VydmljZSwgcHJvdGVjdGVkIF9sb2c6IExvZ2dlclNlcnZpY2UpIHtcbiAgICAgICAgY29uc3QgZmlsdGVycyA9IF9jb25maWdTZXJ2aWNlLmdldCgpLmZpbHRlcnM7XG4gICAgICAgIGlmICghZmlsdGVycykge1xuICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICB9XG5cbiAgICAgICAgT2JqZWN0LmtleXMoZmlsdGVycykuZm9yRWFjaChmaWx0ZXJJZCA9PiB7XG4gICAgICAgICAgICBjb25zdCBjb25maWdGaWx0ZXI6IENvbmZpZ0ZpbHRlciA9IGZpbHRlcnNbZmlsdGVySWRdO1xuICAgICAgICAgICAgLy8gVE9ETyAxNy40LjIwMjAgLSBkb24ndCBpZ25vcmUgZmlsdGVyLmFjY2VzcyBwcm9wZXJ0eVxuICAgICAgICAgICAgaWYgKCFjb25maWdGaWx0ZXIudHlwZSB8fCAhY29uZmlnRmlsdGVyLmJvZHkpIHtcbiAgICAgICAgICAgICAgICBfbG9nLndhcm4oYEZpbHRlciAnJHtmaWx0ZXJJZH0nIGRvZXNuJ3QgZGVmaW5lIGFsbCB0aGUgbmVjZXNzYXJ5IHByb3BlcnRpZXMuIFNraXBwaW5nLmApO1xuICAgICAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGlmIChBcnJheS5pc0FycmF5KGNvbmZpZ0ZpbHRlci5ib2R5KSkge1xuICAgICAgICAgICAgICAgIGlmICghY29uZmlnRmlsdGVyLm1lcmdlT3BlcmF0b3IpIHtcbiAgICAgICAgICAgICAgICAgICAgX2xvZy53YXJuKGBGaWx0ZXIgJyR7ZmlsdGVySWR9JyBjb250YWlucyBtdWx0aXBsZSBmaWx0ZXJzLCBidXQgZG9lc24ndCBkZWZpbmUgYSBtZXJnZSBvcGVyYXRvci4gU2tpcHBpbmcuYCk7XG4gICAgICAgICAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgdGhpcy53YXJuSWZGaWx0ZXJFeGlzdHMoZmlsdGVySWQpO1xuXG4gICAgICAgICAgICAgICAgY29uc3QgZmlsdGVyID0gbmV3IE1lcmdlZEZpbHRlcihmaWx0ZXJJZCwgY29uZmlnRmlsdGVyLnR5cGUgYXMgRmlsdGVyVHlwZSxcbiAgICAgICAgICAgICAgICAgICAgY29uZmlnRmlsdGVyLmJvZHksIGNvbmZpZ0ZpbHRlci5tZXJnZU9wZXJhdG9yIGFzIE1lcmdlT3BlcmF0b3IsIGNvbmZpZ0ZpbHRlci50aXRsZSk7XG4gICAgICAgICAgICAgICAgdGhpcy5fZmlsdGVycy5zZXQoZmlsdGVySWQsIGZpbHRlcik7XG5cbiAgICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAgICAgdGhpcy53YXJuSWZGaWx0ZXJFeGlzdHMoZmlsdGVySWQpO1xuICAgICAgICAgICAgICAgIGNvbnN0IGZpbHRlciA9IG5ldyBTaW1wbGVGaWx0ZXIoZmlsdGVySWQsIGNvbmZpZ0ZpbHRlci50eXBlIGFzIEZpbHRlclR5cGUsIGNvbmZpZ0ZpbHRlci5ib2R5LCBjb25maWdGaWx0ZXIudGl0bGUpO1xuICAgICAgICAgICAgICAgIHRoaXMuX2ZpbHRlcnMuc2V0KGZpbHRlcklkLCBmaWx0ZXIpO1xuICAgICAgICAgICAgfVxuICAgICAgICB9KTtcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBMb2dzIGEgd2FybmluZyBpZiBmaWx0ZXIgd2l0aCB0aGUgZ2l2ZW4gaWQgYWxyZWFkeSBleGlzdHMuIFRoZSB3YXJuaW5nIHN0YXRlcyB0aGF0IHRoZSBmaWx0ZXIgd2lsbCBiZSByZXBsYWNlZC5cbiAgICAgKiBAcGFyYW0gZmlsdGVySWQgSUQgb2YgdGhlIGZpbHRlciB3aG8ncyBleGlzdGVuY2Ugc2hvdWxkIGJlIGNoZWNrZWRcbiAgICAgKi9cbiAgICBwcm90ZWN0ZWQgd2FybklmRmlsdGVyRXhpc3RzKGZpbHRlcklkOiBzdHJpbmcpOiB2b2lkIHtcbiAgICAgICAgaWYgKHRoaXMuX2ZpbHRlcnMuaGFzKGZpbHRlcklkKSkge1xuICAgICAgICAgICAgdGhpcy5fbG9nLndhcm4oYEZpbHRlciB3aXRoIGlkICcke2ZpbHRlcklkfScgYWxyZWFkeSBleGlzdHMgaW4gdGhlIHJlcG9zaXRvcnkgYW5kIHdpbGwgYmUgcmVwbGFjZWQhYCk7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBAcGFyYW0gZmlsdGVySWQgSUQgb2YgdGhlIGZpbHRlciB0aGF0IHNob3VsZCBiZSByZXRyaWV2ZWRcbiAgICAgKiBAcmV0dXJucyBhIGNvcHkgb2YgdGhlIHNwZWNpZmllZCBmaWx0ZXIsIG9yIGB1bmRlZmluZWRgIGlmIHN1Y2ggZmlsdGVyIGRvZXNuJ3QgZXhpc3QgaW4gdGhlIHJlcG9zaXRvcnkuXG4gICAgICovXG4gICAgcHVibGljIGdldEZpbHRlcihmaWx0ZXJJZDogc3RyaW5nKTogRmlsdGVyIHwgdW5kZWZpbmVkIHtcbiAgICAgICAgbGV0IGZpbHRlciA9IHRoaXMuX2ZpbHRlcnMuZ2V0KGZpbHRlcklkKTtcbiAgICAgICAgaWYgKCEhZmlsdGVyKSB7XG4gICAgICAgICAgICBmaWx0ZXIgPSBmaWx0ZXIuY2xvbmUoKTtcbiAgICAgICAgfVxuICAgICAgICByZXR1cm4gZmlsdGVyO1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqIFN0b3JlcyBhIG5ldyBmaWx0ZXIgaW50byB0aGUgcmVwb3NpdG9yeS4gSWYgdGhlIHJlcG9zaXRvcnkgYWxyZWFkeSBjb250YWlucyBhIGZpbHRlciB3aXRoIHRoZSBzYW1lIElELCB0aGUgc3RvcmVkIGZpbHRlclxuICAgICAqIHdpbGwgYmUgcmVwbGFjZWQgYW5kIGEgd2FybmluZyB3aWxsIGJlIGxvZ2dlZC5cbiAgICAgKlxuICAgICAqIFRoZSByZXBvc2l0b3J5IHN0b3JlcyBhIGNvcHkgb2YgdGhlIHByb3ZpZGVkIGZpbHRlciwgdG8gZW5zdXJlIHRoYXQgdGhlIG9iamVjdHMgaW4gdGhlIHJlcG9zaXRvcnkgYXJlbid0IHJlZmVyZW5jZWQgZnJvbSBvdXRzaWRlLlxuICAgICAqIEBwYXJhbSBmaWx0ZXIgdGhlIGZpbHRlciB0aGF0IHNob3VsZCBiZSBzdG9yZWRcbiAgICAgKi9cbiAgICBwdWJsaWMgc2F2ZUZpbHRlcihmaWx0ZXI6IEZpbHRlcik6IHZvaWQge1xuICAgICAgICB0aGlzLndhcm5JZkZpbHRlckV4aXN0cyhmaWx0ZXIuaWQpO1xuICAgICAgICB0aGlzLl9maWx0ZXJzLnNldChmaWx0ZXIuaWQsIGZpbHRlci5jbG9uZSgpKTtcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBAcmV0dXJucyBsaXN0IG9mIGNhc2UgZmlsdGVyIGlkZW50aWZpZXJzIHN0b3JlZCBpbiB0aGUgcmVwb3NpdG9yeVxuICAgICAqL1xuICAgIHB1YmxpYyBnZXRDYXNlRmlsdGVyTGlzdCgpOiBBcnJheTxzdHJpbmc+IHtcbiAgICAgICAgcmV0dXJuIHRoaXMuZ2V0RmlsdGVyTGlzdChmaWx0ZXIgPT4gZmlsdGVyLnR5cGUgPT09IEZpbHRlclR5cGUuQ0FTRSk7XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogQHJldHVybnMgbGlzdCBvZiB0YXNrIGZpbHRlciBpZGVudGlmaWVycyBzdG9yZWQgaW4gdGhlIHJlcG9zaXRvcnlcbiAgICAgKi9cbiAgICBwdWJsaWMgZ2V0VGFza0ZpbHRlckxpc3QoKTogQXJyYXk8c3RyaW5nPiB7XG4gICAgICAgIHJldHVybiB0aGlzLmdldEZpbHRlckxpc3QoZmlsdGVyID0+IGZpbHRlci50eXBlID09PSBGaWx0ZXJUeXBlLlRBU0spO1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqIEBwYXJhbSBwcmVkaWNhdGUgY29uZGl0aW9uIHRoYXQgbXVzdCBiZSBmdWxmaWxsZWQgYnkgdGhlIGZpbHRlcnMgaW4gdGhlIHJlcG9zaXRvcnkgaW4gb3JkZXIgdG8gYmUgaW5jbHVkZWQgaW4gdGhlIHJlc3VsdFxuICAgICAqIEByZXR1cm5zIGxpc3Qgb2YgZmlsdGVyIGlkZW50aWZpZXJzIHRoYXQgZnVsZmlsbCB0aGUgZ2l2ZW4gcHJlZGljYXRlXG4gICAgICovXG4gICAgcHJvdGVjdGVkIGdldEZpbHRlckxpc3QocHJlZGljYXRlOiAoZjogRmlsdGVyKSA9PiBib29sZWFuKTogQXJyYXk8c3RyaW5nPiB7XG4gICAgICAgIGNvbnN0IHJlc3VsdCA9IFtdO1xuICAgICAgICB0aGlzLl9maWx0ZXJzLmZvckVhY2goZmlsdGVyID0+IHtcbiAgICAgICAgICAgIGlmIChwcmVkaWNhdGUoZmlsdGVyKSkge1xuICAgICAgICAgICAgICAgIHJlc3VsdC5wdXNoKGZpbHRlci5pZCk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH0pO1xuICAgICAgICByZXR1cm4gcmVzdWx0O1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqIEBwYXJhbSBmaWx0ZXJJZHMgbGlzdCBvZiBpZHMgb2YgZmlsdGVycyB0aGF0IHNob3VsZCBiZSByZXR1cm5lZFxuICAgICAqIEByZXR1cm5zIGxpc3Qgb2YgY29waWVzIG9mIHNwZWNpZmllZCBmaWx0ZXJzLiBJZiBzb21lIG9mIHRoZSBmaWx0ZXJzIGRvbid0IGV4aXN0IGluIHRoZSByZXBvc2l0b3J5LCB0aGV5IHdvbid0IGJlIGluY2x1ZGVkXG4gICAgICogYW5kIHRoZSBhcnJheSB3aWxsIGNvbnRhaW4gbGVzcyBlbGVtZW50cyB0aGFuIHRoZSBpbnB1dCBhcnJheS5cbiAgICAgKi9cbiAgICBwdWJsaWMgZ2V0RmlsdGVycyhmaWx0ZXJJZHM6IEFycmF5PHN0cmluZz4pOiBBcnJheTxGaWx0ZXI+IHtcbiAgICAgICAgY29uc3QgcmVzdWx0ID0gW107XG4gICAgICAgIGZpbHRlcklkcy5mb3JFYWNoKGlkID0+IHtcbiAgICAgICAgICAgIGNvbnN0IGZpbHRlciA9IHRoaXMuZ2V0RmlsdGVyKGlkKTtcbiAgICAgICAgICAgIGlmIChmaWx0ZXIgIT09IHVuZGVmaW5lZCkge1xuICAgICAgICAgICAgICAgcmVzdWx0LnB1c2goZmlsdGVyKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfSk7XG4gICAgICAgIHJldHVybiByZXN1bHQ7XG4gICAgfVxufVxuIl19
|
|
139
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZmlsdGVyLnJlcG9zaXRvcnkuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9uZXRncmlmLWNvbXBvbmVudHMtY29yZS9zcmMvbGliL2ZpbHRlci9maWx0ZXIucmVwb3NpdG9yeS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUMsVUFBVSxFQUFDLE1BQU0sZUFBZSxDQUFDO0FBS3pDLE9BQU8sRUFBQyxVQUFVLEVBQUMsTUFBTSxzQkFBc0IsQ0FBQztBQUNoRCxPQUFPLEVBQUMsWUFBWSxFQUFDLE1BQU0sd0JBQXdCLENBQUM7QUFFcEQsT0FBTyxFQUFDLFlBQVksRUFBQyxNQUFNLHdCQUF3QixDQUFDOzs7O0FBR3BEOzs7Ozs7R0FNRztBQUlILE1BQU0sT0FBTyxnQkFBZ0I7SUFPekI7O09BRUc7SUFDSCxZQUFzQixjQUFvQyxFQUFZLElBQW1CO1FBQW5FLG1CQUFjLEdBQWQsY0FBYyxDQUFzQjtRQUFZLFNBQUksR0FBSixJQUFJLENBQWU7UUFSekY7O1dBRUc7UUFDTyxhQUFRLEdBQXdCLElBQUksR0FBRyxFQUFrQixDQUFDO1FBTWhFLE1BQU0sT0FBTyxHQUFHLGNBQWMsQ0FBQyxHQUFHLEVBQUUsQ0FBQyxPQUFPLENBQUM7UUFDN0MsSUFBSSxDQUFDLE9BQU8sRUFBRTtZQUNWLE9BQU87U0FDVjtRQUVELE1BQU0sQ0FBQyxJQUFJLENBQUMsT0FBTyxDQUFDLENBQUMsT0FBTyxDQUFDLFFBQVEsQ0FBQyxFQUFFO1lBQ3BDLE1BQU0sWUFBWSxHQUFpQixPQUFPLENBQUMsUUFBUSxDQUFDLENBQUM7WUFDckQsdURBQXVEO1lBQ3ZELElBQUksQ0FBQyxZQUFZLENBQUMsSUFBSSxJQUFJLENBQUMsWUFBWSxDQUFDLElBQUksRUFBRTtnQkFDMUMsSUFBSSxDQUFDLElBQUksQ0FBQyxXQUFXLFFBQVEsMERBQTBELENBQUMsQ0FBQztnQkFDekYsT0FBTzthQUNWO1lBQ0QsSUFBSSxLQUFL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Q0FBQztRQUNsQixTQUFTLENBQUMsT0FBTyxDQUFDLEVBQUUsQ0FBQyxFQUFFO1lBQ25CLE1BQU0sTUFBTSxHQUFHLElBQUksQ0FBQyxTQUFTLENBQUMsRUFBRSxDQUFDLENBQUM7WUFDbEMsSUFBSSxNQUFNLEtBQUssU0FBUyxFQUFFO2dCQUN2QixNQUFNLENBQUMsSUFBSSxDQUFDLE1BQU0sQ0FBQyxDQUFDO2FBQ3RCO1FBQ0wsQ0FBQyxDQUFDLENBQUM7UUFDSCxPQUFPLE1BQU0sQ0FBQztJQUNsQixDQUFDO0lBRUQ7O09BRUc7SUFDSSxnQkFBZ0I7UUFDbkIsSUFBSSxDQUFDLFFBQVEsR0FBRyxJQUFJLEdBQUcsRUFBa0IsQ0FBQztJQUM5QyxDQUFDOzs4R0E3SFEsZ0JBQWdCO2tIQUFoQixnQkFBZ0IsY0FGYixNQUFNOzRGQUVULGdCQUFnQjtrQkFINUIsVUFBVTttQkFBQztvQkFDUixVQUFVLEVBQUUsTUFBTTtpQkFDckIiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge0luamVjdGFibGV9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHtDb25maWd1cmF0aW9uU2VydmljZX0gZnJvbSAnLi4vY29uZmlndXJhdGlvbi9jb25maWd1cmF0aW9uLnNlcnZpY2UnO1xuaW1wb3J0IHtDb25maWdGaWx0ZXJ9IGZyb20gJy4uLy4uL2NvbW1vbnMvc2NoZW1hJztcbmltcG9ydCB7TG9nZ2VyU2VydmljZX0gZnJvbSAnLi4vbG9nZ2VyL3NlcnZpY2VzL2xvZ2dlci5zZXJ2aWNlJztcbmltcG9ydCB7TWVyZ2VPcGVyYXRvcn0gZnJvbSAnLi9tb2RlbHMvbWVyZ2Utb3BlcmF0b3InO1xuaW1wb3J0IHtGaWx0ZXJUeXBlfSBmcm9tICcuL21vZGVscy9maWx0ZXItdHlwZSc7XG5pbXBvcnQge1NpbXBsZUZpbHRlcn0gZnJvbSAnLi9tb2RlbHMvc2ltcGxlLWZpbHRlcic7XG5pbXBvcnQge0ZpbHRlcn0gZnJvbSAnLi9tb2RlbHMvZmlsdGVyJztcbmltcG9ydCB7TWVyZ2VkRmlsdGVyfSBmcm9tICcuL21vZGVscy9tZXJnZWQtZmlsdGVyJztcblxuXG4vKipcbiAqIEFsbG93cyBhY2Nlc3MgdG8gZmlsdGVycyBkZWZpbmVkIGluIG5hZS5qc29uIGR1cmluZyBydW50aW1lLlxuICpcbiAqIEZpbHRlcnMgYXJlIGFsd2F5cyByZXR1cm5lZCBhcyBjb3BpZXMgdG8gYXZvaWQgdW5pbnRlbmRlZCBzaWRlIGVmZmVjdHMgd2hlbiBvcGVyYXRpbmcgb24gdGhlbS5cbiAqXG4gKiBBbHNvIHNlZSB7QGxpbmsgRmlsdGVyfS5cbiAqL1xuQEluamVjdGFibGUoe1xuICAgIHByb3ZpZGVkSW46ICdyb290J1xufSlcbmV4cG9ydCBjbGFzcyBGaWx0ZXJSZXBvc2l0b3J5IHtcblxuICAgIC8qKlxuICAgICAqIFN0b3JlcyB0aGUgZmlsdGVycyBtYW5hZ2VkIGJ5IHRoZSByZXBvc2l0b3J5LiBLZXlzIGFyZSBmaWx0ZXJJZHMuXG4gICAgICovXG4gICAgcHJvdGVjdGVkIF9maWx0ZXJzOiBNYXA8c3RyaW5nLCBGaWx0ZXI+ID0gbmV3IE1hcDxzdHJpbmcsIEZpbHRlcj4oKTtcblxuICAgIC8qKlxuICAgICAqIExvYWRzIGFuZCBjcmVhdGVzIGZpbHRlcnMgZGVjbGFyZWQgaW4gbmFlLmpzb24uXG4gICAgICovXG4gICAgY29uc3RydWN0b3IocHJvdGVjdGVkIF9jb25maWdTZXJ2aWNlOiBDb25maWd1cmF0aW9uU2VydmljZSwgcHJvdGVjdGVkIF9sb2c6IExvZ2dlclNlcnZpY2UpIHtcbiAgICAgICAgY29uc3QgZmlsdGVycyA9IF9jb25maWdTZXJ2aWNlLmdldCgpLmZpbHRlcnM7XG4gICAgICAgIGlmICghZmlsdGVycykge1xuICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICB9XG5cbiAgICAgICAgT2JqZWN0LmtleXMoZmlsdGVycykuZm9yRWFjaChmaWx0ZXJJZCA9PiB7XG4gICAgICAgICAgICBjb25zdCBjb25maWdGaWx0ZXI6IENvbmZpZ0ZpbHRlciA9IGZpbHRlcnNbZmlsdGVySWRdO1xuICAgICAgICAgICAgLy8gVE9ETyAxNy40LjIwMjAgLSBkb24ndCBpZ25vcmUgZmlsdGVyLmFjY2VzcyBwcm9wZXJ0eVxuICAgICAgICAgICAgaWYgKCFjb25maWdGaWx0ZXIudHlwZSB8fCAhY29uZmlnRmlsdGVyLmJvZHkpIHtcbiAgICAgICAgICAgICAgICBfbG9nLndhcm4oYEZpbHRlciAnJHtmaWx0ZXJJZH0nIGRvZXNuJ3QgZGVmaW5lIGFsbCB0aGUgbmVjZXNzYXJ5IHByb3BlcnRpZXMuIFNraXBwaW5nLmApO1xuICAgICAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGlmIChBcnJheS5pc0FycmF5KGNvbmZpZ0ZpbHRlci5ib2R5KSkge1xuICAgICAgICAgICAgICAgIGlmICghY29uZmlnRmlsdGVyLm1lcmdlT3BlcmF0b3IpIHtcbiAgICAgICAgICAgICAgICAgICAgX2xvZy53YXJuKGBGaWx0ZXIgJyR7ZmlsdGVySWR9JyBjb250YWlucyBtdWx0aXBsZSBmaWx0ZXJzLCBidXQgZG9lc24ndCBkZWZpbmUgYSBtZXJnZSBvcGVyYXRvci4gU2tpcHBpbmcuYCk7XG4gICAgICAgICAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgdGhpcy53YXJuSWZGaWx0ZXJFeGlzdHMoZmlsdGVySWQpO1xuXG4gICAgICAgICAgICAgICAgY29uc3QgZmlsdGVyID0gbmV3IE1lcmdlZEZpbHRlcihmaWx0ZXJJZCwgY29uZmlnRmlsdGVyLnR5cGUgYXMgRmlsdGVyVHlwZSxcbiAgICAgICAgICAgICAgICAgICAgY29uZmlnRmlsdGVyLmJvZHksIGNvbmZpZ0ZpbHRlci5tZXJnZU9wZXJhdG9yIGFzIE1lcmdlT3BlcmF0b3IsIGNvbmZpZ0ZpbHRlci50aXRsZSk7XG4gICAgICAgICAgICAgICAgdGhpcy5fZmlsdGVycy5zZXQoZmlsdGVySWQsIGZpbHRlcik7XG5cbiAgICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAgICAgdGhpcy53YXJuSWZGaWx0ZXJFeGlzdHMoZmlsdGVySWQpO1xuICAgICAgICAgICAgICAgIGNvbnN0IGZpbHRlciA9IG5ldyBTaW1wbGVGaWx0ZXIoZmlsdGVySWQsIGNvbmZpZ0ZpbHRlci50eXBlIGFzIEZpbHRlclR5cGUsIGNvbmZpZ0ZpbHRlci5ib2R5LCBjb25maWdGaWx0ZXIudGl0bGUpO1xuICAgICAgICAgICAgICAgIHRoaXMuX2ZpbHRlcnMuc2V0KGZpbHRlcklkLCBmaWx0ZXIpO1xuICAgICAgICAgICAgfVxuICAgICAgICB9KTtcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBMb2dzIGEgd2FybmluZyBpZiBmaWx0ZXIgd2l0aCB0aGUgZ2l2ZW4gaWQgYWxyZWFkeSBleGlzdHMuIFRoZSB3YXJuaW5nIHN0YXRlcyB0aGF0IHRoZSBmaWx0ZXIgd2lsbCBiZSByZXBsYWNlZC5cbiAgICAgKiBAcGFyYW0gZmlsdGVySWQgSUQgb2YgdGhlIGZpbHRlciB3aG8ncyBleGlzdGVuY2Ugc2hvdWxkIGJlIGNoZWNrZWRcbiAgICAgKi9cbiAgICBwcm90ZWN0ZWQgd2FybklmRmlsdGVyRXhpc3RzKGZpbHRlcklkOiBzdHJpbmcpOiB2b2lkIHtcbiAgICAgICAgaWYgKHRoaXMuX2ZpbHRlcnMuaGFzKGZpbHRlcklkKSkge1xuICAgICAgICAgICAgdGhpcy5fbG9nLndhcm4oYEZpbHRlciB3aXRoIGlkICcke2ZpbHRlcklkfScgYWxyZWFkeSBleGlzdHMgaW4gdGhlIHJlcG9zaXRvcnkgYW5kIHdpbGwgYmUgcmVwbGFjZWQhYCk7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBAcGFyYW0gZmlsdGVySWQgSUQgb2YgdGhlIGZpbHRlciB0aGF0IHNob3VsZCBiZSByZXRyaWV2ZWRcbiAgICAgKiBAcmV0dXJucyBhIGNvcHkgb2YgdGhlIHNwZWNpZmllZCBmaWx0ZXIsIG9yIGB1bmRlZmluZWRgIGlmIHN1Y2ggZmlsdGVyIGRvZXNuJ3QgZXhpc3QgaW4gdGhlIHJlcG9zaXRvcnkuXG4gICAgICovXG4gICAgcHVibGljIGdldEZpbHRlcihmaWx0ZXJJZDogc3RyaW5nKTogRmlsdGVyIHwgdW5kZWZpbmVkIHtcbiAgICAgICAgbGV0IGZpbHRlciA9IHRoaXMuX2ZpbHRlcnMuZ2V0KGZpbHRlcklkKTtcbiAgICAgICAgaWYgKCEhZmlsdGVyKSB7XG4gICAgICAgICAgICBmaWx0ZXIgPSBmaWx0ZXIuY2xvbmUoKTtcbiAgICAgICAgfVxuICAgICAgICByZXR1cm4gZmlsdGVyO1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqIFN0b3JlcyBhIG5ldyBmaWx0ZXIgaW50byB0aGUgcmVwb3NpdG9yeS4gSWYgdGhlIHJlcG9zaXRvcnkgYWxyZWFkeSBjb250YWlucyBhIGZpbHRlciB3aXRoIHRoZSBzYW1lIElELCB0aGUgc3RvcmVkIGZpbHRlclxuICAgICAqIHdpbGwgYmUgcmVwbGFjZWQgYW5kIGEgd2FybmluZyB3aWxsIGJlIGxvZ2dlZC5cbiAgICAgKlxuICAgICAqIFRoZSByZXBvc2l0b3J5IHN0b3JlcyBhIGNvcHkgb2YgdGhlIHByb3ZpZGVkIGZpbHRlciwgdG8gZW5zdXJlIHRoYXQgdGhlIG9iamVjdHMgaW4gdGhlIHJlcG9zaXRvcnkgYXJlbid0IHJlZmVyZW5jZWQgZnJvbSBvdXRzaWRlLlxuICAgICAqIEBwYXJhbSBmaWx0ZXIgdGhlIGZpbHRlciB0aGF0IHNob3VsZCBiZSBzdG9yZWRcbiAgICAgKi9cbiAgICBwdWJsaWMgc2F2ZUZpbHRlcihmaWx0ZXI6IEZpbHRlcik6IHZvaWQge1xuICAgICAgICB0aGlzLndhcm5JZkZpbHRlckV4aXN0cyhmaWx0ZXIuaWQpO1xuICAgICAgICB0aGlzLl9maWx0ZXJzLnNldChmaWx0ZXIuaWQsIGZpbHRlci5jbG9uZSgpKTtcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBAcmV0dXJucyBsaXN0IG9mIGNhc2UgZmlsdGVyIGlkZW50aWZpZXJzIHN0b3JlZCBpbiB0aGUgcmVwb3NpdG9yeVxuICAgICAqL1xuICAgIHB1YmxpYyBnZXRDYXNlRmlsdGVyTGlzdCgpOiBBcnJheTxzdHJpbmc+IHtcbiAgICAgICAgcmV0dXJuIHRoaXMuZ2V0RmlsdGVyTGlzdChmaWx0ZXIgPT4gZmlsdGVyLnR5cGUgPT09IEZpbHRlclR5cGUuQ0FTRSk7XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogQHJldHVybnMgbGlzdCBvZiB0YXNrIGZpbHRlciBpZGVudGlmaWVycyBzdG9yZWQgaW4gdGhlIHJlcG9zaXRvcnlcbiAgICAgKi9cbiAgICBwdWJsaWMgZ2V0VGFza0ZpbHRlckxpc3QoKTogQXJyYXk8c3RyaW5nPiB7XG4gICAgICAgIHJldHVybiB0aGlzLmdldEZpbHRlckxpc3QoZmlsdGVyID0+IGZpbHRlci50eXBlID09PSBGaWx0ZXJUeXBlLlRBU0spO1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqIEBwYXJhbSBwcmVkaWNhdGUgY29uZGl0aW9uIHRoYXQgbXVzdCBiZSBmdWxmaWxsZWQgYnkgdGhlIGZpbHRlcnMgaW4gdGhlIHJlcG9zaXRvcnkgaW4gb3JkZXIgdG8gYmUgaW5jbHVkZWQgaW4gdGhlIHJlc3VsdFxuICAgICAqIEByZXR1cm5zIGxpc3Qgb2YgZmlsdGVyIGlkZW50aWZpZXJzIHRoYXQgZnVsZmlsbCB0aGUgZ2l2ZW4gcHJlZGljYXRlXG4gICAgICovXG4gICAgcHJvdGVjdGVkIGdldEZpbHRlckxpc3QocHJlZGljYXRlOiAoZjogRmlsdGVyKSA9PiBib29sZWFuKTogQXJyYXk8c3RyaW5nPiB7XG4gICAgICAgIGNvbnN0IHJlc3VsdCA9IFtdO1xuICAgICAgICB0aGlzLl9maWx0ZXJzLmZvckVhY2goZmlsdGVyID0+IHtcbiAgICAgICAgICAgIGlmIChwcmVkaWNhdGUoZmlsdGVyKSkge1xuICAgICAgICAgICAgICAgIHJlc3VsdC5wdXNoKGZpbHRlci5pZCk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH0pO1xuICAgICAgICByZXR1cm4gcmVzdWx0O1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqIEBwYXJhbSBmaWx0ZXJJZHMgbGlzdCBvZiBpZHMgb2YgZmlsdGVycyB0aGF0IHNob3VsZCBiZSByZXR1cm5lZFxuICAgICAqIEByZXR1cm5zIGxpc3Qgb2YgY29waWVzIG9mIHNwZWNpZmllZCBmaWx0ZXJzLiBJZiBzb21lIG9mIHRoZSBmaWx0ZXJzIGRvbid0IGV4aXN0IGluIHRoZSByZXBvc2l0b3J5LCB0aGV5IHdvbid0IGJlIGluY2x1ZGVkXG4gICAgICogYW5kIHRoZSBhcnJheSB3aWxsIGNvbnRhaW4gbGVzcyBlbGVtZW50cyB0aGFuIHRoZSBpbnB1dCBhcnJheS5cbiAgICAgKi9cbiAgICBwdWJsaWMgZ2V0RmlsdGVycyhmaWx0ZXJJZHM6IEFycmF5PHN0cmluZz4pOiBBcnJheTxGaWx0ZXI+IHtcbiAgICAgICAgY29uc3QgcmVzdWx0ID0gW107XG4gICAgICAgIGZpbHRlcklkcy5mb3JFYWNoKGlkID0+IHtcbiAgICAgICAgICAgIGNvbnN0IGZpbHRlciA9IHRoaXMuZ2V0RmlsdGVyKGlkKTtcbiAgICAgICAgICAgIGlmIChmaWx0ZXIgIT09IHVuZGVmaW5lZCkge1xuICAgICAgICAgICAgICAgcmVzdWx0LnB1c2goZmlsdGVyKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfSk7XG4gICAgICAgIHJldHVybiByZXN1bHQ7XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogUmVtb3ZlcyBhbGwgc3RvcmVkIGZpbHRlcnMgZnJvbSB0aGUgcmVwb3NpdG9yeVxuICAgICAqL1xuICAgIHB1YmxpYyByZW1vdmVBbGxGaWx0ZXJzKCk6IHZvaWQge1xuICAgICAgICB0aGlzLl9maWx0ZXJzID0gbmV3IE1hcDxzdHJpbmcsIEZpbHRlcj4oKTtcbiAgICB9XG59XG4iXX0=
|
|
@@ -0,0 +1,2 @@
|
|
|
1
|
+
export {};
|
|
2
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidXNlci1pbXBlcnNvbmF0ZS1jb25maWctbWV0YWRhdGEuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9uZXRncmlmLWNvbXBvbmVudHMtY29yZS9zcmMvbGliL2ltcGVyc29uYXRpb24vbW9kZWxzL3VzZXItaW1wZXJzb25hdGUtY29uZmlnLW1ldGFkYXRhLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiIiLCJzb3VyY2VzQ29udGVudCI6WyJleHBvcnQgaW50ZXJmYWNlIFVzZXJJbXBlcnNvbmF0ZUNvbmZpZ01ldGFkYXRhIHtcbiAgICBzdHJpbmdJZDogc3RyaW5nXG59XG4iXX0=
|
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Holds all identifiers of the Impersonation config process in an accessible manner
|
|
3
|
+
*/
|
|
4
|
+
export var UserImpersonationConstants;
|
|
5
|
+
(function (UserImpersonationConstants) {
|
|
6
|
+
UserImpersonationConstants["IMPERSONATION_CONFIG_NET_IDENTIFIER"] = "impersonation_config";
|
|
7
|
+
UserImpersonationConstants["IMPERSONATION_CONFIG_FIELD_IMPERSONATED"] = "impersonated";
|
|
8
|
+
UserImpersonationConstants["IMPERSONATION_CONFIG_FIELD_ROLES"] = "impersonated_roles";
|
|
9
|
+
UserImpersonationConstants["IMPERSONATION_CONFIG_FIELD_AUTHS"] = "impersonated_authorities";
|
|
10
|
+
})(UserImpersonationConstants || (UserImpersonationConstants = {}));
|
|
11
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidXNlci1pbXBlcnNvbmF0aW9uLWNvbnN0YW50cy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL25ldGdyaWYtY29tcG9uZW50cy1jb3JlL3NyYy9saWIvaW1wZXJzb25hdGlvbi9tb2RlbHMvdXNlci1pbXBlcnNvbmF0aW9uLWNvbnN0YW50cy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQTs7R0FFRztBQUNILE1BQU0sQ0FBTixJQUFZLDBCQVFYO0FBUkQsV0FBWSwwQkFBMEI7SUFFbEMsMEZBQTRELENBQUE7SUFFNUQsc0ZBQXdELENBQUE7SUFDeEQscUZBQXVELENBQUE7SUFDdkQsMkZBQTZELENBQUE7QUFFakUsQ0FBQyxFQVJXLDBCQUEwQixLQUExQiwwQkFBMEIsUUFRckMiLCJzb3VyY2VzQ29udGVudCI6WyIvKipcbiAqIEhvbGRzIGFsbCBpZGVudGlmaWVycyBvZiB0aGUgSW1wZXJzb25hdGlvbiBjb25maWcgcHJvY2VzcyBpbiBhbiBhY2Nlc3NpYmxlIG1hbm5lclxuICovXG5leHBvcnQgZW51bSBVc2VySW1wZXJzb25hdGlvbkNvbnN0YW50cyB7XG5cbiAgICBJTVBFUlNPTkFUSU9OX0NPTkZJR19ORVRfSURFTlRJRklFUiA9ICdpbXBlcnNvbmF0aW9uX2NvbmZpZycsXG5cbiAgICBJTVBFUlNPTkFUSU9OX0NPTkZJR19GSUVMRF9JTVBFUlNPTkFURUQgPSAnaW1wZXJzb25hdGVkJyxcbiAgICBJTVBFUlNPTkFUSU9OX0NPTkZJR19GSUVMRF9ST0xFUyA9ICdpbXBlcnNvbmF0ZWRfcm9sZXMnLFxuICAgIElNUEVSU09OQVRJT05fQ09ORklHX0ZJRUxEX0FVVEhTID0gJ2ltcGVyc29uYXRlZF9hdXRob3JpdGllcycsXG5cbn1cbiJdfQ==
|
|
@@ -0,0 +1,9 @@
|
|
|
1
|
+
/* MODELS */
|
|
2
|
+
export * from './models/user-impersonation-constants';
|
|
3
|
+
export * from './models/user-impersonate-config-metadata';
|
|
4
|
+
/* SERVICES */
|
|
5
|
+
export * from './services/impersonation.service';
|
|
6
|
+
export * from './services/impersonation-user-select.service';
|
|
7
|
+
export * from './services/impersonation-user-list.service';
|
|
8
|
+
export * from './services/impersonation-user-resource.service';
|
|
9
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicHVibGljLWFwaS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL25ldGdyaWYtY29tcG9uZW50cy1jb3JlL3NyYy9saWIvaW1wZXJzb25hdGlvbi9wdWJsaWMtYXBpLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLFlBQVk7QUFDWixjQUFjLHVDQUF1QyxDQUFDO0FBQ3RELGNBQWMsMkNBQTJDLENBQUM7QUFFMUQsY0FBYztBQUNkLGNBQWMsa0NBQWtDLENBQUM7QUFDakQsY0FBYyw4Q0FBOEMsQ0FBQztBQUM3RCxjQUFjLDRDQUE0QyxDQUFDO0FBQzNELGNBQWMsZ0RBQWdELENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyIvKiBNT0RFTFMgKi9cbmV4cG9ydCAqIGZyb20gJy4vbW9kZWxzL3VzZXItaW1wZXJzb25hdGlvbi1jb25zdGFudHMnO1xuZXhwb3J0ICogZnJvbSAnLi9tb2RlbHMvdXNlci1pbXBlcnNvbmF0ZS1jb25maWctbWV0YWRhdGEnO1xuXG4vKiBTRVJWSUNFUyAqL1xuZXhwb3J0ICogZnJvbSAnLi9zZXJ2aWNlcy9pbXBlcnNvbmF0aW9uLnNlcnZpY2UnO1xuZXhwb3J0ICogZnJvbSAnLi9zZXJ2aWNlcy9pbXBlcnNvbmF0aW9uLXVzZXItc2VsZWN0LnNlcnZpY2UnO1xuZXhwb3J0ICogZnJvbSAnLi9zZXJ2aWNlcy9pbXBlcnNvbmF0aW9uLXVzZXItbGlzdC5zZXJ2aWNlJztcbmV4cG9ydCAqIGZyb20gJy4vc2VydmljZXMvaW1wZXJzb25hdGlvbi11c2VyLXJlc291cmNlLnNlcnZpY2UnO1xuIl19
|
|
@@ -0,0 +1,19 @@
|
|
|
1
|
+
import { UserListService } from '../../user/services/user-list.service';
|
|
2
|
+
import { Injectable } from '@angular/core';
|
|
3
|
+
import * as i0 from "@angular/core";
|
|
4
|
+
import * as i1 from "./impersonation-user-resource.service";
|
|
5
|
+
import * as i2 from "../../logger/services/logger.service";
|
|
6
|
+
import * as i3 from "../../snack-bar/services/snack-bar.service";
|
|
7
|
+
import * as i4 from "@ngx-translate/core";
|
|
8
|
+
export class ImpersonationUserListService extends UserListService {
|
|
9
|
+
constructor(_resources, _logService, _snackbar, _translate) {
|
|
10
|
+
super(_resources, _logService, _snackbar, _translate);
|
|
11
|
+
this._logService = _logService;
|
|
12
|
+
}
|
|
13
|
+
}
|
|
14
|
+
ImpersonationUserListService.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.3.11", ngImport: i0, type: ImpersonationUserListService, deps: [{ token: i1.ImpersonationUserResourceService }, { token: i2.LoggerService }, { token: i3.SnackBarService }, { token: i4.TranslateService }], target: i0.ɵɵFactoryTarget.Injectable });
|
|
15
|
+
ImpersonationUserListService.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "13.3.11", ngImport: i0, type: ImpersonationUserListService });
|
|
16
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.11", ngImport: i0, type: ImpersonationUserListService, decorators: [{
|
|
17
|
+
type: Injectable
|
|
18
|
+
}], ctorParameters: function () { return [{ type: i1.ImpersonationUserResourceService }, { type: i2.LoggerService }, { type: i3.SnackBarService }, { type: i4.TranslateService }]; } });
|
|
19
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW1wZXJzb25hdGlvbi11c2VyLWxpc3Quc2VydmljZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL25ldGdyaWYtY29tcG9uZW50cy1jb3JlL3NyYy9saWIvaW1wZXJzb25hdGlvbi9zZXJ2aWNlcy9pbXBlcnNvbmF0aW9uLXVzZXItbGlzdC5zZXJ2aWNlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBQyxlQUFlLEVBQUMsTUFBTSx1Q0FBdUMsQ0FBQztBQUN0RSxPQUFPLEVBQUMsVUFBVSxFQUFDLE1BQU0sZUFBZSxDQUFDOzs7Ozs7QUFPekMsTUFBTSxPQUFPLDRCQUE2QixTQUFRLGVBQWU7SUFFN0QsWUFBWSxVQUE0QyxFQUNsQyxXQUEwQixFQUNwQyxTQUEwQixFQUMxQixVQUE0QjtRQUNwQyxLQUFLLENBQUMsVUFBVSxFQUFFLFdBQVcsRUFBRSxTQUFTLEVBQUUsVUFBVSxDQUFDLENBQUM7UUFIcEMsZ0JBQVcsR0FBWCxXQUFXLENBQWU7SUFJaEQsQ0FBQzs7MEhBUFEsNEJBQTRCOzhIQUE1Qiw0QkFBNEI7NEZBQTVCLDRCQUE0QjtrQkFEeEMsVUFBVSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7VXNlckxpc3RTZXJ2aWNlfSBmcm9tICcuLi8uLi91c2VyL3NlcnZpY2VzL3VzZXItbGlzdC5zZXJ2aWNlJztcbmltcG9ydCB7SW5qZWN0YWJsZX0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQge1NuYWNrQmFyU2VydmljZX0gZnJvbSAnLi4vLi4vc25hY2stYmFyL3NlcnZpY2VzL3NuYWNrLWJhci5zZXJ2aWNlJztcbmltcG9ydCB7VHJhbnNsYXRlU2VydmljZX0gZnJvbSAnQG5neC10cmFuc2xhdGUvY29yZSc7XG5pbXBvcnQge0xvZ2dlclNlcnZpY2V9IGZyb20gJy4uLy4uL2xvZ2dlci9zZXJ2aWNlcy9sb2dnZXIuc2VydmljZSc7XG5pbXBvcnQge0ltcGVyc29uYXRpb25Vc2VyUmVzb3VyY2VTZXJ2aWNlfSBmcm9tICcuL2ltcGVyc29uYXRpb24tdXNlci1yZXNvdXJjZS5zZXJ2aWNlJztcblxuQEluamVjdGFibGUoKVxuZXhwb3J0IGNsYXNzIEltcGVyc29uYXRpb25Vc2VyTGlzdFNlcnZpY2UgZXh0ZW5kcyBVc2VyTGlzdFNlcnZpY2Uge1xuXG4gICAgY29uc3RydWN0b3IoX3Jlc291cmNlczogSW1wZXJzb25hdGlvblVzZXJSZXNvdXJjZVNlcnZpY2UsXG4gICAgICAgICAgICAgICAgcHJvdGVjdGVkIF9sb2dTZXJ2aWNlOiBMb2dnZXJTZXJ2aWNlLFxuICAgICAgICAgICAgICAgIF9zbmFja2JhcjogU25hY2tCYXJTZXJ2aWNlLFxuICAgICAgICAgICAgICAgIF90cmFuc2xhdGU6IFRyYW5zbGF0ZVNlcnZpY2UpIHtcbiAgICAgICAgc3VwZXIoX3Jlc291cmNlcywgX2xvZ1NlcnZpY2UsIF9zbmFja2JhciwgX3RyYW5zbGF0ZSk7XG4gICAgfVxuXG59XG4iXX0=
|
|
@@ -0,0 +1,25 @@
|
|
|
1
|
+
import { Injectable } from '@angular/core';
|
|
2
|
+
import { UserResourceService } from '../../resources/engine-endpoint/user-resource.service';
|
|
3
|
+
import { map } from 'rxjs/operators';
|
|
4
|
+
import * as i0 from "@angular/core";
|
|
5
|
+
import * as i1 from "../../resources/resource-provider.service";
|
|
6
|
+
import * as i2 from "../../configuration/configuration.service";
|
|
7
|
+
export class ImpersonationUserResourceService extends UserResourceService {
|
|
8
|
+
constructor(provider, configService) {
|
|
9
|
+
super(provider, configService);
|
|
10
|
+
this._IMPERSONATION_SERVER_URL = this.getResourceAddress('impersonation');
|
|
11
|
+
}
|
|
12
|
+
search(body, params) {
|
|
13
|
+
return this._resourceProvider.post$('/impersonate/search', this._IMPERSONATION_SERVER_URL, { query: body.fulltext }, params)
|
|
14
|
+
.pipe(map((r) => this.getResourcePage(r, 'users')));
|
|
15
|
+
}
|
|
16
|
+
}
|
|
17
|
+
ImpersonationUserResourceService.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.3.11", ngImport: i0, type: ImpersonationUserResourceService, deps: [{ token: i1.ResourceProvider }, { token: i2.ConfigurationService }], target: i0.ɵɵFactoryTarget.Injectable });
|
|
18
|
+
ImpersonationUserResourceService.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "13.3.11", ngImport: i0, type: ImpersonationUserResourceService, providedIn: 'root' });
|
|
19
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.11", ngImport: i0, type: ImpersonationUserResourceService, decorators: [{
|
|
20
|
+
type: Injectable,
|
|
21
|
+
args: [{
|
|
22
|
+
providedIn: 'root'
|
|
23
|
+
}]
|
|
24
|
+
}], ctorParameters: function () { return [{ type: i1.ResourceProvider }, { type: i2.ConfigurationService }]; } });
|
|
25
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW1wZXJzb25hdGlvbi11c2VyLXJlc291cmNlLnNlcnZpY2UuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9uZXRncmlmLWNvbXBvbmVudHMtY29yZS9zcmMvbGliL2ltcGVyc29uYXRpb24vc2VydmljZXMvaW1wZXJzb25hdGlvbi11c2VyLXJlc291cmNlLnNlcnZpY2UudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFDLFVBQVUsRUFBQyxNQUFNLGVBQWUsQ0FBQztBQUN6QyxPQUFPLEVBQUMsbUJBQW1CLEVBQUMsTUFBTSx1REFBdUQsQ0FBQztBQU8xRixPQUFPLEVBQUMsR0FBRyxFQUFDLE1BQU0sZ0JBQWdCLENBQUM7Ozs7QUFLbkMsTUFBTSxPQUFPLGdDQUFpQyxTQUFRLG1CQUFtQjtJQUlyRSxZQUFZLFFBQTBCLEVBQUUsYUFBbUM7UUFDdkUsS0FBSyxDQUFDLFFBQVEsRUFBRSxhQUFhLENBQUMsQ0FBQztRQUMvQixJQUFJLENBQUMseUJBQXlCLEdBQUcsSUFBSSxDQUFDLGtCQUFrQixDQUFDLGVBQWUsQ0FBQyxDQUFDO0lBQzlFLENBQUM7SUFFTSxNQUFNLENBQUMsSUFBd0IsRUFBRSxNQUFlO1FBQ25ELE9BQU8sSUFBSSxDQUFDLGlCQUFpQixDQUFDLEtBQUssQ0FBQyxxQkFBcUIsRUFBRSxJQUFJLENBQUMseUJBQXlCLEVBQUUsRUFBQyxLQUFLLEVBQUUsSUFBSSxDQUFDLFFBQVEsRUFBQyxFQUFFLE1BQU0sQ0FBQzthQUNySCxJQUFJLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQyxFQUFFLEVBQUUsQ0FBQyxJQUFJLENBQUMsZUFBZSxDQUFlLENBQUMsRUFBRSxPQUFPLENBQUMsQ0FBQyxDQUFDLENBQUM7SUFDMUUsQ0FBQzs7OEhBWlEsZ0NBQWdDO2tJQUFoQyxnQ0FBZ0MsY0FGN0IsTUFBTTs0RkFFVCxnQ0FBZ0M7a0JBSDVDLFVBQVU7bUJBQUM7b0JBQ1IsVUFBVSxFQUFFLE1BQU07aUJBQ3JCIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtJbmplY3RhYmxlfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7VXNlclJlc291cmNlU2VydmljZX0gZnJvbSAnLi4vLi4vcmVzb3VyY2VzL2VuZ2luZS1lbmRwb2ludC91c2VyLXJlc291cmNlLnNlcnZpY2UnO1xuaW1wb3J0IHtSZXNvdXJjZVByb3ZpZGVyfSBmcm9tICcuLi8uLi9yZXNvdXJjZXMvcmVzb3VyY2UtcHJvdmlkZXIuc2VydmljZSc7XG5pbXBvcnQge0NvbmZpZ3VyYXRpb25TZXJ2aWNlfSBmcm9tICcuLi8uLi9jb25maWd1cmF0aW9uL2NvbmZpZ3VyYXRpb24uc2VydmljZSc7XG5pbXBvcnQge1BhcmFtc30gZnJvbSAnQGFuZ3VsYXIvcm91dGVyJztcbmltcG9ydCB7T2JzZXJ2YWJsZX0gZnJvbSAncnhqcyc7XG5pbXBvcnQge1BhZ2V9IGZyb20gJy4uLy4uL3Jlc291cmNlcy9pbnRlcmZhY2UvcGFnZSc7XG5pbXBvcnQge1VzZXJSZXNvdXJjZX0gZnJvbSAnLi4vLi4vcmVzb3VyY2VzL2ludGVyZmFjZS91c2VyLXJlc291cmNlJztcbmltcG9ydCB7bWFwfSBmcm9tICdyeGpzL29wZXJhdG9ycyc7XG5cbkBJbmplY3RhYmxlKHtcbiAgICBwcm92aWRlZEluOiAncm9vdCdcbn0pXG5leHBvcnQgY2xhc3MgSW1wZXJzb25hdGlvblVzZXJSZXNvdXJjZVNlcnZpY2UgZXh0ZW5kcyBVc2VyUmVzb3VyY2VTZXJ2aWNlIHtcblxuICAgIHByb3RlY3RlZCBfSU1QRVJTT05BVElPTl9TRVJWRVJfVVJMOiBzdHJpbmc7XG5cbiAgICBjb25zdHJ1Y3Rvcihwcm92aWRlcjogUmVzb3VyY2VQcm92aWRlciwgY29uZmlnU2VydmljZTogQ29uZmlndXJhdGlvblNlcnZpY2UpIHtcbiAgICAgICAgc3VwZXIocHJvdmlkZXIsIGNvbmZpZ1NlcnZpY2UpO1xuICAgICAgICB0aGlzLl9JTVBFUlNPTkFUSU9OX1NFUlZFUl9VUkwgPSB0aGlzLmdldFJlc291cmNlQWRkcmVzcygnaW1wZXJzb25hdGlvbicpO1xuICAgIH1cblxuICAgIHB1YmxpYyBzZWFyY2goYm9keToge2Z1bGx0ZXh0OiBzdHJpbmd9LCBwYXJhbXM/OiBQYXJhbXMpOiBPYnNlcnZhYmxlPFBhZ2U8VXNlclJlc291cmNlPj4ge1xuICAgICAgICByZXR1cm4gdGhpcy5fcmVzb3VyY2VQcm92aWRlci5wb3N0JCgnL2ltcGVyc29uYXRlL3NlYXJjaCcsIHRoaXMuX0lNUEVSU09OQVRJT05fU0VSVkVSX1VSTCwge3F1ZXJ5OiBib2R5LmZ1bGx0ZXh0fSwgcGFyYW1zKVxuICAgICAgICAgICAgLnBpcGUobWFwKChyKSA9PiB0aGlzLmdldFJlc291cmNlUGFnZTxVc2VyUmVzb3VyY2U+KHIsICd1c2VycycpKSk7XG4gICAgfVxufVxuIl19
|
|
@@ -0,0 +1,85 @@
|
|
|
1
|
+
import { Inject, Injectable, Optional } from '@angular/core';
|
|
2
|
+
import { NAE_USER_IMPERSONATE_COMPONENT, NAE_ADMIN_IMPERSONATE_COMPONENT } from '../../side-menu/content-components/injection-tokens';
|
|
3
|
+
import { SideMenuSize } from '../../side-menu/models/side-menu-size';
|
|
4
|
+
import { SimpleFilter } from '../../filter/models/simple-filter';
|
|
5
|
+
import { UserImpersonationConstants } from '../models/user-impersonation-constants';
|
|
6
|
+
import moment from 'moment';
|
|
7
|
+
import * as i0 from "@angular/core";
|
|
8
|
+
import * as i1 from "../../logger/services/logger.service";
|
|
9
|
+
import * as i2 from "../../side-menu/services/side-menu.service";
|
|
10
|
+
import * as i3 from "../../snack-bar/services/snack-bar.service";
|
|
11
|
+
import * as i4 from "./impersonation.service";
|
|
12
|
+
import * as i5 from "../../user/services/user.service";
|
|
13
|
+
export class ImpersonationUserSelectService {
|
|
14
|
+
constructor(_log, _sideMenuService, _snackBar, _impersonation, _user, _userImpersonateComponent, _adminImpersonateComponent) {
|
|
15
|
+
this._log = _log;
|
|
16
|
+
this._sideMenuService = _sideMenuService;
|
|
17
|
+
this._snackBar = _snackBar;
|
|
18
|
+
this._impersonation = _impersonation;
|
|
19
|
+
this._user = _user;
|
|
20
|
+
this._userImpersonateComponent = _userImpersonateComponent;
|
|
21
|
+
this._adminImpersonateComponent = _adminImpersonateComponent;
|
|
22
|
+
}
|
|
23
|
+
/**
|
|
24
|
+
* Opens side menu with users who can be impersonated by logged user
|
|
25
|
+
*/
|
|
26
|
+
selectImpersonate() {
|
|
27
|
+
if (this.isAdmin()) {
|
|
28
|
+
this._sideMenuService.open(this._adminImpersonateComponent, SideMenuSize.LARGE, this.injectedData()).onClose.subscribe(event => {
|
|
29
|
+
this._log.debug('Impersonable user select :' + event);
|
|
30
|
+
if (event.data === undefined) {
|
|
31
|
+
return;
|
|
32
|
+
}
|
|
33
|
+
this._impersonation.impersonateUser(event.data._id);
|
|
34
|
+
});
|
|
35
|
+
}
|
|
36
|
+
else {
|
|
37
|
+
this._sideMenuService.open(this._userImpersonateComponent, SideMenuSize.XL, this.injectedData()).onClose.subscribe(event => {
|
|
38
|
+
this._log.debug('Impersonable config select :' + event);
|
|
39
|
+
if (event.data === undefined) {
|
|
40
|
+
return;
|
|
41
|
+
}
|
|
42
|
+
this._impersonation.impersonateByConfig(event.data.stringId);
|
|
43
|
+
});
|
|
44
|
+
}
|
|
45
|
+
}
|
|
46
|
+
injectedData() {
|
|
47
|
+
const currentTime = moment();
|
|
48
|
+
let filterCasesFilter = SimpleFilter.fromCaseQuery({
|
|
49
|
+
process: {
|
|
50
|
+
identifier: UserImpersonationConstants.IMPERSONATION_CONFIG_NET_IDENTIFIER
|
|
51
|
+
},
|
|
52
|
+
query: `
|
|
53
|
+
(dataSet.impersonators.keyValue:${this._user.user.id}) AND
|
|
54
|
+
(dataSet.is_active.booleanValue:true) AND
|
|
55
|
+
((!(_exists_:dataSet.valid_from.timestampValue)) OR (dataSet.valid_from.timestampValue:<` + currentTime.valueOf() + `)) AND
|
|
56
|
+
((!(_exists_:dataSet.valid_to.timestampValue)) OR (dataSet.valid_to.timestampValue:>${currentTime.valueOf()}))
|
|
57
|
+
`
|
|
58
|
+
});
|
|
59
|
+
return {
|
|
60
|
+
filter: filterCasesFilter
|
|
61
|
+
};
|
|
62
|
+
}
|
|
63
|
+
isAdmin() {
|
|
64
|
+
return this._user.hasAuthority('ROLE_ADMIN');
|
|
65
|
+
}
|
|
66
|
+
}
|
|
67
|
+
ImpersonationUserSelectService.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.3.11", ngImport: i0, type: ImpersonationUserSelectService, deps: [{ token: i1.LoggerService }, { token: i2.SideMenuService }, { token: i3.SnackBarService }, { token: i4.ImpersonationService }, { token: i5.UserService }, { token: NAE_USER_IMPERSONATE_COMPONENT, optional: true }, { token: NAE_ADMIN_IMPERSONATE_COMPONENT, optional: true }], target: i0.ɵɵFactoryTarget.Injectable });
|
|
68
|
+
ImpersonationUserSelectService.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "13.3.11", ngImport: i0, type: ImpersonationUserSelectService, providedIn: 'root' });
|
|
69
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.11", ngImport: i0, type: ImpersonationUserSelectService, decorators: [{
|
|
70
|
+
type: Injectable,
|
|
71
|
+
args: [{
|
|
72
|
+
providedIn: 'root'
|
|
73
|
+
}]
|
|
74
|
+
}], ctorParameters: function () { return [{ type: i1.LoggerService }, { type: i2.SideMenuService }, { type: i3.SnackBarService }, { type: i4.ImpersonationService }, { type: i5.UserService }, { type: undefined, decorators: [{
|
|
75
|
+
type: Optional
|
|
76
|
+
}, {
|
|
77
|
+
type: Inject,
|
|
78
|
+
args: [NAE_USER_IMPERSONATE_COMPONENT]
|
|
79
|
+
}] }, { type: undefined, decorators: [{
|
|
80
|
+
type: Optional
|
|
81
|
+
}, {
|
|
82
|
+
type: Inject,
|
|
83
|
+
args: [NAE_ADMIN_IMPERSONATE_COMPONENT]
|
|
84
|
+
}] }]; } });
|
|
85
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW1wZXJzb25hdGlvbi11c2VyLXNlbGVjdC5zZXJ2aWNlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvbmV0Z3JpZi1jb21wb25lbnRzLWNvcmUvc3JjL2xpYi9pbXBlcnNvbmF0aW9uL3NlcnZpY2VzL2ltcGVyc29uYXRpb24tdXNlci1zZWxlY3Quc2VydmljZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUMsTUFBTSxFQUFFLFVBQVUsRUFBRSxRQUFRLEVBQUMsTUFBTSxlQUFlLENBQUM7QUFFM0QsT0FBTyxFQUFDLDhCQUE4QixFQUFFLCtCQUErQixFQUFDLE1BQU0scURBQXFELENBQUM7QUFJcEksT0FBTyxFQUFDLFlBQVksRUFBQyxNQUFNLHVDQUF1QyxDQUFDO0FBS25FLE9BQU8sRUFBQyxZQUFZLEVBQUMsTUFBTSxtQ0FBbUMsQ0FBQztBQUMvRCxPQUFPLEVBQUMsMEJBQTBCLEVBQUMsTUFBTSx3Q0FBd0MsQ0FBQztBQUNsRixPQUFPLE1BQU0sTUFBTSxRQUFRLENBQUM7Ozs7Ozs7QUFNNUIsTUFBTSxPQUFPLDhCQUE4QjtJQUV2QyxZQUFzQixJQUFtQixFQUNuQixnQkFBaUMsRUFDakMsU0FBMEIsRUFDMUIsY0FBb0MsRUFDcEMsS0FBa0IsRUFDa0MseUJBQThCLEVBQzdCLDBCQUErQjtRQU5wRixTQUFJLEdBQUosSUFBSSxDQUFlO1FBQ25CLHFCQUFnQixHQUFoQixnQkFBZ0IsQ0FBaUI7UUFDakMsY0FBUyxHQUFULFNBQVMsQ0FBaUI7UUFDMUIsbUJBQWMsR0FBZCxjQUFjLENBQXNCO1FBQ3BDLFVBQUssR0FBTCxLQUFLLENBQWE7UUFDa0MsOEJBQXlCLEdBQXpCLHlCQUF5QixDQUFLO1FBQzdCLCtCQUEwQixHQUExQiwwQkFBMEIsQ0FBSztJQUN2RyxDQUFDO0lBRUo7O09BRUc7SUFDSSxpQkFBaUI7UUFDcEIsSUFBSSxJQUFJLENBQUMsT0FBTyxFQUFFLEVBQUU7WUFDaEIsSUFBSSxDQUFDLGdCQUFnQixDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsMEJBQTBCLEVBQUUsWUFBWSxDQUFDLEtBQUssRUFBRSxJQUFJLENBQUMsWUFBWSxFQUFFLENBQUMsQ0FBQyxPQUFPLENBQUMsU0FBUyxDQUFDLEtBQUssQ0FBQyxFQUFFO2dCQUMzSCxJQUFJLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyw0QkFBNEIsR0FBRyxLQUFLLENBQUMsQ0FBQztnQkFDdEQsSUFBSSxLQUFLLENBQUMsSUFBSSxLQUFLLFNBQVMsRUFBRTtvQkFDMUIsT0FBTztpQkFDVjtnQkFDRCxJQUFJLENBQUMsY0FBYyxDQUFDLGVBQWUsQ0FBQyxLQUFLLENBQUMsSUFBSSxDQUFDLEdBQUcsQ0FBQyxDQUFDO1lBQ3hELENBQUMsQ0FBQyxDQUFDO1NBQ047YUFBTTtZQUNILElBQUksQ0FBQyxnQkFBZ0IsQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLHlCQUF5QixFQUFFLFlBQVksQ0FBQyxFQUFFLEVBQUUsSUFBSSxDQUFDLFlBQVksRUFBRSxDQUFDLENBQUMsT0FBTyxDQUFDLFNBQVMsQ0FBQyxLQUFLLENBQUMsRUFBRTtnQkFDdkgsSUFBSSxDQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsOEJBQThCLEdBQUcsS0FBSyxDQUFDLENBQUM7Z0JBQ3hELElBQUksS0FBSyxDQUFDLElBQUksS0FBSyxTQUFTLEVBQUU7b0JBQzFCLE9BQU87aUJBQ1Y7Z0JBQ0QsSUFBSSxDQUFDLGNBQWMsQ0FBQyxtQkFBbUIsQ0FBRSxLQUFLLENBQUMsSUFBc0MsQ0FBQyxRQUFRLENBQUMsQ0FBQztZQUNwRyxDQUFDLENBQUMsQ0FBQztTQUNOO0lBQ0wsQ0FBQztJQUVTLFlBQVk7UUFDbEIsTUFBTSxXQUFXLEdBQUcsTUFBTSxFQUFFLENBQUM7UUFDN0IsSUFBSSxpQkFBaUIsR0FBRyxZQUFZLENBQUMsYUFBYSxDQUFDO1lBQy9DLE9BQU8sRUFBRTtnQkFDTCxVQUFVLEVBQUUsMEJBQTBCLENBQUMsbUNBQW1DO2FBQzdFO1lBQ0QsS0FBSyxFQUFFOzhDQUMyQixJQUFJLENBQUMsS0FBSyxDQUFDLElBQUksQ0FBQyxFQUFFOztxR0FFcUMsR0FBRyxXQUFXLENBQUMsT0FBTyxFQUFFLEdBQUc7a0dBQzlCLFdBQVcsQ0FBQyxPQUFPLEVBQUU7YUFDMUc7U0FDSixDQUFDLENBQUM7UUFDSCxPQUFPO1lBQ0gsTUFBTSxFQUFFLGlCQUFpQjtTQUNJLENBQUE7SUFDckMsQ0FBQztJQUVTLE9BQU87UUFDYixPQUFPLElBQUksQ0FBQyxLQUFLLENBQUMsWUFBWSxDQUFDLFlBQVksQ0FBQyxDQUFDO0lBQ2pELENBQUM7OzRIQXREUSw4QkFBOEIsNEtBT1AsOEJBQThCLDZCQUM5QiwrQkFBK0I7Z0lBUnRELDhCQUE4QixjQUY3QixNQUFNOzRGQUVQLDhCQUE4QjtrQkFIMUMsVUFBVTttQkFBQztvQkFDVixVQUFVLEVBQUUsTUFBTTtpQkFDbkI7OzBCQVFnQixRQUFROzswQkFBSSxNQUFNOzJCQUFDLDhCQUE4Qjs7MEJBQ2pELFFBQVE7OzBCQUFJLE1BQU07MkJBQUMsK0JBQStCIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtJbmplY3QsIEluamVjdGFibGUsIE9wdGlvbmFsfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7SW1wZXJzb25hdGlvblNlcnZpY2V9IGZyb20gXCIuL2ltcGVyc29uYXRpb24uc2VydmljZVwiO1xuaW1wb3J0IHtOQUVfVVNFUl9JTVBFUlNPTkFURV9DT01QT05FTlQsIE5BRV9BRE1JTl9JTVBFUlNPTkFURV9DT01QT05FTlR9IGZyb20gJy4uLy4uL3NpZGUtbWVudS9jb250ZW50LWNvbXBvbmVudHMvaW5qZWN0aW9uLXRva2Vucyc7XG5pbXBvcnQge0xvZ2dlclNlcnZpY2V9IGZyb20gJy4uLy4uL2xvZ2dlci9zZXJ2aWNlcy9sb2dnZXIuc2VydmljZSc7XG5pbXBvcnQge1NuYWNrQmFyU2VydmljZX0gZnJvbSAnLi4vLi4vc25hY2stYmFyL3NlcnZpY2VzL3NuYWNrLWJhci5zZXJ2aWNlJztcbmltcG9ydCB7U2lkZU1lbnVTZXJ2aWNlfSBmcm9tICcuLi8uLi9zaWRlLW1lbnUvc2VydmljZXMvc2lkZS1tZW51LnNlcnZpY2UnO1xuaW1wb3J0IHtTaWRlTWVudVNpemV9IGZyb20gJy4uLy4uL3NpZGUtbWVudS9tb2RlbHMvc2lkZS1tZW51LXNpemUnO1xuaW1wb3J0IHtVc2VySW1wZXJzb25hdGVDb25maWdNZXRhZGF0YX0gZnJvbSAnLi4vbW9kZWxzL3VzZXItaW1wZXJzb25hdGUtY29uZmlnLW1ldGFkYXRhJztcbmltcG9ydCB7XG4gICAgVXNlckltcGVyc29uYXRlSW5qZWN0aW9uRGF0YVxufSBmcm9tICcuLi8uLi9zaWRlLW1lbnUvY29udGVudC1jb21wb25lbnRzL3VzZXItaW1wZXJzb25hdGUvbW9kZWwvdXNlci1pbXBlcnNvbmF0ZS1pbmplY3Rpb24tZGF0YSc7XG5pbXBvcnQge1NpbXBsZUZpbHRlcn0gZnJvbSAnLi4vLi4vZmlsdGVyL21vZGVscy9zaW1wbGUtZmlsdGVyJztcbmltcG9ydCB7VXNlckltcGVyc29uYXRpb25Db25zdGFudHN9IGZyb20gJy4uL21vZGVscy91c2VyLWltcGVyc29uYXRpb24tY29uc3RhbnRzJztcbmltcG9ydCBtb21lbnQgZnJvbSAnbW9tZW50JztcbmltcG9ydCB7VXNlclNlcnZpY2V9IGZyb20gJy4uLy4uL3VzZXIvc2VydmljZXMvdXNlci5zZXJ2aWNlJztcblxuQEluamVjdGFibGUoe1xuICBwcm92aWRlZEluOiAncm9vdCdcbn0pXG5leHBvcnQgY2xhc3MgSW1wZXJzb25hdGlvblVzZXJTZWxlY3RTZXJ2aWNlIHtcblxuICAgIGNvbnN0cnVjdG9yKHByb3RlY3RlZCBfbG9nOiBMb2dnZXJTZXJ2aWNlLFxuICAgICAgICAgICAgICAgIHByb3RlY3RlZCBfc2lkZU1lbnVTZXJ2aWNlOiBTaWRlTWVudVNlcnZpY2UsXG4gICAgICAgICAgICAgICAgcHJvdGVjdGVkIF9zbmFja0JhcjogU25hY2tCYXJTZXJ2aWNlLFxuICAgICAgICAgICAgICAgIHByb3RlY3RlZCBfaW1wZXJzb25hdGlvbjogSW1wZXJzb25hdGlvblNlcnZpY2UsXG4gICAgICAgICAgICAgICAgcHJvdGVjdGVkIF91c2VyOiBVc2VyU2VydmljZSxcbiAgICAgICAgICAgICAgICBAT3B0aW9uYWwoKSBASW5qZWN0KE5BRV9VU0VSX0lNUEVSU09OQVRFX0NPTVBPTkVOVCkgcHJvdGVjdGVkIF91c2VySW1wZXJzb25hdGVDb21wb25lbnQ6IGFueSxcbiAgICAgICAgICAgICAgICBAT3B0aW9uYWwoKSBASW5qZWN0KE5BRV9BRE1JTl9JTVBFUlNPTkFURV9DT01QT05FTlQpIHByb3RlY3RlZCBfYWRtaW5JbXBlcnNvbmF0ZUNvbXBvbmVudDogYW55LFxuICAgICkge31cblxuICAgIC8qKlxuICAgICAqIE9wZW5zIHNpZGUgbWVudSB3aXRoIHVzZXJzIHdobyBjYW4gYmUgaW1wZXJzb25hdGVkIGJ5IGxvZ2dlZCB1c2VyXG4gICAgICovXG4gICAgcHVibGljIHNlbGVjdEltcGVyc29uYXRlKCk6IHZvaWQge1xuICAgICAgICBpZiAodGhpcy5pc0FkbWluKCkpIHtcbiAgICAgICAgICAgIHRoaXMuX3NpZGVNZW51U2VydmljZS5vcGVuKHRoaXMuX2FkbWluSW1wZXJzb25hdGVDb21wb25lbnQsIFNpZGVNZW51U2l6ZS5MQVJHRSwgdGhpcy5pbmplY3RlZERhdGEoKSkub25DbG9zZS5zdWJzY3JpYmUoZXZlbnQgPT4ge1xuICAgICAgICAgICAgICAgIHRoaXMuX2xvZy5kZWJ1ZygnSW1wZXJzb25hYmxlIHVzZXIgc2VsZWN0IDonICsgZXZlbnQpO1xuICAgICAgICAgICAgICAgIGlmIChldmVudC5kYXRhID09PSB1bmRlZmluZWQpIHtcbiAgICAgICAgICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICB0aGlzLl9pbXBlcnNvbmF0aW9uLmltcGVyc29uYXRlVXNlcihldmVudC5kYXRhLl9pZCk7XG4gICAgICAgICAgICB9KTtcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgIHRoaXMuX3NpZGVNZW51U2VydmljZS5vcGVuKHRoaXMuX3VzZXJJbXBlcnNvbmF0ZUNvbXBvbmVudCwgU2lkZU1lbnVTaXplLlhMLCB0aGlzLmluamVjdGVkRGF0YSgpKS5vbkNsb3NlLnN1YnNjcmliZShldmVudCA9PiB7XG4gICAgICAgICAgICAgICAgdGhpcy5fbG9nLmRlYnVnKCdJbXBlcnNvbmFibGUgY29uZmlnIHNlbGVjdCA6JyArIGV2ZW50KTtcbiAgICAgICAgICAgICAgICBpZiAoZXZlbnQuZGF0YSA9PT0gdW5kZWZpbmVkKSB7XG4gICAgICAgICAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgdGhpcy5faW1wZXJzb25hdGlvbi5pbXBlcnNvbmF0ZUJ5Q29uZmlnKChldmVudC5kYXRhIGFzIFVzZXJJbXBlcnNvbmF0ZUNvbmZpZ01ldGFkYXRhKS5zdHJpbmdJZCk7XG4gICAgICAgICAgICB9KTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIHByb3RlY3RlZCBpbmplY3RlZERhdGEoKTogVXNlckltcGVyc29uYXRlSW5qZWN0aW9uRGF0YSB7XG4gICAgICAgIGNvbnN0IGN1cnJlbnRUaW1lID0gbW9tZW50KCk7XG4gICAgICAgIGxldCBmaWx0ZXJDYXNlc0ZpbHRlciA9IFNpbXBsZUZpbHRlci5mcm9tQ2FzZVF1ZXJ5KHtcbiAgICAgICAgICAgIHByb2Nlc3M6IHtcbiAgICAgICAgICAgICAgICBpZGVudGlmaWVyOiBVc2VySW1wZXJzb25hdGlvbkNvbnN0YW50cy5JTVBFUlNPTkFUSU9OX0NPTkZJR19ORVRfSURFTlRJRklFUlxuICAgICAgICAgICAgfSxcbiAgICAgICAgICAgIHF1ZXJ5OiBgXG4gICAgICAgICAgICAoZGF0YVNldC5pbXBlcnNvbmF0b3JzLmtleVZhbHVlOiR7dGhpcy5fdXNlci51c2VyLmlkfSkgQU5EXG4gICAgICAgICAgICAoZGF0YVNldC5pc19hY3RpdmUuYm9vbGVhblZhbHVlOnRydWUpIEFORFxuICAgICAgICAgICAgKCghKF9leGlzdHNfOmRhdGFTZXQudmFsaWRfZnJvbS50aW1lc3RhbXBWYWx1ZSkpIE9SIChkYXRhU2V0LnZhbGlkX2Zyb20udGltZXN0YW1wVmFsdWU6PGAgKyBjdXJyZW50VGltZS52YWx1ZU9mKCkgKyBgKSkgQU5EXG4gICAgICAgICAgICAoKCEoX2V4aXN0c186ZGF0YVNldC52YWxpZF90by50aW1lc3RhbXBWYWx1ZSkpIE9SIChkYXRhU2V0LnZhbGlkX3RvLnRpbWVzdGFtcFZhbHVlOj4ke2N1cnJlbnRUaW1lLnZhbHVlT2YoKX0pKVxuICAgICAgICAgICAgYFxuICAgICAgICB9KTtcbiAgICAgICAgcmV0dXJuIHtcbiAgICAgICAgICAgIGZpbHRlcjogZmlsdGVyQ2FzZXNGaWx0ZXJcbiAgICAgICAgfSBhcyBVc2VySW1wZXJzb25hdGVJbmplY3Rpb25EYXRhXG4gICAgfVxuXG4gICAgcHJvdGVjdGVkIGlzQWRtaW4oKTogYm9vbGVhbiB7XG4gICAgICAgIHJldHVybiB0aGlzLl91c2VyLmhhc0F1dGhvcml0eSgnUk9MRV9BRE1JTicpO1xuICAgIH1cblxufVxuIl19
|
|
@@ -0,0 +1,90 @@
|
|
|
1
|
+
import { Injectable } from '@angular/core';
|
|
2
|
+
import { AbstractResourceService } from '../../resources/public-api';
|
|
3
|
+
import { Subject } from 'rxjs';
|
|
4
|
+
import * as i0 from "@angular/core";
|
|
5
|
+
import * as i1 from "../../resources/public-api";
|
|
6
|
+
import * as i2 from "@angular/router";
|
|
7
|
+
import * as i3 from "../../configuration/configuration.service";
|
|
8
|
+
import * as i4 from "../../user/services/user.service";
|
|
9
|
+
import * as i5 from "../../snack-bar/services/snack-bar.service";
|
|
10
|
+
import * as i6 from "../../filter/filter.repository";
|
|
11
|
+
import * as i7 from "../../logger/services/logger.service";
|
|
12
|
+
import * as i8 from "@ngx-translate/core";
|
|
13
|
+
export class ImpersonationService extends AbstractResourceService {
|
|
14
|
+
constructor(provider, _router, _configService, _userService, _snackbar, _filter, _log, _translate) {
|
|
15
|
+
super('impersonation', provider, _configService);
|
|
16
|
+
this.provider = provider;
|
|
17
|
+
this._router = _router;
|
|
18
|
+
this._configService = _configService;
|
|
19
|
+
this._userService = _userService;
|
|
20
|
+
this._snackbar = _snackbar;
|
|
21
|
+
this._filter = _filter;
|
|
22
|
+
this._log = _log;
|
|
23
|
+
this._translate = _translate;
|
|
24
|
+
this._impersonating$ = new Subject();
|
|
25
|
+
this._sub = this._userService.user$.subscribe(user => this._resolveUserChange(user));
|
|
26
|
+
}
|
|
27
|
+
get impersonating$() {
|
|
28
|
+
return this._impersonating$.asObservable();
|
|
29
|
+
}
|
|
30
|
+
impersonateUser(userId) {
|
|
31
|
+
this.provider.post$('impersonate/user/' + userId, this.SERVER_URL, {}).subscribe((user) => {
|
|
32
|
+
this._resolveSuccess(user);
|
|
33
|
+
}, (response => {
|
|
34
|
+
this._resolveError(response);
|
|
35
|
+
}));
|
|
36
|
+
}
|
|
37
|
+
impersonateByConfig(configId) {
|
|
38
|
+
this.provider.post$('impersonate/config/' + configId, this.SERVER_URL, {}).subscribe((user) => {
|
|
39
|
+
this._resolveSuccess(user);
|
|
40
|
+
}, (response => {
|
|
41
|
+
this._resolveError(response);
|
|
42
|
+
}));
|
|
43
|
+
}
|
|
44
|
+
cease() {
|
|
45
|
+
this.provider.post$('impersonate/clear', this.SERVER_URL, {}).subscribe(user => {
|
|
46
|
+
this._snackbar.openSuccessSnackBar(this._translate.instant('impersonation.action.deactivated'));
|
|
47
|
+
return this._triggerReload();
|
|
48
|
+
}, (error => {
|
|
49
|
+
this._snackbar.openErrorSnackBar(this._translate.instant('impersonation.action.failed'));
|
|
50
|
+
}));
|
|
51
|
+
}
|
|
52
|
+
_resolveSuccess(user) {
|
|
53
|
+
this._snackbar.openSuccessSnackBar(this._translate.instant('impersonation.user.successfullyRepresented'));
|
|
54
|
+
this._triggerReload();
|
|
55
|
+
}
|
|
56
|
+
_resolveError(response) {
|
|
57
|
+
if (response.status === 400) {
|
|
58
|
+
response.error.alreadyImpersonated ?
|
|
59
|
+
this._snackbar.openErrorSnackBar(this._translate.instant('impersonation.user.currentlyAlreadyRepresented')) :
|
|
60
|
+
this._snackbar.openErrorSnackBar(this._translate.instant('impersonation.user.currentlyLogged'));
|
|
61
|
+
}
|
|
62
|
+
else {
|
|
63
|
+
this._snackbar.openErrorSnackBar(this._translate.instant('impersonation.action.failed'));
|
|
64
|
+
}
|
|
65
|
+
}
|
|
66
|
+
_triggerReload() {
|
|
67
|
+
this._userService.reload();
|
|
68
|
+
}
|
|
69
|
+
_resolveUserChange(user) {
|
|
70
|
+
if (this._lastUser && this._lastUser.isImpersonating() != user.isImpersonating()) {
|
|
71
|
+
this._filter.removeAllFilters();
|
|
72
|
+
this._impersonating$.next(user.isImpersonating());
|
|
73
|
+
}
|
|
74
|
+
this._lastUser = user;
|
|
75
|
+
}
|
|
76
|
+
ngOnDestroy() {
|
|
77
|
+
if (this._sub) {
|
|
78
|
+
this._sub.unsubscribe();
|
|
79
|
+
}
|
|
80
|
+
}
|
|
81
|
+
}
|
|
82
|
+
ImpersonationService.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.3.11", ngImport: i0, type: ImpersonationService, deps: [{ token: i1.ResourceProvider }, { token: i2.Router }, { token: i3.ConfigurationService }, { token: i4.UserService }, { token: i5.SnackBarService }, { token: i6.FilterRepository }, { token: i7.LoggerService }, { token: i8.TranslateService }], target: i0.ɵɵFactoryTarget.Injectable });
|
|
83
|
+
ImpersonationService.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "13.3.11", ngImport: i0, type: ImpersonationService, providedIn: 'root' });
|
|
84
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.11", ngImport: i0, type: ImpersonationService, decorators: [{
|
|
85
|
+
type: Injectable,
|
|
86
|
+
args: [{
|
|
87
|
+
providedIn: 'root'
|
|
88
|
+
}]
|
|
89
|
+
}], ctorParameters: function () { return [{ type: i1.ResourceProvider }, { type: i2.Router }, { type: i3.ConfigurationService }, { type: i4.UserService }, { type: i5.SnackBarService }, { type: i6.FilterRepository }, { type: i7.LoggerService }, { type: i8.TranslateService }]; } });
|
|
90
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW1wZXJzb25hdGlvbi5zZXJ2aWNlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvbmV0Z3JpZi1jb21wb25lbnRzLWNvcmUvc3JjL2xpYi9pbXBlcnNvbmF0aW9uL3NlcnZpY2VzL2ltcGVyc29uYXRpb24uc2VydmljZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUMsVUFBVSxFQUFZLE1BQU0sZUFBZSxDQUFDO0FBR3BELE9BQU8sRUFBQyx1QkFBdUIsRUFBaUMsTUFBTSw0QkFBNEIsQ0FBQztBQU1uRyxPQUFPLEVBQWEsT0FBTyxFQUFlLE1BQU0sTUFBTSxDQUFDOzs7Ozs7Ozs7O0FBTXZELE1BQU0sT0FBTyxvQkFBcUIsU0FBUSx1QkFBdUI7SUFPN0QsWUFBNkIsUUFBMEIsRUFDMUIsT0FBZSxFQUNmLGNBQW9DLEVBQ3BDLFlBQXlCLEVBQ3pCLFNBQTBCLEVBQzFCLE9BQXlCLEVBQ3pCLElBQW1CLEVBQ25CLFVBQTRCO1FBQ3JELEtBQUssQ0FBQyxlQUFlLEVBQUUsUUFBUSxFQUFFLGNBQWMsQ0FBQyxDQUFDO1FBUnhCLGFBQVEsR0FBUixRQUFRLENBQWtCO1FBQzFCLFlBQU8sR0FBUCxPQUFPLENBQVE7UUFDZixtQkFBYyxHQUFkLGNBQWMsQ0FBc0I7UUFDcEMsaUJBQVksR0FBWixZQUFZLENBQWE7UUFDekIsY0FBUyxHQUFULFNBQVMsQ0FBaUI7UUFDMUIsWUFBTyxHQUFQLE9BQU8sQ0FBa0I7UUFDekIsU0FBSSxHQUFKLElBQUksQ0FBZTtRQUNuQixlQUFVLEdBQVYsVUFBVSxDQUFrQjtRQVpqRCxvQkFBZSxHQUFHLElBQUksT0FBTyxFQUFXLENBQUM7UUFjN0MsSUFBSSxDQUFDLElBQUksR0FBRyxJQUFJLENBQUMsWUFBWSxDQUFDLEtBQUssQ0FBQyxTQUFTLENBQUMsSUFBSSxDQUFDLEVBQUUsQ0FBQyxJQUFJLENBQUMsa0JBQWtCLENBQUMsSUFBSSxDQUFDLENB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SSxJQUFJLENBQUMsZUFBZSxFQUFFLEVBQUU7WUFDOUUsSUFBSSxDQUFDLE9BQU8sQ0FBQyxnQkFBZ0IsRUFBRSxDQUFDO1lBQ2hDLElBQUksQ0FBQyxlQUFlLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxlQUFlLEVBQUUsQ0FBQyxDQUFDO1NBQ3JEO1FBQ0QsSUFBSSxDQUFDLFNBQVMsR0FBRyxJQUFJLENBQUM7SUFDMUIsQ0FBQztJQUVELFdBQVc7UUFDUCxJQUFJLElBQUksQ0FBQyxJQUFJLEVBQUU7WUFDWCxJQUFJLENBQUMsSUFBSSxDQUFDLFdBQVcsRUFBRSxDQUFDO1NBQzNCO0lBQ0wsQ0FBQzs7a0hBL0VRLG9CQUFvQjtzSEFBcEIsb0JBQW9CLGNBRmpCLE1BQU07NEZBRVQsb0JBQW9CO2tCQUhoQyxVQUFVO21CQUFDO29CQUNSLFVBQVUsRUFBRSxNQUFNO2lCQUNyQiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7SW5qZWN0YWJsZSwgT25EZXN0cm95fSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7Um91dGVyfSBmcm9tICdAYW5ndWxhci9yb3V0ZXInO1xuaW1wb3J0IHtUcmFuc2xhdGVTZXJ2aWNlfSBmcm9tICdAbmd4LXRyYW5zbGF0ZS9jb3JlJztcbmltcG9ydCB7QWJzdHJhY3RSZXNvdXJjZVNlcnZpY2UsIFJlc291cmNlUHJvdmlkZXIsIFVzZXJSZXNvdXJjZX0gZnJvbSAnLi4vLi4vcmVzb3VyY2VzL3B1YmxpYy1hcGknO1xuaW1wb3J0IHtDb25maWd1cmF0aW9uU2VydmljZX0gZnJvbSAnLi4vLi4vY29uZmlndXJhdGlvbi9jb25maWd1cmF0aW9uLnNlcnZpY2UnO1xuaW1wb3J0IHtVc2VyU2VydmljZX0gZnJvbSAnLi4vLi4vdXNlci9zZXJ2aWNlcy91c2VyLnNlcnZpY2UnO1xuaW1wb3J0IHtTbmFja0JhclNlcnZpY2V9IGZyb20gJy4uLy4uL3NuYWNrLWJhci9zZXJ2aWNlcy9zbmFjay1iYXIuc2VydmljZSc7XG5pbXBvcnQge0ZpbHRlclJlcG9zaXRvcnl9IGZyb20gJy4uLy4uL2ZpbHRlci9maWx0ZXIucmVwb3NpdG9yeSc7XG5pbXBvcnQge0xvZ2dlclNlcnZpY2V9IGZyb20gJy4uLy4uL2xvZ2dlci9zZXJ2aWNlcy9sb2dnZXIuc2VydmljZSc7XG5pbXBvcnQge09ic2VydmFibGUsIFN1YmplY3QsIFN1YnNjcmlwdGlvbn0gZnJvbSAncnhqcyc7XG5pbXBvcnQge1VzZXJ9IGZyb20gJy4uLy4uL3VzZXIvbW9kZWxzL3VzZXInO1xuXG5ASW5qZWN0YWJsZSh7XG4gICAgcHJvdmlkZWRJbjogJ3Jvb3QnXG59KVxuZXhwb3J0IGNsYXNzIEltcGVyc29uYXRpb25TZXJ2aWNlIGV4dGVuZHMgQWJzdHJhY3RSZXNvdXJjZVNlcnZpY2UgaW1wbGVtZW50cyBPbkRlc3Ryb3kge1xuXG4gICAgcHJpdmF0ZSBfaW1wZXJzb25hdGluZyQgPSBuZXcgU3ViamVjdDxib29sZWFuPigpO1xuXG4gICAgcHJpdmF0ZSBfbGFzdFVzZXI6IFVzZXI7XG4gICAgcHJpdmF0ZSBfc3ViOiBTdWJzY3JpcHRpb247XG5cbiAgICBwdWJsaWMgY29uc3RydWN0b3IocHJvdGVjdGVkIHByb3ZpZGVyOiBSZXNvdXJjZVByb3ZpZGVyLFxuICAgICAgICAgICAgICAgICAgICAgICBwcm90ZWN0ZWQgX3JvdXRlcjogUm91dGVyLFxuICAgICAgICAgICAgICAgICAgICAgICBwcm90ZWN0ZWQgX2NvbmZpZ1NlcnZpY2U6IENvbmZpZ3VyYXRpb25TZXJ2aWNlLFxuICAgICAgICAgICAgICAgICAgICAgICBwcm90ZWN0ZWQgX3VzZXJTZXJ2aWNlOiBVc2VyU2VydmljZSxcbiAgICAgICAgICAgICAgICAgICAgICAgcHJvdGVjdGVkIF9zbmFja2JhcjogU25hY2tCYXJTZXJ2aWNlLFxuICAgICAgICAgICAgICAgICAgICAgICBwcm90ZWN0ZWQgX2ZpbHRlcjogRmlsdGVyUmVwb3NpdG9yeSxcbiAgICAgICAgICAgICAgICAgICAgICAgcHJvdGVjdGVkIF9sb2c6IExvZ2dlclNlcnZpY2UsXG4gICAgICAgICAgICAgICAgICAgICAgIHByb3RlY3RlZCBfdHJhbnNsYXRlOiBUcmFuc2xhdGVTZXJ2aWNlKSB7XG4gICAgICAgIHN1cGVyKCdpbXBlcnNvbmF0aW9uJywgcHJvdmlkZXIsIF9jb25maWdTZXJ2aWNlKTtcbiAgICAgICAgdGhpcy5fc3ViID0gdGhpcy5fdXNlclNlcnZpY2UudXNlciQuc3Vic2NyaWJlKHVzZXIgPT4gdGhpcy5fcmVzb2x2ZVVzZXJDaGFuZ2UodXNlcikpO1xuICAgIH1cblxuICAgIHB1YmxpYyBnZXQgaW1wZXJzb25hdGluZyQoKTogT2JzZXJ2YWJsZTxib29sZWFuPiB7XG4gICAgICAgIHJldHVybiB0aGlzLl9pbXBlcnNvbmF0aW5nJC5hc09ic2VydmFibGUoKTtcbiAgICB9XG5cbiAgICBwdWJsaWMgaW1wZXJzb25hdGVVc2VyKHVzZXJJZDogc3RyaW5nKTogdm9pZCB7XG4gICAgICAgIHRoaXMucHJvdmlkZXIucG9zdCQoJ2ltcGVyc29uYXRlL3VzZXIvJyArIHVzZXJJZCwgdGhpcy5TRVJWRVJfVVJMLCB7fSkuc3Vic2NyaWJlKCh1c2VyOiBVc2VyUmVzb3VyY2UpID0+IHtcbiAgICAgICAgICAgIHRoaXMuX3Jlc29sdmVTdWNjZXNzKHVzZXIpO1xuICAgICAgICB9LCAocmVzcG9uc2UgPT4ge1xuICAgICAgICAgICAgdGhpcy5fcmVzb2x2ZUVycm9yKHJlc3BvbnNlKTtcbiAgICAgICAgfSkpO1xuICAgIH1cblxuICAgIHB1YmxpYyBpbXBlcnNvbmF0ZUJ5Q29uZmlnKGNvbmZpZ0lkOiBzdHJpbmcpOiB2b2lkIHtcbiAgICAgICAgdGhpcy5wcm92aWRlci5wb3N0JCgnaW1wZXJzb25hdGUvY29uZmlnLycgKyBjb25maWdJZCwgdGhpcy5TRVJWRVJfVVJMLCB7fSkuc3Vic2NyaWJlKCh1c2VyOiBVc2VyUmVzb3VyY2UpID0+IHtcbiAgICAgICAgICAgIHRoaXMuX3Jlc29sdmVTdWNjZXNzKHVzZXIpO1xuICAgICAgICB9LCAocmVzcG9uc2UgPT4ge1xuICAgICAgICAgICAgdGhpcy5fcmVzb2x2ZUVycm9yKHJlc3BvbnNlKTtcbiAgICAgICAgfSkpO1xuICAgIH1cblxuICAgIHB1YmxpYyBjZWFzZSgpOiB2b2lkIHtcbiAgICAgICAgdGhpcy5wcm92aWRlci5wb3N0JCgnaW1wZXJzb25hdGUvY2xlYXInLCB0aGlzLlNFUlZFUl9VUkwsIHt9KS5zdWJzY3JpYmUodXNlciA9PiB7XG4gICAgICAgICAgICB0aGlzLl9zbmFja2Jhci5vcGVuU3VjY2Vzc1NuYWNrQmFyKHRoaXMuX3RyYW5zbGF0ZS5pbnN0YW50KCdpbXBlcnNvbmF0aW9uLmFjdGlvbi5kZWFjdGl2YXRlZCcpKTtcbiAgICAgICAgICAgIHJldHVybiB0aGlzLl90cmlnZ2VyUmVsb2FkKCk7XG4gICAgICAgIH0sIChlcnJvciA9PiB7XG4gICAgICAgICAgICB0aGlzLl9zbmFja2Jhci5vcGVuRXJyb3JTbmFja0Jhcih0aGlzLl90cmFuc2xhdGUuaW5zdGFudCgnaW1wZXJzb25hdGlvbi5hY3Rpb24uZmFpbGVkJykpO1xuICAgICAgICB9KSk7XG4gICAgfVxuXG4gICAgcHJvdGVjdGVkIF9yZXNvbHZlU3VjY2Vzcyh1c2VyOiBVc2VyUmVzb3VyY2UpIHtcbiAgICAgICAgdGhpcy5fc25hY2tiYXIub3BlblN1Y2Nlc3NTbmFja0Jhcih0aGlzLl90cmFuc2xhdGUuaW5zdGFudCgnaW1wZXJzb25hdGlvbi51c2VyLnN1Y2Nlc3NmdWxseVJlcHJlc2VudGVkJykpO1xuICAgICAgICB0aGlzLl90cmlnZ2VyUmVsb2FkKCk7XG4gICAgfVxuXG4gICAgcHJvdGVjdGVkIF9yZXNvbHZlRXJyb3IocmVzcG9uc2U6IGFueSkge1xuICAgICAgICBpZiAocmVzcG9uc2Uuc3RhdHVzID09PSA0MDApIHtcbiAgICAgICAgICAgIHJlc3BvbnNlLmVycm9yLmFscmVhZHlJbXBlcnNvbmF0ZWQgP1xuICAgICAgICAgICAgICAgIHRoaXMuX3NuYWNrYmFyLm9wZW5FcnJvclNuYWNrQmFyKHRoaXMuX3RyYW5zbGF0ZS5pbnN0YW50KCdpbXBlcnNvbmF0aW9uLnVzZXIuY3VycmVudGx5QWxyZWFkeVJlcHJlc2VudGVkJykpIDpcbiAgICAgICAgICAgICAgICB0aGlzLl9zbmFja2Jhci5vcGVuRXJyb3JTbmFja0Jhcih0aGlzLl90cmFuc2xhdGUuaW5zdGFudCgnaW1wZXJzb25hdGlvbi51c2VyLmN1cnJlbnRseUxvZ2dlZCcpKTtcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgIHRoaXMuX3NuYWNrYmFyLm9wZW5FcnJvclNuYWNrQmFyKHRoaXMuX3RyYW5zbGF0ZS5pbnN0YW50KCdpbXBlcnNvbmF0aW9uLmFjdGlvbi5mYWlsZWQnKSk7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICBwcm90ZWN0ZWQgX3RyaWdnZXJSZWxvYWQoKTogdm9pZCB7XG4gICAgICAgIHRoaXMuX3VzZXJTZXJ2aWNlLnJlbG9hZCgpO1xuICAgIH1cblxuICAgIHByb3RlY3RlZCBfcmVzb2x2ZVVzZXJDaGFuZ2UodXNlcjogVXNlcikge1xuICAgICAgICBpZiAodGhpcy5fbGFzdFVzZXIgJiYgdGhpcy5fbGFzdFVzZXIuaXNJbXBlcnNvbmF0aW5nKCkgIT0gdXNlci5pc0ltcGVyc29uYXRpbmcoKSkge1xuICAgICAgICAgICAgdGhpcy5fZmlsdGVyLnJlbW92ZUFsbEZpbHRlcnMoKTtcbiAgICAgICAgICAgIHRoaXMuX2ltcGVyc29uYXRpbmckLm5leHQodXNlci5pc0ltcGVyc29uYXRpbmcoKSk7XG4gICAgICAgIH1cbiAgICAgICAgdGhpcy5fbGFzdFVzZXIgPSB1c2VyO1xuICAgIH1cblxuICAgIG5nT25EZXN0cm95KCk6IHZvaWQge1xuICAgICAgICBpZiAodGhpcy5fc3ViKSB7XG4gICAgICAgICAgICB0aGlzLl9zdWIudW5zdWJzY3JpYmUoKTtcbiAgICAgICAgfVxuICAgIH1cbn1cbiJdfQ==
|