@tuki-io/tuki-widgets 0.0.18 → 0.0.20

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (27) hide show
  1. package/esm2020/user-manage/src/classes/simplified-user.mjs +3 -1
  2. package/esm2020/user-manage/src/lazy-loading-select/lazy-loading-select.component.mjs +2 -2
  3. package/esm2020/user-manage/src/user-manage-widget.component.mjs +6 -3
  4. package/esm2020/users-list/src/app.constants.mjs +4 -2
  5. package/esm2020/users-list/src/classes/user-list.mjs +1 -1
  6. package/esm2020/users-list/src/material.module.mjs +14 -7
  7. package/esm2020/users-list/src/services/api-webex.service.mjs +17 -0
  8. package/esm2020/users-list/src/services/user.service.mjs +28 -4
  9. package/esm2020/users-list/src/users-list.component.mjs +47 -14
  10. package/esm2020/users-list/src/users-list.module.mjs +6 -3
  11. package/fesm2015/tuki-io-tuki-widgets-user-manage.mjs +9 -4
  12. package/fesm2015/tuki-io-tuki-widgets-user-manage.mjs.map +1 -1
  13. package/fesm2015/tuki-io-tuki-widgets-users-list.mjs +100 -22
  14. package/fesm2015/tuki-io-tuki-widgets-users-list.mjs.map +1 -1
  15. package/fesm2020/tuki-io-tuki-widgets-user-manage.mjs +9 -4
  16. package/fesm2020/tuki-io-tuki-widgets-user-manage.mjs.map +1 -1
  17. package/fesm2020/tuki-io-tuki-widgets-users-list.mjs +100 -22
  18. package/fesm2020/tuki-io-tuki-widgets-users-list.mjs.map +1 -1
  19. package/package.json +1 -1
  20. package/user-manage/src/classes/simplified-user.d.ts +1 -0
  21. package/user-manage/src/user-manage-widget.component.d.ts +1 -0
  22. package/users-list/src/app.constants.d.ts +2 -0
  23. package/users-list/src/classes/user-list.d.ts +1 -0
  24. package/users-list/src/material.module.d.ts +2 -1
  25. package/users-list/src/services/api-webex.service.d.ts +8 -0
  26. package/users-list/src/services/user.service.d.ts +7 -1
  27. package/users-list/src/users-list.component.d.ts +9 -2
@@ -15,6 +15,7 @@ export class SimplifiedUser {
15
15
  this.digestCredentials = user.digestCredentials;
16
16
  this.userProfile = user.userProfile;
17
17
  this.enableMobileVoiceAccess = user.enableMobileVoiceAccess;
18
+ this.ldapIntegrated = user.ldapIntegrated;
18
19
  this.userLocale = user.userLocale;
19
20
  this.confirmDigestCredentials = user.confirmDigestCredentials;
20
21
  this.middleName = user.middleName;
@@ -51,6 +52,7 @@ export class SimplifiedUser {
51
52
  directoryUri: [this.directoryUri || ''],
52
53
  userProfile: [this.userProfile],
53
54
  enableMobileVoiceAccess: [this.enableMobileVoiceAccess],
55
+ ldapIntegrated: [this.ldapIntegrated],
54
56
  userLocale: [this.userLocale || ''],
55
57
  digestCredentials: [''],
56
58
  confirmDigestCredentials: ['']
@@ -79,4 +81,4 @@ export class SimplifiedUser {
79
81
  return JSON.stringify(this.getSavableData()) === JSON.stringify(userToCompare.getSavableData());
80
82
  }
81
83
  }
82
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2ltcGxpZmllZC11c2VyLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvdHVraS93aWRnZXRzL3VzZXItbWFuYWdlL3NyYy9jbGFzc2VzL3NpbXBsaWZpZWQtdXNlci50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsV0FBVyxFQUFhLFVBQVUsRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBRXBFLE9BQU8sRUFBRSxjQUFjLEVBQUUsTUFBTSxxQkFBcUIsQ0FBQztBQUNyRCxPQUFPLEVBQUUsYUFBYSxFQUFFLE1BQU0sa0JBQWtCLENBQUM7QUFFakQsTUFBTSxPQUFPLGNBQWM7SUFnQ3pCLFlBQVksSUFBVTtRQUNwQixJQUFJLElBQUksRUFBRTtZQUNSLElBQUksQ0FBQyxNQUFNLEdBQUcsSUFBSSxDQUFDLE1BQU0sQ0FBQztZQUMxQixJQUFJLENBQUMsS0FBSyxHQUFHLElBQUksQ0FBQyxLQUFLLENBQUM7WUFDeEIsSUFBSSxDQUFDLFNBQVMsR0FBRyxJQUFJLENBQUMsU0FBUyxDQUFDO1lBQ2hDLElBQUksQ0FBQyxRQUFRLEdBQUcsSUFBSSxDQUFDLFFBQVEsQ0FBQztZQUM5QixJQUFJLENBQUMsS0FBSyxHQUFHLElBQUksQ0FBQyxLQUFLLENBQUM7WUFFeEIsSUFBSSxDQUFDLFVBQVUsR0FBRyxJQUFJLENBQUMsVUFBVSxDQUFDO1lBQ2xDLElBQUksQ0FBQyxPQUFPLEdBQUcsSUFBSSxDQUFDLE9BQU8sQ0FBQztZQUM1QixJQUFJLENBQUMsWUFBWSxHQUFHLElBQUksQ0FBQyxZQUFZLENBQUM7WUFDdEMsSUFBSSxDQUFDLGlCQUFpQixHQUFHLElBQUksQ0FBQyxpQkFBaUIsQ0FBQztZQUNoRCxJQUFJLENBQUMsV0FBVyxHQUFHLElBQUksQ0FBQyxXQUFXLENBQUM7WUFDcEMsSUFBSSxDQUFDLHVCQUF1QixHQUFHLElBQUksQ0FBQyx1QkFBdUIsQ0FBQztZQUM1RCxJQUFJLENBQUMsVUFBVSxHQUFHLElBQUksQ0FBQyxVQUFVLENBQUM7WUFDbEMsSUFBSSxDQUFDLHdCQUF3QixHQUFHLElBQUksQ0FBQyx3QkFBd0IsQ0FBQztZQUU5RCxJQUFJLENBQUMsVUFBVSxHQUFHLElBQUksQ0FBQyxVQUFVLENBQUM7WUFDbEMsSUFBSSxDQUFDLGVBQWUsR0FBRyxJQUFJLENBQUMsZUFBZSxDQUFDO1lBQzVDLElBQUksQ0FBQyxZQUFZLEdBQUcsSUFBSSxDQUFDLFlBQVksQ0FBQztZQUN0QyxJQUFJLENBQUMsWUFBWSxHQUFHLElBQUksQ0FBQyxZQUFZLENBQUM7WUFDdEMsSUFBSSxDQUFDLEtBQUssR0FBRyxJQUFJLENBQUMsS0FBSyxDQUFDO1lBQ3hCLElBQUksQ0FBQyxVQUFVLEdBQUcsSUFBSSxDQUFDLFVBQVUsQ0FBQztZQUNsQyxJQUFJLENBQUMsV0FBVyxHQUFHLElBQUksQ0FBQyxXQUFXLENBQUM7WUFDcEMsSUFBSSxDQUFDLFdBQVcsR0FBRyxJQUFJLENBQUMsV0FBVyxDQUFDO1NBQ3JDO1FBQ0QsSUFBSSxDQUFDLFFBQVEsRUFBRSxDQUFBO0lBQ2pCLENBQUM7SUFFRCxRQUFRO1FBQ04sTUFBTSxXQUFXLEdBQUcsSUFBSSxXQUFXLEVBQUUsQ0FBQztRQUN0QyxNQUFNLFlBQVksR0FBRztZQUNuQixNQUFNLEVBQUUsQ0FBQyxFQUFDLEtBQUssRUFBRSxJQUFJLENBQUMsTUFBTSxJQUFJLEVBQUUsRUFBRSxRQUFRLEVBQUUsS0FBSyxFQUFDLEVBQUUsQ0FBQyxVQUFVLENBQUMsUUFBUSxFQUFFLFVBQVUsQ0FBQyxTQUFTLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQztZQUN2RyxLQUFLLEVBQUUsQ0FBQyxFQUFDLEtBQUssRUFBRSxJQUFJLENBQUMsS0FBSyxJQUFJLEVBQUUsRUFBRSxRQUFRLEVBQUUsS0FBSyxFQUFDLEVBQUU7b0JBQ2xELFVBQVUsQ0FBQyxPQUFPLENBQUMsYUFBYSxDQUFDLEtBQUssQ0FBQztvQkFDdkMsVUFBVSxDQUFDLFFBQVE7aUJBQ3BCLENBQUM7WUFDRixTQUFTLEVBQUUsQ0FBQyxFQUFDLEtBQUssRUFBRSxJQUFJLENBQUMsU0FBUyxJQUFJLEVBQUUsRUFBRSxRQUFRLEVBQUUsS0FBSyxFQUFDLENBQUM7WUFDM0QsUUFBUSxFQUFFLENBQUMsRUFBQyxLQUFLLEVBQUUsSUFBSSxDQUFDLFFBQVEsSUFBSSxFQUFFLEVBQUUsUUFBUSxFQUFFLEtBQUssRUFBQyxFQUFFLFVBQVUsQ0FBQyxRQUFRLENBQUM7WUFDOUUsVUFBVSxFQUFFLENBQUMsRUFBQyxLQUFLLEVBQUUsSUFBSSxDQUFDLFVBQVUsSUFBSSxFQUFFLEVBQUUsUUFBUSxFQUFFLEtBQUssRUFBQyxDQUFDO1lBQzdELFVBQVUsRUFBRSxDQUFDLEVBQUMsS0FBSyxFQUFFLElBQUksQ0FBQyxVQUFVLElBQUksRUFBRSxFQUFFLFFBQVEsRUFBRSxLQUFLLEVBQUMsQ0FBQztZQUM3RCxLQUFLLEVBQUUsQ0FBQyxFQUFDLEtBQUssRUFBRSxJQUFJLENBQUMsS0FBSyxJQUFJLEVBQUUsRUFBRSxRQUFRLEVBQUUsS0FBSyxFQUFDLENBQUM7WUFDbkQsZUFBZSxFQUFFLENBQUMsRUFBQyxLQUFLLEVBQUUsSUFBSSxDQUFDLGVBQWUsSUFBSSxFQUFFLEVBQUUsUUFBUSxFQUFFLEtBQUssRUFBQyxDQUFDO1lBQ3ZFLFVBQVUsRUFBRSxDQUFDLEVBQUMsS0FBSyxFQUFFLElBQUksQ0FBQyxVQUFVLElBQUksRUFBRSxFQUFFLFFBQVEsRUFBRSxLQUFLLEVBQUMsQ0FBQztZQUM3RCxZQUFZLEVBQUUsQ0FBQyxFQUFDLEtBQUssRUFBRSxJQUFJLENBQUMsWUFBWSxJQUFJLEVBQUUsRUFBRSxRQUFRLEVBQUUsS0FBSyxFQUFDLENBQUM7WUFDakUsV0FBVyxFQUFFLENBQUMsRUFBQyxLQUFLLEVBQUUsSUFBSSxDQUFDLFdBQVcsSUFBSSxFQUFFLEVBQUUsUUFBUSxFQUFFLEtBQUssRUFBQyxDQUFDO1lBQy9ELFdBQVcsRUFBRSxDQUFDLEVBQUMsS0FBSyxFQUFFLElBQUksQ0FBQyxXQUFXLElBQUksRUFBRSxFQUFFLFFBQVEsRUFBRSxLQUFLLEVBQUMsQ0FBQztZQUMvRCxPQUFPLEVBQUUsQ0FBQyxFQUFDLEtBQUssRUFBRSxJQUFJLENBQUMsT0FBTyxJQUFJLEVBQUUsRUFBRSxRQUFRLEVBQUUsS0FBSyxFQUFDLENBQUM7WUFDdkQsWUFBWSxFQUFFLENBQUMsSUFBSSxDQUFDLFlBQVksSUFBSSxFQUFFLENBQUM7WUFDdkMsWUFBWSxFQUFFLENBQUMsSUFBSSxDQUFDLFlBQVksSUFBSSxFQUFFLENBQUM7WUFDdkMsV0FBVyxFQUFFLENBQUMsSUFBSSxDQUFDLFdBQVcsQ0FBQztZQUMvQix1QkFBdUIsRUFBRSxDQUFDLElBQUksQ0FBQyx1QkFBdUIsQ0FBQztZQUN2RCxVQUFVLEVBQUUsQ0FBQyxJQUFJLENBQUMsVUFBVSxJQUFJLEVBQUUsQ0FBQztZQUNuQyxpQkFBaUIsRUFBRSxDQUFDLEVBQUUsQ0FBQztZQUN2Qix3QkFBd0IsRUFBRSxDQUFDLEVBQUUsQ0FBQztTQUMvQixDQUFDO1FBQ0YsSUFBSSxDQUFDLElBQUksR0FBRyxXQUFXLENBQUMsS0FBSyxDQUFDLFlBQVksQ0FBQyxDQUFDO0lBQzlDLENBQUM7SUFFRCxjQUFjO1FBQ1osSUFBSSxDQUFDLFFBQVEsR0FBRyxDQUFDLElBQUksQ0FBQyxRQUFRLENBQUM7UUFDL0IsQ0FBQyxRQUFRLEVBQUUsT0FBTyxFQUFFLFdBQVcsRUFBRSxVQUFVLENBQUMsQ0FBQyxPQUFPLENBQUMsS0FBSyxDQUFDLEVBQUU7WUFDM0QsSUFBSSxJQUFJLENBQUMsUUFBUSxFQUFFO2dCQUNqQixJQUFJLENBQUMsSUFBSSxDQUFDLEdBQUcsQ0FBQyxLQUFLLENBQUMsRUFBRSxNQUFNLEVBQUUsQ0FBQzthQUNoQztpQkFBTTtnQkFDTCxJQUFJLENBQUMsSUFBSSxDQUFDLEdBQUcsQ0FBQyxLQUFLLENBQUMsRUFBRSxPQUFPLEVBQUUsQ0FBQzthQUNqQztRQUNILENBQUMsQ0FBQyxDQUFBO0lBQ0osQ0FBQztJQUVELGNBQWM7UUFDWixNQUFNLGNBQWMsR0FBYSxDQUFDLE1BQU0sRUFBRSxVQUFVLEVBQUUsVUFBVSxFQUFFLE9BQU8sRUFBRSxrQkFBa0IsRUFBRSwwQkFBMEIsQ0FBQyxDQUFDO1FBQzNILE9BQU8sY0FBYyxDQUFDLElBQUksRUFBRSxjQUFjLENBQUMsQ0FBQztJQUM5QyxDQUFDO0lBRUQsS0FBSyxDQUFDLGFBQThCO1FBQ2xDLElBQUksQ0FBQyxhQUFhLEVBQUU7WUFDbEIsT0FBTyxLQUFLLENBQUM7U0FDZDtRQUNELE9BQU8sSUFBSSxDQUFDLFNBQVMsQ0FBQyxJQUFJLENBQUMsY0FBYyxFQUFFLENBQUMsS0FBSyxJQUFJLENBQUMsU0FBUyxDQUFDLGFBQWEsQ0FBQyxjQUFjLEVBQUUsQ0FBQyxDQUFDO0lBQ2xHLENBQUM7Q0FFRiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEZvcm1CdWlsZGVyLCBGb3JtR3JvdXAsIFZhbGlkYXRvcnMgfSBmcm9tICdAYW5ndWxhci9mb3Jtcyc7XG5pbXBvcnQgeyBCZWhhdmlvclN1YmplY3QgfSBmcm9tICdyeGpzJztcbmltcG9ydCB7IGdldFNhdmFibGVEYXRhIH0gZnJvbSAnLi4vY29tbW9uLWZ1bmN0aW9ucyc7XG5pbXBvcnQgeyBSRUdFWF9QQVRURVJOIH0gZnJvbSAnLi4vYXBwLmNvbnN0YW50cyc7XG5cbmV4cG9ydCBjbGFzcyBTaW1wbGlmaWVkVXNlciB7XG4gIHVzZXJpZCE6IHN0cmluZztcbiAgZW1haWwhOiBzdHJpbmc7XG4gIGZpcnN0TmFtZSE6IHN0cmluZztcbiAgbGFzdE5hbWUhOiBzdHJpbmc7XG4gIC8vIGdlbmVyYWwgdXNlciBpbmZvXG4gIGRlcGFydG1lbnQhOiBzdHJpbmc7XG4gIG1hbmFnZXIhOiBzdHJpbmc7XG4gIGFzc29jaWF0ZWRQYyE6IHN0cmluZztcbiAgZGlnZXN0Q3JlZGVudGlhbHMhOiBzdHJpbmc7XG4gIHVzZXJQcm9maWxlITogc3RyaW5nO1xuICBlbmFibGVNb2JpbGVWb2ljZUFjY2VzcyE6IGJvb2xlYW47XG4gIHVzZXJMb2NhbGUhOiBzdHJpbmc7XG4gIGNvbmZpcm1EaWdlc3RDcmVkZW50aWFscz86IGFueTtcblxuICAvLyBjb250YWN0IGluZm9ybWF0aW9uXG4gIG1pZGRsZU5hbWUhOiBzdHJpbmc7XG4gIHRlbGVwaG9uZU51bWJlciE6IHN0cmluZztcbiAgbW9iaWxlTnVtYmVyITogc3RyaW5nO1xuICBkaXJlY3RvcnlVcmkhOiBzdHJpbmc7XG4gIHRpdGxlITogc3RyaW5nO1xuICBob21lTnVtYmVyITogc3RyaW5nO1xuICBwYWdlck51bWJlciE6IHN0cmluZztcbiAgZGlzcGxheU5hbWUhOiBzdHJpbmc7XG5cbiAgdG9rZW4hOiBzdHJpbmc7XG4gIHZpZXdNb2RlITogc3RyaW5nO1xuICBoYXNNb2RpZmllZENhY2hlITogYm9vbGVhbjtcbiAgbmV3VXNlcklkPzogc3RyaW5nO1xuICBlZGl0TW9kZSE6IGJvb2xlYW47XG4gIGZvcm0hOiBGb3JtR3JvdXA7XG5cbiAgY29uc3RydWN0b3IodXNlcj86IGFueSkge1xuICAgIGlmICh1c2VyKSB7XG4gICAgICB0aGlzLnVzZXJpZCA9IHVzZXIudXNlcmlkO1xuICAgICAgdGhpcy5lbWFpbCA9IHVzZXIuZW1haWw7XG4gICAgICB0aGlzLmZpcnN0TmFtZSA9IHVzZXIuZmlyc3ROYW1lO1xuICAgICAgdGhpcy5sYXN0TmFtZSA9IHVzZXIubGFzdE5hbWU7XG4gICAgICB0aGlzLnRva2VuID0gdXNlci50b2tlbjtcblxuICAgICAgdGhpcy5kZXBhcnRtZW50ID0gdXNlci5kZXBhcnRtZW50O1xuICAgICAgdGhpcy5tYW5hZ2VyID0gdXNlci5tYW5hZ2VyO1xuICAgICAgdGhpcy5hc3NvY2lhdGVkUGMgPSB1c2VyLmFzc29jaWF0ZWRQYztcbiAgICAgIHRoaXMuZGlnZXN0Q3JlZGVudGlhbHMgPSB1c2VyLmRpZ2VzdENyZWRlbnRpYWxzO1xuICAgICAgdGhpcy51c2VyUHJvZmlsZSA9IHVzZXIudXNlclByb2ZpbGU7XG4gICAgICB0aGlzLmVuYWJsZU1vYmlsZVZvaWNlQWNjZXNzID0gdXNlci5lbmFibGVNb2JpbGVWb2ljZUFjY2VzcztcbiAgICAgIHRoaXMudXNlckxvY2FsZSA9IHVzZXIudXNlckxvY2FsZTtcbiAgICAgIHRoaXMuY29uZmlybURpZ2VzdENyZWRlbnRpYWxzID0gdXNlci5jb25maXJtRGlnZXN0Q3JlZGVudGlhbHM7XG5cbiAgICAgIHRoaXMubWlkZGxlTmFtZSA9IHVzZXIubWlkZGxlTmFtZTtcbiAgICAgIHRoaXMudGVsZXBob25lTnVtYmVyID0gdXNlci50ZWxlcGhvbmVOdW1iZXI7XG4gICAgICB0aGlzLm1vYmlsZU51bWJlciA9IHVzZXIubW9iaWxlTnVtYmVyO1xuICAgICAgdGhpcy5kaXJlY3RvcnlVcmkgPSB1c2VyLmRpcmVjdG9yeVVyaTtcbiAgICAgIHRoaXMudGl0bGUgPSB1c2VyLnRpdGxlO1xuICAgICAgdGhpcy5ob21lTnVtYmVyID0gdXNlci5ob21lTnVtYmVyO1xuICAgICAgdGhpcy5wYWdlck51bWJlciA9IHVzZXIucGFnZXJOdW1iZXI7XG4gICAgICB0aGlzLmRpc3BsYXlOYW1lID0gdXNlci5kaXNwbGF5TmFtZTtcbiAgICB9XG4gICAgdGhpcy5pbml0Rm9ybSgpXG4gIH1cblxuICBpbml0Rm9ybSgpIHtcbiAgICBjb25zdCBmb3JtQnVpbGRlciA9IG5ldyBGb3JtQnVpbGRlcigpO1xuICAgIGNvbnN0IGZvcm1TZXR0aW5ncyA9IHtcbiAgICAgIHVzZXJpZDogW3t2YWx1ZTogdGhpcy51c2VyaWQgfHwgJycsIGRpc2FibGVkOiBmYWxzZX0sIFtWYWxpZGF0b3JzLnJlcXVpcmVkLCBWYWxpZGF0b3JzLm1heExlbmd0aCgxMjgpXV0sXG4gICAgICBlbWFpbDogW3t2YWx1ZTogdGhpcy5lbWFpbCB8fCAnJywgZGlzYWJsZWQ6IGZhbHNlfSwgW1xuICAgICAgICBWYWxpZGF0b3JzLnBhdHRlcm4oUkVHRVhfUEFUVEVSTi5FTUFJTCksXG4gICAgICAgIFZhbGlkYXRvcnMucmVxdWlyZWRcbiAgICAgIF1dLFxuICAgICAgZmlyc3ROYW1lOiBbe3ZhbHVlOiB0aGlzLmZpcnN0TmFtZSB8fCAnJywgZGlzYWJsZWQ6IGZhbHNlfV0sXG4gICAgICBsYXN0TmFtZTogW3t2YWx1ZTogdGhpcy5sYXN0TmFtZSB8fCAnJywgZGlzYWJsZWQ6IGZhbHNlfSwgVmFsaWRhdG9ycy5yZXF1aXJlZF0sXG4gICAgICBkZXBhcnRtZW50OiBbe3ZhbHVlOiB0aGlzLmRlcGFydG1lbnQgfHwgJycsIGRpc2FibGVkOiBmYWxzZX1dLFxuICAgICAgbWlkZGxlTmFtZTogW3t2YWx1ZTogdGhpcy5taWRkbGVOYW1lIHx8ICcnLCBkaXNhYmxlZDogZmFsc2V9XSxcbiAgICAgIHRpdGxlOiBbe3ZhbHVlOiB0aGlzLnRpdGxlIHx8ICcnLCBkaXNhYmxlZDogZmFsc2V9XSxcbiAgICAgIHRlbGVwaG9uZU51bWJlcjogW3t2YWx1ZTogdGhpcy50ZWxlcGhvbmVOdW1iZXIgfHwgJycsIGRpc2FibGVkOiBmYWxzZX1dLFxuICAgICAgaG9tZU51bWJlcjogW3t2YWx1ZTogdGhpcy5ob21lTnVtYmVyIHx8ICcnLCBkaXNhYmxlZDogZmFsc2V9XSxcbiAgICAgIG1vYmlsZU51bWJlcjogW3t2YWx1ZTogdGhpcy5tb2JpbGVOdW1iZXIgfHwgJycsIGRpc2FibGVkOiBmYWxzZX1dLFxuICAgICAgcGFnZXJOdW1iZXI6IFt7dmFsdWU6IHRoaXMucGFnZXJOdW1iZXIgfHwgJycsIGRpc2FibGVkOiBmYWxzZX1dLFxuICAgICAgZGlzcGxheU5hbWU6IFt7dmFsdWU6IHRoaXMuZGlzcGxheU5hbWUgfHwgJycsIGRpc2FibGVkOiBmYWxzZX1dLFxuICAgICAgbWFuYWdlcjogW3t2YWx1ZTogdGhpcy5tYW5hZ2VyIHx8ICcnLCBkaXNhYmxlZDogZmFsc2V9XSxcbiAgICAgIGFzc29jaWF0ZWRQYzogW3RoaXMuYXNzb2NpYXRlZFBjIHx8ICcnXSxcbiAgICAgIGRpcmVjdG9yeVVyaTogW3RoaXMuZGlyZWN0b3J5VXJpIHx8ICcnXSxcbiAgICAgIHVzZXJQcm9maWxlOiBbdGhpcy51c2VyUHJvZmlsZV0sXG4gICAgICBlbmFibGVNb2JpbGVWb2ljZUFjY2VzczogW3RoaXMuZW5hYmxlTW9iaWxlVm9pY2VBY2Nlc3NdLFxuICAgICAgdXNlckxvY2FsZTogW3RoaXMudXNlckxvY2FsZSB8fCAnJ10sXG4gICAgICBkaWdlc3RDcmVkZW50aWFsczogWycnXSxcbiAgICAgIGNvbmZpcm1EaWdlc3RDcmVkZW50aWFsczogWycnXVxuICAgIH07XG4gICAgdGhpcy5mb3JtID0gZm9ybUJ1aWxkZXIuZ3JvdXAoZm9ybVNldHRpbmdzKTtcbiAgfVxuXG4gIHRvZ2dsZUVkaXRNb2RlKCkge1xuICAgIHRoaXMuZWRpdE1vZGUgPSAhdGhpcy5lZGl0TW9kZTtcbiAgICBbJ3VzZXJpZCcsICdlbWFpbCcsICdmaXJzdE5hbWUnLCAnbGFzdE5hbWUnXS5mb3JFYWNoKHRva2VuID0+IHtcbiAgICAgIGlmICh0aGlzLmVkaXRNb2RlKSB7XG4gICAgICAgIHRoaXMuZm9ybS5nZXQodG9rZW4pPy5lbmFibGUoKTtcbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIHRoaXMuZm9ybS5nZXQodG9rZW4pPy5kaXNhYmxlKCk7XG4gICAgICB9XG4gICAgfSlcbiAgfVxuXG4gIGdldFNhdmFibGVEYXRhKCkge1xuICAgIGNvbnN0IGV4Y2x1ZGVkRmllbGRzOiBzdHJpbmdbXSA9IFsnZm9ybScsICdlZGl0TW9kZScsICd2aWV3TW9kZScsICd0b2tlbicsICdoYXNNb2RpZmllZENhY2hlJywgJ2NvbmZpcm1EaWdlc3RDcmVkZW50aWFscyddO1xuICAgIHJldHVybiBnZXRTYXZhYmxlRGF0YSh0aGlzLCBleGNsdWRlZEZpZWxkcyk7XG4gIH1cblxuICBlcXVhbCh1c2VyVG9Db21wYXJlPzogU2ltcGxpZmllZFVzZXIpOiBib29sZWFuIHtcbiAgICBpZiAoIXVzZXJUb0NvbXBhcmUpIHtcbiAgICAgIHJldHVybiBmYWxzZTtcbiAgICB9XG4gICAgcmV0dXJuIEpTT04uc3RyaW5naWZ5KHRoaXMuZ2V0U2F2YWJsZURhdGEoKSkgPT09IEpTT04uc3RyaW5naWZ5KHVzZXJUb0NvbXBhcmUuZ2V0U2F2YWJsZURhdGEoKSk7XG4gIH1cblxufVxuXG5leHBvcnQgaW50ZXJmYWNlIFNpbXBsaWZpZWRVc2VySW50ZXJmYWNlIHtcbiAgdXNlcmlkOiBzdHJpbmc7XG4gIGVtYWlsOiBzdHJpbmc7XG4gIGZpcnN0TmFtZTogc3RyaW5nO1xuICBsYXN0TmFtZTogc3RyaW5nO1xuICBmb3JtPzogRm9ybUdyb3VwO1xufVxuIl19
84
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2ltcGxpZmllZC11c2VyLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvdHVraS93aWRnZXRzL3VzZXItbWFuYWdlL3NyYy9jbGFzc2VzL3NpbXBsaWZpZWQtdXNlci50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsV0FBVyxFQUFhLFVBQVUsRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBRXBFLE9BQU8sRUFBRSxjQUFjLEVBQUUsTUFBTSxxQkFBcUIsQ0FBQztBQUNyRCxPQUFPLEVBQUUsYUFBYSxFQUFFLE1BQU0sa0JBQWtCLENBQUM7QUFFakQsTUFBTSxPQUFPLGNBQWM7SUFpQ3pCLFlBQVksSUFBVTtRQUNwQixJQUFJLElBQUksRUFBRTtZQUNSLElBQUksQ0FBQyxNQUFNLEdBQUcsSUFBSSxDQUFDLE1BQU0sQ0FBQztZQUMxQixJQUFJLENBQUMsS0FBSyxHQUFHLElBQUksQ0FBQyxLQUFLLENBQUM7WUFDeEIsSUFBSSxDQUFDLFNBQVMsR0FBRyxJQUFJLENBQUMsU0FBUyxDQUFDO1lBQ2hDLElBQUksQ0FBQyxRQUFRLEdBQUcsSUFBSSxDQUFDLFFBQVEsQ0FBQztZQUM5QixJQUFJLENBQUMsS0FBSyxHQUFHLElBQUksQ0FBQyxLQUFLLENBQUM7WUFFeEIsSUFBSSxDQUFDLFVBQVUsR0FBRyxJQUFJLENBQUMsVUFBVSxDQUFDO1lBQ2xDLElBQUksQ0FBQyxPQUFPLEdBQUcsSUFBSSxDQUFDLE9BQU8sQ0FBQztZQUM1QixJQUFJLENBQUMsWUFBWSxHQUFHLElBQUksQ0FBQyxZQUFZLENBQUM7WUFDdEMsSUFBSSxDQUFDLGlCQUFpQixHQUFHLElBQUksQ0FBQyxpQkFBaUIsQ0FBQztZQUNoRCxJQUFJLENBQUMsV0FBVyxHQUFHLElBQUksQ0FBQyxXQUFXLENBQUM7WUFDcEMsSUFBSSxDQUFDLHVCQUF1QixHQUFHLElBQUksQ0FBQyx1QkFBdUIsQ0FBQztZQUM1RCxJQUFJ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LEVBQUUsQ0FBQzthQUNqQztRQUNILENBQUMsQ0FBQyxDQUFBO0lBQ0osQ0FBQztJQUVELGNBQWM7UUFDWixNQUFNLGNBQWMsR0FBYSxDQUFDLE1BQU0sRUFBRSxVQUFVLEVBQUUsVUFBVSxFQUFFLE9BQU8sRUFBRSxrQkFBa0IsRUFBRSwwQkFBMEIsQ0FBQyxDQUFDO1FBQzNILE9BQU8sY0FBYyxDQUFDLElBQUksRUFBRSxjQUFjLENBQUMsQ0FBQztJQUM5QyxDQUFDO0lBRUQsS0FBSyxDQUFDLGFBQThCO1FBQ2xDLElBQUksQ0FBQyxhQUFhLEVBQUU7WUFDbEIsT0FBTyxLQUFLLENBQUM7U0FDZDtRQUNELE9BQU8sSUFBSSxDQUFDLFNBQVMsQ0FBQyxJQUFJLENBQUMsY0FBYyxFQUFFLENBQUMsS0FBSyxJQUFJLENBQUMsU0FBUyxDQUFDLGFBQWEsQ0FBQyxjQUFjLEVBQUUsQ0FBQyxDQUFDO0lBQ2xHLENBQUM7Q0FFRiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEZvcm1CdWlsZGVyLCBGb3JtR3JvdXAsIFZhbGlkYXRvcnMgfSBmcm9tICdAYW5ndWxhci9mb3Jtcyc7XG5pbXBvcnQgeyBCZWhhdmlvclN1YmplY3QgfSBmcm9tICdyeGpzJztcbmltcG9ydCB7IGdldFNhdmFibGVEYXRhIH0gZnJvbSAnLi4vY29tbW9uLWZ1bmN0aW9ucyc7XG5pbXBvcnQgeyBSRUdFWF9QQVRURVJOIH0gZnJvbSAnLi4vYXBwLmNvbnN0YW50cyc7XG5cbmV4cG9ydCBjbGFzcyBTaW1wbGlmaWVkVXNlciB7XG4gIHVzZXJpZCE6IHN0cmluZztcbiAgZW1haWwhOiBzdHJpbmc7XG4gIGZpcnN0TmFtZSE6IHN0cmluZztcbiAgbGFzdE5hbWUhOiBzdHJpbmc7XG4gIC8vIGdlbmVyYWwgdXNlciBpbmZvXG4gIGRlcGFydG1lbnQhOiBzdHJpbmc7XG4gIG1hbmFnZXIhOiBzdHJpbmc7XG4gIGFzc29jaWF0ZWRQYyE6IHN0cmluZztcbiAgZGlnZXN0Q3JlZGVudGlhbHMhOiBzdHJpbmc7XG4gIHVzZXJQcm9maWxlITogc3RyaW5nO1xuICBlbmFibGVNb2JpbGVWb2ljZUFjY2VzcyE6IGJvb2xlYW47XG4gIHVzZXJMb2NhbGUhOiBzdHJpbmc7XG4gIGNvbmZpcm1EaWdlc3RDcmVkZW50aWFscz86IGFueTtcblxuICAvLyBjb250YWN0IGluZm9ybWF0aW9uXG4gIG1pZGRsZU5hbWUhOiBzdHJpbmc7XG4gIHRlbGVwaG9uZU51bWJlciE6IHN0cmluZztcbiAgbW9iaWxlTnVtYmVyITogc3RyaW5nO1xuICBkaXJlY3RvcnlVcmkhOiBzdHJpbmc7XG4gIHRpdGxlITogc3RyaW5nO1xuICBob21lTnVtYmVyITogc3RyaW5nO1xuICBwYWdlck51bWJlciE6IHN0cmluZztcbiAgZGlzcGxheU5hbWUhOiBzdHJpbmc7XG5cbiAgdG9rZW4hOiBzdHJpbmc7XG4gIHZpZXdNb2RlITogc3RyaW5nO1xuICBoYXNNb2RpZmllZENhY2hlITogYm9vbGVhbjtcbiAgbmV3VXNlcklkPzogc3RyaW5nO1xuICBlZGl0TW9kZSE6IGJvb2xlYW47XG4gIGxkYXBJbnRlZ3JhdGVkITogYm9vbGVhbjtcbiAgZm9ybSE6IEZvcm1Hcm91cDtcblxuICBjb25zdHJ1Y3Rvcih1c2VyPzogYW55KSB7XG4gICAgaWYgKHVzZXIpIHtcbiAgICAgIHRoaXMudXNlcmlkID0gdXNlci51c2VyaWQ7XG4gICAgICB0aGlzLmVtYWlsID0gdXNlci5lbWFpbDtcbiAgICAgIHRoaXMuZmlyc3ROYW1lID0gdXNlci5maXJzdE5hbWU7XG4gICAgICB0aGlzLmxhc3ROYW1lID0gdXNlci5sYXN0TmFtZTtcbiAgICAgIHRoaXMudG9rZW4gPSB1c2VyLnRva2VuO1xuXG4gICAgICB0aGlzLmRlcGFydG1lbnQgPSB1c2VyLmRlcGFydG1lbnQ7XG4gICAgICB0aGlzLm1hbmFnZXIgPSB1c2VyLm1hbmFnZXI7XG4gICAgICB0aGlzLmFzc29jaWF0ZWRQYyA9IHVzZXIuYXNzb2NpYXRlZFBjO1xuICAgICAgdGhpcy5kaWdlc3RDcmVkZW50aWFscyA9IHVzZXIuZGlnZXN0Q3JlZGVudGlhbHM7XG4gICAgICB0aGlzLnVzZXJQcm9maWxlID0gdXNlci51c2VyUHJvZmlsZTtcbiAgICAgIHRoaXMuZW5hYmxlTW9iaWxlVm9pY2VBY2Nlc3MgPSB1c2VyLmVuYWJsZU1vYmlsZVZvaWNlQWNjZXNzO1xuICAgICAgdGhpcy5sZGFwSW50ZWdyYXRlZCA9IHVzZXIubGRhcEludGVncmF0ZWQ7XG4gICAgICB0aGlzLnVzZXJMb2NhbGUgPSB1c2VyLnVzZXJMb2NhbGU7XG4gICAgICB0aGlzLmNvbmZpcm1EaWdlc3RDcmVkZW50aWFscyA9IHVzZXIuY29uZmlybURpZ2VzdENyZWRlbnRpYWxzO1xuXG4gICAgICB0aGlzLm1pZGRsZU5hbWUgPSB1c2VyLm1pZGRsZU5hbWU7XG4gICAgICB0aGlzLnRlbGVwaG9uZU51bWJlciA9IHVzZXIudGVsZXBob25lTnVtYmVyO1xuICAgICAgdGhpcy5tb2JpbGVOdW1iZXIgPSB1c2VyLm1vYmlsZU51bWJlcjtcbiAgICAgIHRoaXMuZGlyZWN0b3J5VXJpID0gdXNlci5kaXJlY3RvcnlVcmk7XG4gICAgICB0aGlzLnRpdGxlID0gdXNlci50aXRsZTtcbiAgICAgIHRoaXMuaG9tZU51bWJlciA9IHVzZXIuaG9tZU51bWJlcjtcbiAgICAgIHRoaXMucGFnZXJOdW1iZXIgPSB1c2VyLnBhZ2VyTnVtYmVyO1xuICAgICAgdGhpcy5kaXNwbGF5TmFtZSA9IHVzZXIuZGlzcGxheU5hbWU7XG4gICAgfVxuICAgIHRoaXMuaW5pdEZvcm0oKVxuICB9XG5cbiAgaW5pdEZvcm0oKSB7XG4gICAgY29uc3QgZm9ybUJ1aWxkZXIgPSBuZXcgRm9ybUJ1aWxkZXIoKTtcbiAgICBjb25zdCBmb3JtU2V0dGluZ3MgPSB7XG4gICAgICB1c2VyaWQ6IFt7dmFsdWU6IHRoaXMudXNlcmlkIHx8ICcnLCBkaXNhYmxlZDogZmFsc2V9LCBbVmFsaWRhdG9ycy5yZXF1aXJlZCwgVmFsaWRhdG9ycy5tYXhMZW5ndGgoMTI4KV1dLFxuICAgICAgZW1haWw6IFt7dmFsdWU6IHRoaXMuZW1haWwgfHwgJycsIGRpc2FibGVkOiBmYWxzZX0sIFtcbiAgICAgICAgVmFsaWRhdG9ycy5wYXR0ZXJuKFJFR0VYX1BBVFRFUk4uRU1BSUwpLFxuICAgICAgICBWYWxpZGF0b3JzLnJlcXVpcmVkXG4gICAgICBdXSxcbiAgICAgIGZpcnN0TmFtZTogW3t2YWx1ZTogdGhpcy5maXJzdE5hbWUgfHwgJycsIGRpc2FibGVkOiBmYWxzZX1dLFxuICAgICAgbGFzdE5hbWU6IFt7dmFsdWU6IHRoaXMubGFzdE5hbWUgfHwgJycsIGRpc2FibGVkOiBmYWxzZX0sIFZhbGlkYXRvcnMucmVxdWlyZWRdLFxuICAgICAgZGVwYXJ0bWVudDogW3t2YWx1ZTogdGhpcy5kZXBhcnRtZW50IHx8ICcnLCBkaXNhYmxlZDogZmFsc2V9XSxcbiAgICAgIG1pZGRsZU5hbWU6IFt7dmFsdWU6IHRoaXMubWlkZGxlTmFtZSB8fCAnJywgZGlzYWJsZWQ6IGZhbHNlfV0sXG4gICAgICB0aXRsZTogW3t2YWx1ZTogdGhpcy50aXRsZSB8fCAnJywgZGlzYWJsZWQ6IGZhbHNlfV0sXG4gICAgICB0ZWxlcGhvbmVOdW1iZXI6IFt7dmFsdWU6IHRoaXMudGVsZXBob25lTnVtYmVyIHx8ICcnLCBkaXNhYmxlZDogZmFsc2V9XSxcbiAgICAgIGhvbWVOdW1iZXI6IFt7dmFsdWU6IHRoaXMuaG9tZU51bWJlciB8fCAnJywgZGlzYWJsZWQ6IGZhbHNlfV0sXG4gICAgICBtb2JpbGVOdW1iZXI6IFt7dmFsdWU6IHRoaXMubW9iaWxlTnVtYmVyIHx8ICcnLCBkaXNhYmxlZDogZmFsc2V9XSxcbiAgICAgIHBhZ2VyTnVtYmVyOiBbe3ZhbHVlOiB0aGlzLnBhZ2VyTnVtYmVyIHx8ICcnLCBkaXNhYmxlZDogZmFsc2V9XSxcbiAgICAgIGRpc3BsYXlOYW1lOiBbe3ZhbHVlOiB0aGlzLmRpc3BsYXlOYW1lIHx8ICcnLCBkaXNhYmxlZDogZmFsc2V9XSxcbiAgICAgIG1hbmFnZXI6IFt7dmFsdWU6IHRoaXMubWFuYWdlciB8fCAnJywgZGlzYWJsZWQ6IGZhbHNlfV0sXG4gICAgICBhc3NvY2lhdGVkUGM6IFt0aGlzLmFzc29jaWF0ZWRQYyB8fCAnJ10sXG4gICAgICBkaXJlY3RvcnlVcmk6IFt0aGlzLmRpcmVjdG9yeVVyaSB8fCAnJ10sXG4gICAgICB1c2VyUHJvZmlsZTogW3RoaXMudXNlclByb2ZpbGVdLFxuICAgICAgZW5hYmxlTW9iaWxlVm9pY2VBY2Nlc3M6IFt0aGlzLmVuYWJsZU1vYmlsZVZvaWNlQWNjZXNzXSxcbiAgICAgIGxkYXBJbnRlZ3JhdGVkOiBbdGhpcy5sZGFwSW50ZWdyYXRlZF0sXG4gICAgICB1c2VyTG9jYWxlOiBbdGhpcy51c2VyTG9jYWxlIHx8ICcnXSxcbiAgICAgIGRpZ2VzdENyZWRlbnRpYWxzOiBbJyddLFxuICAgICAgY29uZmlybURpZ2VzdENyZWRlbnRpYWxzOiBbJyddXG4gICAgfTtcbiAgICB0aGlzLmZvcm0gPSBmb3JtQnVpbGRlci5ncm91cChmb3JtU2V0dGluZ3MpO1xuICB9XG5cbiAgdG9nZ2xlRWRpdE1vZGUoKSB7XG4gICAgdGhpcy5lZGl0TW9kZSA9ICF0aGlzLmVkaXRNb2RlO1xuICAgIFsndXNlcmlkJywgJ2VtYWlsJywgJ2ZpcnN0TmFtZScsICdsYXN0TmFtZSddLmZvckVhY2godG9rZW4gPT4ge1xuICAgICAgaWYgKHRoaXMuZWRpdE1vZGUpIHtcbiAgICAgICAgdGhpcy5mb3JtLmdldCh0b2tlbik/LmVuYWJsZSgpO1xuICAgICAgfSBlbHNlIHtcbiAgICAgICAgdGhpcy5mb3JtLmdldCh0b2tlbik/LmRpc2FibGUoKTtcbiAgICAgIH1cbiAgICB9KVxuICB9XG5cbiAgZ2V0U2F2YWJsZURhdGEoKSB7XG4gICAgY29uc3QgZXhjbHVkZWRGaWVsZHM6IHN0cmluZ1tdID0gWydmb3JtJywgJ2VkaXRNb2RlJywgJ3ZpZXdNb2RlJywgJ3Rva2VuJywgJ2hhc01vZGlmaWVkQ2FjaGUnLCAnY29uZmlybURpZ2VzdENyZWRlbnRpYWxzJ107XG4gICAgcmV0dXJuIGdldFNhdmFibGVEYXRhKHRoaXMsIGV4Y2x1ZGVkRmllbGRzKTtcbiAgfVxuXG4gIGVxdWFsKHVzZXJUb0NvbXBhcmU/OiBTaW1wbGlmaWVkVXNlcik6IGJvb2xlYW4ge1xuICAgIGlmICghdXNlclRvQ29tcGFyZSkge1xuICAgICAgcmV0dXJuIGZhbHNlO1xuICAgIH1cbiAgICByZXR1cm4gSlNPTi5zdHJpbmdpZnkodGhpcy5nZXRTYXZhYmxlRGF0YSgpKSA9PT0gSlNPTi5zdHJpbmdpZnkodXNlclRvQ29tcGFyZS5nZXRTYXZhYmxlRGF0YSgpKTtcbiAgfVxuXG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgU2ltcGxpZmllZFVzZXJJbnRlcmZhY2Uge1xuICB1c2VyaWQ6IHN0cmluZztcbiAgZW1haWw6IHN0cmluZztcbiAgZmlyc3ROYW1lOiBzdHJpbmc7XG4gIGxhc3ROYW1lOiBzdHJpbmc7XG4gIGZvcm0/OiBGb3JtR3JvdXA7XG59XG4iXX0=
@@ -42,10 +42,10 @@ export class LazyLoadingSelectComponent {
42
42
  }
43
43
  }
44
44
  LazyLoadingSelectComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.10", ngImport: i0, type: LazyLoadingSelectComponent, deps: [{ token: i1.NotificationService }, { token: i2.SiteSettingsService }], target: i0.ɵɵFactoryTarget.Component });
45
- LazyLoadingSelectComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "15.2.10", type: LazyLoadingSelectComponent, selector: "app-lazy-loading-select", inputs: { siteId: "siteId", form: "form", standalone: "standalone", placeholder: "placeholder", controlName: "controlName", optionsToken: "optionsToken", appearance: "appearance", errorCode: "errorCode", errorText: "errorText", default: "default", id: "id" }, outputs: { changeField: "changeField" }, ngImport: i0, template: "<ng-container *ngIf=\"standalone\">\n <mat-form-field appearance=\"outline\">\n <mat-select [formControl]=\"formControl\"\n (openedChange)=\"getOptions()\"\n [placeholder]=\"placeholder\"\n (selectionChange)=\"onFieldChange(controlName)\"\n [id]=\"id\">\n <mat-option *ngIf=\"default\" [disabled]=\"default.disabled\" [value]=\"default.key\">{{default.value}}</mat-option>\n <mat-option *ngFor=\"let type of options\" [value]=\"type\">\n {{type}}\n </mat-option>\n <mat-progress-spinner class=\"field-spinner\"\n [diameter]=\"20\"\n mode=\"indeterminate\"\n *ngIf=\"optionsPending\"></mat-progress-spinner>\n </mat-select>\n <mat-error *ngIf=\"form.get(controlName)?.hasError(errorCode)\">\n <i class=\"fa fa-exclamation-triangle\"></i>\n {{errorText}}\n </mat-error>\n </mat-form-field>\n</ng-container>\n\n<!--\nThis duplication is caused by the following bug: https://github.com/angular/components/issues/9411\nWhich doesn't allow projection in mat-form-field\n-->\n\n<ng-container *ngIf=\"!standalone\">\n <mat-select *ngIf=\"form.get(controlName)\"\n [formControl]=\"formControl\"\n (openedChange)=\"getOptions()\"\n [placeholder]=\"placeholder\"\n (selectionChange)=\"onFieldChange(controlName)\"\n [id]=\"id\"\n >\n <mat-option *ngIf=\"default\" [disabled]=\"default.disabled\" [value]=\"default.key\">{{default.value}}</mat-option>\n <mat-option *ngFor=\"let type of options\" [value]=\"type\">\n {{type}}\n </mat-option>\n <mat-progress-spinner class=\"field-spinner\"\n [diameter]=\"20\"\n mode=\"indeterminate\"\n *ngIf=\"optionsPending\"></mat-progress-spinner>\n </mat-select>\n <mat-error *ngIf=\"form.get(controlName)?.hasError(errorCode)\">\n <i class=\"fa fa-exclamation-triangle\"></i>\n {{errorText}}\n </mat-error>\n</ng-container>\n", styles: [".field-spinner{margin-top:-30px}\n"], dependencies: [{ kind: "directive", type: i3.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i3.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i4.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i4.FormControlDirective, selector: "[formControl]", inputs: ["formControl", "disabled", "ngModel"], outputs: ["ngModelChange"], exportAs: ["ngForm"] }, { kind: "component", type: i5.MatProgressSpinner, selector: "mat-progress-spinner, mat-spinner", inputs: ["color", "diameter", "strokeWidth", "mode", "value"], exportAs: ["matProgressSpinner"] }, { kind: "directive", type: i6.MatError, selector: "mat-error", inputs: ["id"] }, { kind: "component", type: i6.MatFormField, selector: "mat-form-field", inputs: ["color", "appearance", "hideRequiredMarker", "hintLabel", "floatLabel"], exportAs: ["matFormField"] }, { kind: "component", type: i7.MatOption, selector: "mat-option", exportAs: ["matOption"] }, { kind: "component", type: i8.MatSelect, selector: "mat-select", inputs: ["disabled", "disableRipple", "tabIndex"], exportAs: ["matSelect"] }] });
45
+ LazyLoadingSelectComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "15.2.10", type: LazyLoadingSelectComponent, selector: "app-lazy-loading-select", inputs: { siteId: "siteId", form: "form", standalone: "standalone", placeholder: "placeholder", controlName: "controlName", optionsToken: "optionsToken", appearance: "appearance", errorCode: "errorCode", errorText: "errorText", default: "default", id: "id" }, outputs: { changeField: "changeField" }, ngImport: i0, template: "<ng-container *ngIf=\"standalone\">\n <mat-form-field appearance=\"outline\">\n <mat-select [formControl]=\"formControl\"\n (openedChange)=\"getOptions()\"\n [placeholder]=\"placeholder\"\n (selectionChange)=\"onFieldChange(controlName)\"\n [id]=\"id\">\n <mat-option *ngIf=\"default\" [disabled]=\"default.disabled\" [value]=\"default.key\">{{default.value}}</mat-option>\n <mat-option *ngFor=\"let type of options\" [value]=\"type\">\n {{type}}\n </mat-option>\n <mat-progress-spinner class=\"field-spinner\"\n [diameter]=\"20\"\n mode=\"indeterminate\"\n *ngIf=\"optionsPending\"></mat-progress-spinner>\n </mat-select>\n <mat-error *ngIf=\"form.get(controlName)?.hasError(errorCode)\">\n <i class=\"fa fa-exclamation-triangle\"></i>\n {{errorText}}\n </mat-error>\n </mat-form-field>\n</ng-container>\n\n<!--\nThis duplication is caused by the following bug: https://github.com/angular/components/issues/9411\nWhich doesn't allow projection in mat-form-field\n-->\n\n<ng-container *ngIf=\"!standalone\">\n <mat-select *ngIf=\"form.get(controlName)\"\n [formControl]=\"formControl\"\n (openedChange)=\"getOptions()\"\n [placeholder]=\"placeholder\"\n (selectionChange)=\"onFieldChange(controlName)\"\n [id]=\"id\"\n >\n <mat-option *ngIf=\"default\" [disabled]=\"default.disabled\" [value]=\"default.key\">{{default.value}}</mat-option>\n <mat-option *ngFor=\"let type of options\" [value]=\"type\">\n {{type}}\n </mat-option>\n <mat-progress-spinner class=\"field-spinner\"\n [diameter]=\"20\"\n mode=\"indeterminate\"\n *ngIf=\"optionsPending\"></mat-progress-spinner>\n </mat-select>\n <mat-error *ngIf=\"form.get(controlName)?.hasError(errorCode)\">\n <i class=\"fa fa-exclamation-triangle\"></i>\n {{errorText}}\n </mat-error>\n</ng-container>\n", styles: [".field-spinner{margin-top:-30px}mat-form-field{width:300px;max-width:300px}\n"], dependencies: [{ kind: "directive", type: i3.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i3.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i4.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i4.FormControlDirective, selector: "[formControl]", inputs: ["formControl", "disabled", "ngModel"], outputs: ["ngModelChange"], exportAs: ["ngForm"] }, { kind: "component", type: i5.MatProgressSpinner, selector: "mat-progress-spinner, mat-spinner", inputs: ["color", "diameter", "strokeWidth", "mode", "value"], exportAs: ["matProgressSpinner"] }, { kind: "directive", type: i6.MatError, selector: "mat-error", inputs: ["id"] }, { kind: "component", type: i6.MatFormField, selector: "mat-form-field", inputs: ["color", "appearance", "hideRequiredMarker", "hintLabel", "floatLabel"], exportAs: ["matFormField"] }, { kind: "component", type: i7.MatOption, selector: "mat-option", exportAs: ["matOption"] }, { kind: "component", type: i8.MatSelect, selector: "mat-select", inputs: ["disabled", "disableRipple", "tabIndex"], exportAs: ["matSelect"] }] });
46
46
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.10", ngImport: i0, type: LazyLoadingSelectComponent, decorators: [{
47
47
  type: Component,
48
- args: [{ selector: 'app-lazy-loading-select', template: "<ng-container *ngIf=\"standalone\">\n <mat-form-field appearance=\"outline\">\n <mat-select [formControl]=\"formControl\"\n (openedChange)=\"getOptions()\"\n [placeholder]=\"placeholder\"\n (selectionChange)=\"onFieldChange(controlName)\"\n [id]=\"id\">\n <mat-option *ngIf=\"default\" [disabled]=\"default.disabled\" [value]=\"default.key\">{{default.value}}</mat-option>\n <mat-option *ngFor=\"let type of options\" [value]=\"type\">\n {{type}}\n </mat-option>\n <mat-progress-spinner class=\"field-spinner\"\n [diameter]=\"20\"\n mode=\"indeterminate\"\n *ngIf=\"optionsPending\"></mat-progress-spinner>\n </mat-select>\n <mat-error *ngIf=\"form.get(controlName)?.hasError(errorCode)\">\n <i class=\"fa fa-exclamation-triangle\"></i>\n {{errorText}}\n </mat-error>\n </mat-form-field>\n</ng-container>\n\n<!--\nThis duplication is caused by the following bug: https://github.com/angular/components/issues/9411\nWhich doesn't allow projection in mat-form-field\n-->\n\n<ng-container *ngIf=\"!standalone\">\n <mat-select *ngIf=\"form.get(controlName)\"\n [formControl]=\"formControl\"\n (openedChange)=\"getOptions()\"\n [placeholder]=\"placeholder\"\n (selectionChange)=\"onFieldChange(controlName)\"\n [id]=\"id\"\n >\n <mat-option *ngIf=\"default\" [disabled]=\"default.disabled\" [value]=\"default.key\">{{default.value}}</mat-option>\n <mat-option *ngFor=\"let type of options\" [value]=\"type\">\n {{type}}\n </mat-option>\n <mat-progress-spinner class=\"field-spinner\"\n [diameter]=\"20\"\n mode=\"indeterminate\"\n *ngIf=\"optionsPending\"></mat-progress-spinner>\n </mat-select>\n <mat-error *ngIf=\"form.get(controlName)?.hasError(errorCode)\">\n <i class=\"fa fa-exclamation-triangle\"></i>\n {{errorText}}\n </mat-error>\n</ng-container>\n", styles: [".field-spinner{margin-top:-30px}\n"] }]
48
+ args: [{ selector: 'app-lazy-loading-select', template: "<ng-container *ngIf=\"standalone\">\n <mat-form-field appearance=\"outline\">\n <mat-select [formControl]=\"formControl\"\n (openedChange)=\"getOptions()\"\n [placeholder]=\"placeholder\"\n (selectionChange)=\"onFieldChange(controlName)\"\n [id]=\"id\">\n <mat-option *ngIf=\"default\" [disabled]=\"default.disabled\" [value]=\"default.key\">{{default.value}}</mat-option>\n <mat-option *ngFor=\"let type of options\" [value]=\"type\">\n {{type}}\n </mat-option>\n <mat-progress-spinner class=\"field-spinner\"\n [diameter]=\"20\"\n mode=\"indeterminate\"\n *ngIf=\"optionsPending\"></mat-progress-spinner>\n </mat-select>\n <mat-error *ngIf=\"form.get(controlName)?.hasError(errorCode)\">\n <i class=\"fa fa-exclamation-triangle\"></i>\n {{errorText}}\n </mat-error>\n </mat-form-field>\n</ng-container>\n\n<!--\nThis duplication is caused by the following bug: https://github.com/angular/components/issues/9411\nWhich doesn't allow projection in mat-form-field\n-->\n\n<ng-container *ngIf=\"!standalone\">\n <mat-select *ngIf=\"form.get(controlName)\"\n [formControl]=\"formControl\"\n (openedChange)=\"getOptions()\"\n [placeholder]=\"placeholder\"\n (selectionChange)=\"onFieldChange(controlName)\"\n [id]=\"id\"\n >\n <mat-option *ngIf=\"default\" [disabled]=\"default.disabled\" [value]=\"default.key\">{{default.value}}</mat-option>\n <mat-option *ngFor=\"let type of options\" [value]=\"type\">\n {{type}}\n </mat-option>\n <mat-progress-spinner class=\"field-spinner\"\n [diameter]=\"20\"\n mode=\"indeterminate\"\n *ngIf=\"optionsPending\"></mat-progress-spinner>\n </mat-select>\n <mat-error *ngIf=\"form.get(controlName)?.hasError(errorCode)\">\n <i class=\"fa fa-exclamation-triangle\"></i>\n {{errorText}}\n </mat-error>\n</ng-container>\n", styles: [".field-spinner{margin-top:-30px}mat-form-field{width:300px;max-width:300px}\n"] }]
49
49
  }], ctorParameters: function () { return [{ type: i1.NotificationService }, { type: i2.SiteSettingsService }]; }, propDecorators: { siteId: [{
50
50
  type: Input
51
51
  }], form: [{
@@ -17,6 +17,9 @@ export class UserManageWidgetComponent {
17
17
  get form() {
18
18
  return this.userService?.user?.form;
19
19
  }
20
+ isLdap() {
21
+ return this.user.ldapIntegrated;
22
+ }
20
23
  get user() {
21
24
  return this.userService.user;
22
25
  }
@@ -150,10 +153,10 @@ export class UserManageWidgetComponent {
150
153
  }
151
154
  }
152
155
  UserManageWidgetComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.10", ngImport: i0, type: UserManageWidgetComponent, deps: [{ token: i1.UserService }, { token: i2.APIService }], target: i0.ɵɵFactoryTarget.Component });
153
- UserManageWidgetComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "15.2.10", type: UserManageWidgetComponent, selector: "app-user-manage-widget", inputs: { token: "token", host: "host", siteId: "siteId", userId: "userId" }, outputs: { onSave: "onSave", onChange: "onChange" }, ngImport: i0, template: "<div class=\"header-box\">\n <div class=\"content-box\">\n <div class=\"header-back-block\">\n <svg width=\"16\" height=\"16\" viewBox=\"0 0 16 16\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\">\n <path d=\"M5.70746 7.99987L11.3539 2.35352C11.4453 2.25928 11.496 2.13287 11.495 2.00159C11.494 1.8703 11.4414 1.74467 11.3486 1.65183C11.2558 1.55899 11.1301 1.50639 10.9988 1.50539C10.8676 1.50438 10.7411 1.55506 10.6469 1.64647L4.64691 7.64647C4.55316 7.74023 4.50049 7.8674 4.50049 7.99999C4.50049 8.13259 4.55316 8.25975 4.64691 8.35352L10.6469 14.3535C10.6931 14.4011 10.7482 14.439 10.8092 14.4651C10.8702 14.4912 10.9357 14.5049 11.002 14.5054C11.0683 14.5059 11.134 14.4932 11.1954 14.468C11.2567 14.4429 11.3125 14.4058 11.3593 14.3589C11.4062 14.312 11.4433 14.2563 11.4685 14.1949C11.4936 14.1336 11.5063 14.0679 11.5058 14.0016C11.5053 13.9353 11.4916 13.8697 11.4655 13.8088C11.4394 13.7478 11.4015 13.6926 11.3539 13.6465L5.70746 7.99987Z\" fill=\"black\" fill-opacity=\"0.95\"/>\n </svg>\n Users\n </div>\n<!-- <div class=\"header-button-block\">-->\n<!-- <button mat-raised-button-->\n<!-- [disabled]=\"!userService.hasUnsavedChanges()\"-->\n<!-- (click)=\"saveChanges()\">Save</button>-->\n<!-- </div>-->\n </div>\n</div>\n<app-user-info *ngIf=\"user\" [name]=\"userName\" [email]=\"user.email\" [active]=\"false\" [position]=\"'Sales Senior VP'\"></app-user-info>\n\n<mat-tab-group disableRipple class=\"content-box\">\n <mat-tab label=\"Profile\">\n <ng-container *ngTemplateOutlet=\"userProfile\">\n </ng-container>\n </mat-tab>\n <mat-tab label=\"Devices\" [disabled]=\"true\"></mat-tab>\n <mat-tab label=\"Lines\" [disabled]=\"true\"></mat-tab>\n <mat-tab label=\"Features\" [disabled]=\"true\"></mat-tab>\n</mat-tab-group>\n\n<ng-template #userProfile>\n <form *ngIf=\"user && form\" [formGroup]=\"form\">\n <div class=\"info-boxes-container\">\n <div *ngIf=\"dataPending == true\" class=\"data-loader\">\n <mat-spinner [diameter]=\"50\"></mat-spinner>\n </div>\n\n <!-- USER INFO BOX-->\n <div class=\"user-info-box user-details-box\">\n <h3 class=\"user-box-title\">User General Info</h3>\n <div class=\"form-holder__inputs\">\n <div class=\"input-holder\">\n <div class=\"input-holder__name\">User Id</div>\n <div class=\"input-holder__input\">\n <mat-form-field appearance=\"outline\">\n <input formControlName=\"userid\"\n matInput (input)=\"onChangeField('userid')\">\n <mat-error\n *ngIf=\"form.get('userid').hasError('required')\">\n <i class=\"fa fa-exclamation-triangle\"></i>\n This field is required\n </mat-error>\n <mat-error *ngIf=\"form.get('userid').hasError('exist')\">\n <i class=\"fa fa-exclamation-triangle\"></i>\n User ID already exists\n </mat-error>\n </mat-form-field>\n </div>\n </div>\n <mat-divider></mat-divider>\n <div class=\"input-holder\">\n <div class=\"input-holder__name\">Email</div>\n <div class=\"input-holder__input\">\n <mat-form-field appearance=\"outline\">\n <input formControlName=\"email\"\n matInput (input)=\"onChangeField('email')\">\n <mat-error\n *ngIf=\"form.get('email').touched && form.get('email').hasError('required')\">\n <i class=\"fa fa-exclamation-triangle\"></i>\n This field is required\n </mat-error>\n <mat-error *ngIf=\"form.get('email').touched && form.get('email').hasError('pattern')\">\n <i class=\"fa fa-exclamation-triangle\"></i>\n Please enter valid email\n </mat-error>\n </mat-form-field>\n </div>\n </div>\n <mat-divider></mat-divider>\n <div class=\"input-holder\">\n <div class=\"input-holder__name\">Fisrt Name</div>\n <div class=\"input-holder__input\">\n <mat-form-field appearance=\"outline\">\n <input formControlName=\"firstName\"\n matInput (input)=\"onChangeField('firstName')\">\n </mat-form-field>\n </div>\n </div>\n <mat-divider></mat-divider>\n <div class=\"input-holder\">\n <div class=\"input-holder__name\">Last Name</div>\n <div class=\"input-holder__input\">\n <mat-form-field appearance=\"outline\">\n <input formControlName=\"lastName\"\n matInput (input)=\"onChangeField('lastName')\">\n <mat-error\n *ngIf=\"form.get('lastName').touched && form.get('lastName').hasError('required')\">\n <i class=\"fa fa-exclamation-triangle\"></i>\n This field is required\n </mat-error>\n </mat-form-field>\n </div>\n </div>\n <mat-divider></mat-divider>\n </div>\n\n </div>\n\n\n <!-- USER INFO BOX-->\n <div class=\"user-info-box user-details-box\">\n <h3 class=\"user-box-title\">User General Info</h3>\n <div class=\"form-holder__inputs\">\n <div class=\"input-holder\">\n <div class=\"input-holder__name\">Department</div>\n <div class=\"input-holder__input\">\n <mat-form-field appearance=\"outline\">\n <input formControlName=\"department\" matInput type=\"text\" (input)=\"onChangeField('department')\">\n </mat-form-field>\n </div>\n </div>\n <mat-divider></mat-divider>\n <div class=\"input-holder\">\n <div class=\"input-holder__name\">Manager user ID</div>\n <div class=\"input-holder__input\">\n <mat-form-field appearance=\"outline\">\n <input formControlName=\"manager\" matInput type=\"text\" (input)=\"onChangeField('manager')\">\n </mat-form-field>\n </div>\n </div>\n <mat-divider></mat-divider>\n <div class=\"input-holder\">\n <div class=\"input-holder__name\">Associated PC</div>\n <div class=\"input-holder__input\">\n <mat-form-field appearance=\"outline\">\n <input formControlName=\"associatedPc\" matInput type=\"text\" (input)=\"onChangeField('associatedPc')\">\n </mat-form-field>\n </div>\n </div>\n <mat-divider></mat-divider>\n <div class=\"input-holder\">\n <div class=\"input-holder__name\">Digest credentials</div>\n <div class=\"input-holder__input\">\n <mat-form-field appearance=\"outline\">\n <input formControlName=\"digestCredentials\" matInput type=\"text\" (input)=\"onChangeField('digestCredentials')\">\n </mat-form-field>\n </div>\n </div>\n <mat-divider></mat-divider>\n <div class=\"input-holder\">\n <div class=\"input-holder__name\">User profile</div>\n <div class=\"input-holder__input\">\n <app-lazy-loading-select\n [siteId]=\"siteId\"\n [controlName]=\"'userProfile'\"\n [form]=\"user.form\"\n (changeField)=\"changeField('userProfile')\"\n [optionsToken]=\"'userProfiles'\"\n ></app-lazy-loading-select>\n </div>\n </div>\n <mat-divider></mat-divider>\n <div class=\"input-holder\">\n <div class=\"input-holder__name\">Mobile voice access</div>\n <div class=\"input-holder__input\">\n <mat-slide-toggle\n formControlName=\"enableMobileVoiceAccess\"\n (change)=\"onChangeField('enableMobileVoiceAccess')\"\n [checked]=\"user.enableMobileVoiceAccess\">\n </mat-slide-toggle>\n </div>\n </div>\n <mat-divider></mat-divider>\n <div class=\"input-holder\">\n <div class=\"input-holder__name\">Userlocale</div>\n <div class=\"input-holder__input\">\n <app-lazy-loading-select\n [siteId]=\"siteId\"\n [controlName]=\"'userLocale'\"\n [form]=\"user.form\"\n (changeField)=\"changeField($event)\"\n [optionsToken]=\"'userLocales'\"\n [default]=\"{key: '', value: 'None', disabled: false}\">\n </app-lazy-loading-select>\n </div>\n </div>\n <mat-divider></mat-divider>\n <div class=\"input-holder\">\n <div class=\"input-holder__name\">Confirm digest credentials</div>\n <div class=\"input-holder__input\">\n <mat-form-field appearance=\"outline\">\n <input formControlName=\"confirmDigestCredentials\" matInput type=\"text\" (input)=\"onChangeField('confirmDigestCredentials')\">\n </mat-form-field>\n </div>\n </div>\n </div>\n </div>\n\n <!-- USER INFO BOX-->\n <div class=\"user-info-box user-details-box\">\n <h3 class=\"user-box-title\">Contact Information</h3>\n <div class=\"form-holder__inputs\">\n <div class=\"input-holder\">\n <div class=\"input-holder__name\">Middle Name</div>\n <div class=\"input-holder__input\">\n <mat-form-field appearance=\"outline\">\n <input matInput type=\"text\" formControlName=\"middleName\" (input)=\"onChangeField('middleName')\">\n </mat-form-field>\n </div>\n </div>\n <mat-divider></mat-divider>\n <div class=\"input-holder\">\n <div class=\"input-holder__name\">Telephone Number</div>\n <div class=\"input-holder__input\">\n <mat-form-field appearance=\"outline\">\n <input matInput type=\"number\" formControlName=\"telephoneNumber\" (input)=\"onChangeField('telephoneNumber')\">\n </mat-form-field>\n </div>\n </div>\n <mat-divider></mat-divider>\n <div class=\"input-holder\">\n <div class=\"input-holder__name\">Mobile Number</div>\n <div class=\"input-holder__input\">\n <mat-form-field appearance=\"outline\">\n <input matInput type=\"number\" formControlName=\"mobileNumber\" (input)=\"onChangeField('mobileNumber')\">\n </mat-form-field>\n </div>\n </div>\n <mat-divider></mat-divider>\n <div class=\"input-holder\">\n <div class=\"input-holder__name\">Digest credentials</div>\n <div class=\"input-holder__input\">\n <mat-form-field appearance=\"outline\">\n <input matInput type=\"text\" formControlName=\"digestCredentials\" (input)=\"onChangeField('digestCredentials')\">\n </mat-form-field>\n </div>\n </div>\n <mat-divider></mat-divider>\n <div class=\"input-holder\">\n <div class=\"input-holder__name\">Diractory URI</div>\n <div class=\"input-holder__input\">\n <mat-form-field appearance=\"outline\">\n <input matInput type=\"text\" formControlName=\"directoryUri\" (input)=\"onChangeField('directoryUri')\">\n </mat-form-field>\n </div>\n </div>\n <mat-divider></mat-divider>\n <div class=\"input-holder\">\n <div class=\"input-holder__name\">Title</div>\n <div class=\"input-holder__input\">\n <mat-form-field appearance=\"outline\">\n <input matInput type=\"text\" formControlName=\"title\" (input)=\"onChangeField('title')\">\n </mat-form-field>\n </div>\n </div>\n <mat-divider></mat-divider>\n <div class=\"input-holder\">\n <div class=\"input-holder__name\">Home Number</div>\n <div class=\"input-holder__input\">\n <mat-form-field appearance=\"outline\">\n <input matInput type=\"number\" formControlName=\"homeNumber\" (input)=\"onChangeField('homeNumber')\">\n </mat-form-field>\n </div>\n </div>\n <mat-divider></mat-divider>\n <div class=\"input-holder\">\n <div class=\"input-holder__name\">Pager Number</div>\n <div class=\"input-holder__input\">\n <mat-form-field appearance=\"outline\">\n <input matInput type=\"number\" formControlName=\"pagerNumber\" (input)=\"onChangeField('pagerNumber')\">\n </mat-form-field>\n </div>\n </div>\n <mat-divider></mat-divider>\n <div class=\"input-holder\">\n <div class=\"input-holder__name\">Display Name</div>\n <div class=\"input-holder__input\">\n <mat-form-field appearance=\"outline\">\n <input matInput type=\"text\" formControlName=\"displayName\" (input)=\"onChangeField('displayName')\">\n </mat-form-field>\n </div>\n </div>\n </div>\n </div>\n\n </div>\n\n </form>\n</ng-template>\n\n<mat-progress-spinner *ngIf=\"dataPending\"\n class=\"page-spinner\"\n mode=\"indeterminate\"\n [diameter]=\"120\"></mat-progress-spinner>\n", styles: ["@import\"https://fonts.googleapis.com/css?family=Poppins:400,100,200,300,500,600,800,700,900\";.mat-select{height:100%;line-height:35px}.mat-form-field-wrapper{padding-bottom:0!important}.mat-form-field{padding:0;max-width:300px}.fa:hover{color:#0d56aa!important}.mat-icon-button{background:transparent}.icon-webex-box{width:2rem;height:2rem;font-size:.7rem;line-height:1rem;display:inline-block;background:#d0d0d0;border-radius:2rem;line-height:40px;text-align:center}.icon-webex{filter:invert(12%) sepia(14%) saturate(4%) hue-rotate(354deg) brightness(103%) contrast(90%);background-repeat:no-repeat;background-position:center;display:inline-block;height:1rem;width:1rem}.icon-webex-user{background-image:url(../assets/icons/icon_user.svg)}.icon-user-status{display:inline-block}*{margin:0}body{background:#f7f7f7}body,th,td{font-family:Poppins,Poppins,sans-serif;font-size:14px}th{color:#0000008a;text-align:left}td{box-sizing:border-box;padding:10px 5px 10px 0}.content-box{margin:auto;position:relative;width:95%}.content-box table{width:100%}.edit-icon-td{width:50px;position:relative}.edit-icon-td button{position:absolute;top:4px}.mat-progress-spinner circle,.mat-spinner circle{stroke:#009fdb!important}.data-loader{position:absolute;top:calc(50% - 25px);left:calc(50% - 25px)}.flex-box{display:flex;justify-content:flex-start}.user-info-box{background:white;display:grid;grid-template-columns:30% 70%;border-radius:8px;border:rgba(0,0,0,.2) 1px solid;padding:24px;font-weight:400;font-size:14px}.user-info-box h3{display:block;font-weight:500;font-size:16px}.mat-divider{margin:5px 0!important}.info-boxes-container{padding:24px 0;display:flex;flex-direction:column;gap:24px}.header-box{height:60px;width:100%;line-height:60px;background:white;border-bottom:1px solid #dedddd}.header-box .header-back-block{float:left}.header-box .header-button-block{float:right}.webex-table{width:100%;margin:auto}.webex-table tr{border-bottom:1px solid #dedede}.webex-table th{background:#f7f7f7;color:#636363;font-size:12px}.webex-table td{background:#fff;color:#636363;font-size:14px}.webex-table tr:hover td{background:#ededed;cursor:pointer}.webex-table th.mat-header-cell,.webex-table td.mat-cell,.webex-table td.mat-footer-cell{border-bottom:1px solid #dedede}.webex-table tr.mat-header-row{height:37px}.mat-form-field{padding:0 0 5px;width:93%}.mat-form-field.mat-form-field-disabled{border-bottom:none}.mat-error{color:#c73636;margin:13px 0 0}.select-box{border-radius:30px;background:#F3F6F6;border:1px solid #E2E9EF;height:35px;position:relative}.select-box select{border:none!important;background:transparent;height:100%;width:92%;margin:auto;display:block}option:focus,option:focus-visible{border:none!important;outline:none!important}option{height:30px;cursor:pointer;color:#636363}option:hover{background:#ededed!important}.mat-select{height:100%!important;line-height:35px!important}.info-holder,.input-holder{display:grid;grid-template-columns:30% 70%;align-items:baseline}.info-holder__name,.input-holder__name{font-weight:500!important;font-size:14px!important}.info-holder__inputs .input-holder,.input-holder__inputs .input-holder{display:grid;grid-template-columns:30% 70%;align-items:baseline}.info-holder__inputs .input-holder__name,.input-holder__inputs .input-holder__name{font-weight:400!important;font-size:14px!important}.mat-form-field-wrapper,.mat-form-field-flex{height:30px!important}.mat-form-field-appearance-outline .mat-form-field-outline,.mat-form-field-outline .mat-form-field-outline-thick{height:35px!important}.mat-select{line-height:20px!important}.mat-form-field-appearance-outline .mat-form-field-infix{padding:14px 12px 10px;border-top:0;max-width:300px}.mat-tab-group{font-family:Inter,sans-serif}.mat-tab-label{font-weight:500!important;font-size:14px!important;height:auto!important;min-width:auto!important;padding:0!important}.mat-ink-bar{background-color:#000000e6!important;height:3px!important}.mat-form-field-wrapper{padding-bottom:0}.mat-form-field{max-width:300px}table{border-collapse:collapse;border-spacing:0}.mat-form-field-appearance-outline .mat-form-field-infix{padding:0!important}.mat-divider{margin:12px 0}::ng-deep .mat-form-field-wrapper{height:30px}::ng-deep .mat-form-field-flex{height:30px}::ng-deep .mat-form-field-appearance-outline .mat-form-field-outline{height:35px}:ng-deep .mat-form-field-outline .mat-form-field-outline-thick{height:35px}::ng-deep .mat-select{line-height:20px}::ng-deep .mat-form-field-infix{border-top:0px!important}\n"], dependencies: [{ kind: "directive", type: i3.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i3.NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }, { kind: "directive", type: i4.ɵNgNoValidate, selector: "form:not([ngNoForm]):not([ngNativeValidate])" }, { kind: "directive", type: i4.DefaultValueAccessor, selector: "input:not([type=checkbox])[formControlName],textarea[formControlName],input:not([type=checkbox])[formControl],textarea[formControl],input:not([type=checkbox])[ngModel],textarea[ngModel],[ngDefaultControl]" }, { kind: "directive", type: i4.NumberValueAccessor, selector: "input[type=number][formControlName],input[type=number][formControl],input[type=number][ngModel]" }, { kind: "directive", type: i4.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i4.NgControlStatusGroup, selector: "[formGroupName],[formArrayName],[ngModelGroup],[formGroup],form:not([ngNoForm]),[ngForm]" }, { kind: "directive", type: i4.FormGroupDirective, selector: "[formGroup]", inputs: ["formGroup"], outputs: ["ngSubmit"], exportAs: ["ngForm"] }, { kind: "directive", type: i4.FormControlName, selector: "[formControlName]", inputs: ["formControlName", "disabled", "ngModel"], outputs: ["ngModelChange"] }, { kind: "component", type: i5.MatDivider, selector: "mat-divider", inputs: ["vertical", "inset"] }, { kind: "component", type: i6.MatProgressSpinner, selector: "mat-progress-spinner, mat-spinner", inputs: ["color", "diameter", "strokeWidth", "mode", "value"], exportAs: ["matProgressSpinner"] }, { kind: "directive", type: i7.MatError, selector: "mat-error", inputs: ["id"] }, { kind: "component", type: i7.MatFormField, selector: "mat-form-field", inputs: ["color", "appearance", "hideRequiredMarker", "hintLabel", "floatLabel"], exportAs: ["matFormField"] }, { kind: "directive", type: i8.MatInput, selector: "input[matInput], textarea[matInput], select[matNativeControl], input[matNativeControl], textarea[matNativeControl]", inputs: ["disabled", "id", "placeholder", "name", "required", "type", "errorStateMatcher", "aria-describedby", "value", "readonly"], exportAs: ["matInput"] }, { kind: "component", type: i9.MatTabGroup, selector: "mat-tab-group", inputs: ["color", "disableRipple"], exportAs: ["matTabGroup"] }, { kind: "component", type: i9.MatTab, selector: "mat-tab", inputs: ["disabled", "label", "aria-label", "aria-labelledby", "labelClass", "bodyClass"], exportAs: ["matTab"] }, { kind: "component", type: i10.MatSlideToggle, selector: "mat-slide-toggle", inputs: ["disabled", "disableRipple", "color", "tabIndex"], exportAs: ["matSlideToggle"] }, { kind: "component", type: i11.UserInfoComponent, selector: "app-user-info", inputs: ["name", "active", "email", "position"] }, { kind: "component", type: i12.LazyLoadingSelectComponent, selector: "app-lazy-loading-select", inputs: ["siteId", "form", "standalone", "placeholder", "controlName", "optionsToken", "appearance", "errorCode", "errorText", "default", "id"], outputs: ["changeField"] }] });
156
+ UserManageWidgetComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "15.2.10", type: UserManageWidgetComponent, selector: "app-user-manage-widget", inputs: { token: "token", host: "host", siteId: "siteId", userId: "userId" }, outputs: { onSave: "onSave", onChange: "onChange" }, ngImport: i0, template: "<div *ngIf=\"dataPending == false\">\n<div class=\"header-box\">\n <div class=\"content-box\">\n <div class=\"header-back-block\">\n <svg width=\"16\" height=\"16\" viewBox=\"0 0 16 16\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\">\n <path d=\"M5.70746 7.99987L11.3539 2.35352C11.4453 2.25928 11.496 2.13287 11.495 2.00159C11.494 1.8703 11.4414 1.74467 11.3486 1.65183C11.2558 1.55899 11.1301 1.50639 10.9988 1.50539C10.8676 1.50438 10.7411 1.55506 10.6469 1.64647L4.64691 7.64647C4.55316 7.74023 4.50049 7.8674 4.50049 7.99999C4.50049 8.13259 4.55316 8.25975 4.64691 8.35352L10.6469 14.3535C10.6931 14.4011 10.7482 14.439 10.8092 14.4651C10.8702 14.4912 10.9357 14.5049 11.002 14.5054C11.0683 14.5059 11.134 14.4932 11.1954 14.468C11.2567 14.4429 11.3125 14.4058 11.3593 14.3589C11.4062 14.312 11.4433 14.2563 11.4685 14.1949C11.4936 14.1336 11.5063 14.0679 11.5058 14.0016C11.5053 13.9353 11.4916 13.8697 11.4655 13.8088C11.4394 13.7478 11.4015 13.6926 11.3539 13.6465L5.70746 7.99987Z\" fill=\"black\" fill-opacity=\"0.95\"/>\n </svg>\n Users\n </div>\n<!-- <div class=\"header-button-block\">-->\n<!-- <button mat-raised-button-->\n<!-- [disabled]=\"!userService.hasUnsavedChanges()\"-->\n<!-- (click)=\"saveChanges()\">Save</button>-->\n<!-- </div>-->\n </div>\n</div>\n<app-user-info *ngIf=\"user\" [name]=\"userName\" [email]=\"user.email\" [active]=\"false\" [position]=\"'Sales Senior VP'\"></app-user-info>\n\n<mat-tab-group disableRipple class=\"content-box\">\n <mat-tab label=\"Profile\">\n <ng-container *ngTemplateOutlet=\"userProfile\">\n </ng-container>\n </mat-tab>\n <mat-tab label=\"Devices\" [disabled]=\"true\"></mat-tab>\n <mat-tab label=\"Lines\" [disabled]=\"true\"></mat-tab>\n <mat-tab label=\"Features\" [disabled]=\"true\"></mat-tab>\n</mat-tab-group>\n\n<ng-template #userProfile>\n <form *ngIf=\"user && form\" [formGroup]=\"form\">\n <div class=\"info-boxes-container\">\n <!-- USER INFO BOX-->\n <div class=\"user-info-box user-details-box\">\n <h3 class=\"user-box-title\">User Details</h3>\n <div class=\"form-holder__inputs\">\n <div class=\"input-holder\">\n <div class=\"input-holder__name\">User Id</div>\n <div class=\"input-holder__input\">\n <mat-form-field appearance=\"outline\">\n <input formControlName=\"userid\" [disabled]=\"this.isLdap() ? '' : false\" [readonly]=\"this.isLdap() ? '' : false\"\n matInput (input)=\"onChangeField('userid')\">\n <mat-error\n *ngIf=\"form.get('userid').hasError('required')\">\n <i class=\"fa fa-exclamation-triangle\"></i>\n This field is required\n </mat-error>\n <mat-error *ngIf=\"form.get('userid').hasError('exist')\">\n <i class=\"fa fa-exclamation-triangle\"></i>\n User ID already exists\n </mat-error>\n </mat-form-field>\n </div>\n </div>\n <mat-divider></mat-divider>\n <div class=\"input-holder\">\n <div class=\"input-holder__name\">Email</div>\n <div class=\"input-holder__input\">\n <mat-form-field appearance=\"outline\">\n <input formControlName=\"email\"\n [disabled]=\"this.isLdap() ? '' : false\" [readonly]=\"this.isLdap() ? '' : false\"\n matInput (input)=\"onChangeField('email')\">\n <mat-error\n *ngIf=\"form.get('email').touched && form.get('email').hasError('required')\">\n <i class=\"fa fa-exclamation-triangle\"></i>\n This field is required\n </mat-error>\n <mat-error *ngIf=\"form.get('email').touched && form.get('email').hasError('pattern')\">\n <i class=\"fa fa-exclamation-triangle\"></i>\n Please enter valid email\n </mat-error>\n </mat-form-field>\n </div>\n </div>\n <mat-divider></mat-divider>\n <div class=\"input-holder\">\n <div class=\"input-holder__name\">Fisrt Name</div>\n <div class=\"input-holder__input\">\n <mat-form-field appearance=\"outline\">\n <input formControlName=\"firstName\"\n [disabled]=\"this.isLdap() ? '' : false\" [readonly]=\"this.isLdap() ? '' : false\"\n matInput (input)=\"onChangeField('firstName')\">\n </mat-form-field>\n </div>\n </div>\n <mat-divider></mat-divider>\n <div class=\"input-holder\">\n <div class=\"input-holder__name\">Last Name</div>\n <div class=\"input-holder__input\">\n <mat-form-field appearance=\"outline\">\n <input formControlName=\"lastName\"\n [disabled]=\"this.isLdap() ? '' : false\" [readonly]=\"this.isLdap() ? '' : false\"\n matInput (input)=\"onChangeField('lastName')\">\n <mat-error\n *ngIf=\"form.get('lastName').touched && form.get('lastName').hasError('required')\">\n <i class=\"fa fa-exclamation-triangle\"></i>\n This field is required\n </mat-error>\n </mat-form-field>\n </div>\n </div>\n <mat-divider></mat-divider>\n </div>\n\n </div>\n\n\n <!-- USER INFO BOX-->\n <div class=\"user-info-box user-details-box\">\n <h3 class=\"user-box-title\">General User Info</h3>\n <div class=\"form-holder__inputs\">\n <div class=\"input-holder\">\n <div class=\"input-holder__name\">Department</div>\n <div class=\"input-holder__input\">\n <mat-form-field appearance=\"outline\">\n <input formControlName=\"department\" matInput type=\"text\" (input)=\"onChangeField('department')\">\n </mat-form-field>\n </div>\n </div>\n <mat-divider></mat-divider>\n <div class=\"input-holder\">\n <div class=\"input-holder__name\">Manager user ID</div>\n <div class=\"input-holder__input\">\n <mat-form-field appearance=\"outline\">\n <input formControlName=\"manager\" matInput type=\"text\" (input)=\"onChangeField('manager')\">\n </mat-form-field>\n </div>\n </div>\n <mat-divider></mat-divider>\n <div class=\"input-holder\">\n <div class=\"input-holder__name\">Associated PC</div>\n <div class=\"input-holder__input\">\n <mat-form-field appearance=\"outline\">\n <input formControlName=\"associatedPc\" matInput type=\"text\" (input)=\"onChangeField('associatedPc')\">\n </mat-form-field>\n </div>\n </div>\n <mat-divider></mat-divider>\n <div class=\"input-holder\">\n <div class=\"input-holder__name\">Digest credentials</div>\n <div class=\"input-holder__input\">\n <mat-form-field appearance=\"outline\">\n <input formControlName=\"digestCredentials\" matInput type=\"text\" (input)=\"onChangeField('digestCredentials')\">\n </mat-form-field>\n </div>\n </div>\n <mat-divider></mat-divider>\n <div class=\"input-holder\">\n <div class=\"input-holder__name\">User profile</div>\n <div class=\"input-holder__input\">\n <app-lazy-loading-select\n [siteId]=\"siteId\"\n [controlName]=\"'userProfile'\"\n [form]=\"user.form\"\n (changeField)=\"changeField('userProfile')\"\n [optionsToken]=\"'userProfiles'\"\n ></app-lazy-loading-select>\n </div>\n </div>\n <mat-divider></mat-divider>\n <div class=\"input-holder\">\n <div class=\"input-holder__name\">Mobile voice access</div>\n <div class=\"input-holder__input\">\n <mat-slide-toggle\n formControlName=\"enableMobileVoiceAccess\"\n (change)=\"onChangeField('enableMobileVoiceAccess')\"\n [checked]=\"user.enableMobileVoiceAccess\">\n </mat-slide-toggle>\n </div>\n </div>\n <mat-divider></mat-divider>\n <div class=\"input-holder\">\n <div class=\"input-holder__name\">Userlocale</div>\n <div class=\"input-holder__input\">\n <app-lazy-loading-select\n [siteId]=\"siteId\"\n [controlName]=\"'userLocale'\"\n [form]=\"user.form\"\n (changeField)=\"changeField($event)\"\n [optionsToken]=\"'userLocales'\"\n [default]=\"{key: '', value: 'None', disabled: false}\">\n </app-lazy-loading-select>\n </div>\n </div>\n <mat-divider></mat-divider>\n <div class=\"input-holder\">\n <div class=\"input-holder__name\">Confirm digest credentials</div>\n <div class=\"input-holder__input\">\n <mat-form-field appearance=\"outline\">\n <input formControlName=\"confirmDigestCredentials\" matInput type=\"text\" (input)=\"onChangeField('confirmDigestCredentials')\">\n </mat-form-field>\n </div>\n </div>\n </div>\n </div>\n\n <!-- USER INFO BOX-->\n <div class=\"user-info-box user-details-box\">\n <h3 class=\"user-box-title\">Contact Information</h3>\n <div class=\"form-holder__inputs\">\n <div class=\"input-holder\">\n <div class=\"input-holder__name\">Middle Name</div>\n <div class=\"input-holder__input\">\n <mat-form-field appearance=\"outline\">\n <input matInput type=\"text\" formControlName=\"middleName\" (input)=\"onChangeField('middleName')\">\n </mat-form-field>\n </div>\n </div>\n <mat-divider></mat-divider>\n <div class=\"input-holder\">\n <div class=\"input-holder__name\">Telephone Number</div>\n <div class=\"input-holder__input\">\n <mat-form-field appearance=\"outline\">\n <input matInput type=\"number\" formControlName=\"telephoneNumber\" (input)=\"onChangeField('telephoneNumber')\">\n </mat-form-field>\n </div>\n </div>\n <mat-divider></mat-divider>\n <div class=\"input-holder\">\n <div class=\"input-holder__name\">Mobile Number</div>\n <div class=\"input-holder__input\">\n <mat-form-field appearance=\"outline\">\n <input matInput type=\"number\" formControlName=\"mobileNumber\" (input)=\"onChangeField('mobileNumber')\">\n </mat-form-field>\n </div>\n </div>\n <mat-divider></mat-divider>\n <div class=\"input-holder\">\n <div class=\"input-holder__name\">Digest credentials</div>\n <div class=\"input-holder__input\">\n <mat-form-field appearance=\"outline\">\n <input matInput type=\"text\" formControlName=\"digestCredentials\" (input)=\"onChangeField('digestCredentials')\">\n </mat-form-field>\n </div>\n </div>\n <mat-divider></mat-divider>\n <div class=\"input-holder\">\n <div class=\"input-holder__name\">Diractory URI</div>\n <div class=\"input-holder__input\">\n <mat-form-field appearance=\"outline\">\n <input matInput type=\"text\" formControlName=\"directoryUri\" (input)=\"onChangeField('directoryUri')\">\n </mat-form-field>\n </div>\n </div>\n <mat-divider></mat-divider>\n <div class=\"input-holder\">\n <div class=\"input-holder__name\">Title</div>\n <div class=\"input-holder__input\">\n <mat-form-field appearance=\"outline\">\n <input matInput type=\"text\" formControlName=\"title\" (input)=\"onChangeField('title')\">\n </mat-form-field>\n </div>\n </div>\n <mat-divider></mat-divider>\n <div class=\"input-holder\">\n <div class=\"input-holder__name\">Home Number</div>\n <div class=\"input-holder__input\">\n <mat-form-field appearance=\"outline\">\n <input matInput type=\"number\" formControlName=\"homeNumber\" (input)=\"onChangeField('homeNumber')\">\n </mat-form-field>\n </div>\n </div>\n <mat-divider></mat-divider>\n <div class=\"input-holder\">\n <div class=\"input-holder__name\">Pager Number</div>\n <div class=\"input-holder__input\">\n <mat-form-field appearance=\"outline\">\n <input matInput type=\"number\" formControlName=\"pagerNumber\" (input)=\"onChangeField('pagerNumber')\">\n </mat-form-field>\n </div>\n </div>\n <mat-divider></mat-divider>\n <div class=\"input-holder\">\n <div class=\"input-holder__name\">Display Name</div>\n <div class=\"input-holder__input\">\n <mat-form-field appearance=\"outline\">\n <input matInput type=\"text\" formControlName=\"displayName\" (input)=\"onChangeField('displayName')\">\n </mat-form-field>\n </div>\n </div>\n </div>\n </div>\n\n </div>\n\n </form>\n</ng-template>\n</div>\n<div class=\"spinner-container\">\n <div *ngIf=\"dataPending == true\" class=\"data-loader\">\n <mat-spinner strokeWidth=\"3\" [diameter]=\"70\"></mat-spinner>\n </div>\n</div>\n<!--<mat-progress-spinner *ngIf=\"dataPending\"-->\n<!-- class=\"page-spinner\"-->\n<!-- mode=\"indeterminate\"-->\n<!-- [diameter]=\"120\"></mat-progress-spinner>-->\n", styles: ["@import\"https://fonts.googleapis.com/css?family=Poppins:400,100,200,300,500,600,800,700,900\";.mat-select{height:100%;line-height:35px}.mat-form-field-wrapper{padding-bottom:0!important}.mat-form-field{padding:0;max-width:300px}.fa:hover{color:#0d56aa!important}.mat-icon-button{background:transparent}.icon-webex-box{width:2rem;height:2rem;font-size:.7rem;line-height:1rem;display:inline-block;background:#d0d0d0;border-radius:2rem;line-height:40px;text-align:center}.icon-webex{filter:invert(12%) sepia(14%) saturate(4%) hue-rotate(354deg) brightness(103%) contrast(90%);background-repeat:no-repeat;background-position:center;display:inline-block;height:1rem;width:1rem}.icon-webex-user{background-image:url(../assets/icons/icon_user.svg)}.icon-user-status{display:inline-block}*{margin:0}body{background:#f7f7f7}body,th,td{font-family:Poppins,Poppins,sans-serif;font-size:14px}th{color:#0000008a;text-align:left}td{box-sizing:border-box;padding:10px 5px 10px 0}.content-box{margin:auto;position:relative;width:95%}.content-box table{width:100%}.edit-icon-td{width:50px;position:relative}.edit-icon-td button{position:absolute;top:4px}.mat-progress-spinner circle,.mat-spinner circle{stroke:gray!important}.data-loader{position:absolute;top:calc(50% - 25px);left:calc(50% - 25px)}.flex-box{display:flex;justify-content:flex-start}.spinner-container{width:100%;display:flex;justify-content:center;align-items:center}.spinner-container ::ng-deep .mat-progress-spinner circle,.mat-spinner circle{stroke:#000}.user-info-box{background:white;display:grid;grid-template-columns:30% 70%;border-radius:8px;border:rgba(0,0,0,.2) 1px solid;padding:24px;font-weight:400;font-size:14px}.user-info-box h3{display:block;font-weight:500;font-size:16px}.mat-divider{margin:5px 0!important}.info-boxes-container{padding:24px 0;display:flex;flex-direction:column;gap:24px}.header-box{height:60px;width:100%;line-height:60px;background:white;border-bottom:1px solid #dedddd}.header-box .header-back-block{float:left}.header-box .header-button-block{float:right}.webex-table{width:100%;margin:auto}.webex-table tr{border-bottom:1px solid #dedede}.webex-table th{background:#f7f7f7;color:#636363;font-size:12px}.webex-table td{background:#fff;color:#636363;font-size:14px}.webex-table tr:hover td{background:#ededed;cursor:pointer}.webex-table th.mat-header-cell,.webex-table td.mat-cell,.webex-table td.mat-footer-cell{border-bottom:1px solid #dedede}.webex-table tr.mat-header-row{height:37px}.mat-form-field{padding:0 0 5px;width:93%}.mat-form-field.mat-form-field-disabled{border-bottom:none}.mat-error{color:#c73636;margin:13px 0 0}.select-box{border-radius:30px;background:#F3F6F6;border:1px solid #E2E9EF;height:35px;position:relative}.select-box select{border:none!important;background:transparent;height:100%;width:92%;margin:auto;display:block}option:focus,option:focus-visible{border:none!important;outline:none!important}option{height:30px;cursor:pointer;color:#636363}option:hover{background:#ededed!important}.mat-select{height:100%!important;line-height:35px!important}.info-holder,.input-holder{display:grid;grid-template-columns:30% 70%;align-items:baseline}.info-holder__name,.input-holder__name{font-weight:500!important;font-size:14px!important}.info-holder__inputs .input-holder,.input-holder__inputs .input-holder{display:grid;grid-template-columns:30% 70%;align-items:baseline}.info-holder__inputs .input-holder__name,.input-holder__inputs .input-holder__name{font-weight:400!important;font-size:14px!important}.mat-form-field-wrapper,.mat-form-field-flex{height:30px!important}.mat-form-field-appearance-outline .mat-form-field-outline,.mat-form-field-outline .mat-form-field-outline-thick{height:35px!important}.mat-select{line-height:20px!important}.mat-form-field-appearance-outline .mat-form-field-infix{padding:14px 12px 10px;border-top:0;max-width:300px}.mat-tab-group{font-family:Inter,sans-serif}.mat-tab-label{font-weight:500!important;font-size:14px!important;height:auto!important;min-width:auto!important;padding:0!important}.mat-ink-bar{background-color:#000000e6!important;height:3px!important}.mat-form-field-wrapper{padding-bottom:0}.mat-form-field{max-width:300px}table{border-collapse:collapse;border-spacing:0}.mat-form-field-appearance-outline .mat-form-field-infix{padding:0!important}.mat-divider{margin:12px 0}::ng-deep .mat-form-field-wrapper{height:30px}::ng-deep .mat-form-field-flex{height:30px}::ng-deep .mat-form-field-appearance-outline .mat-form-field-outline{height:35px}:ng-deep .mat-form-field-outline .mat-form-field-outline-thick{height:35px}::ng-deep .mat-select{line-height:20px}::ng-deep .mat-form-field-infix{border-top:0px!important}\n"], dependencies: [{ kind: "directive", type: i3.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i3.NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }, { kind: "directive", type: i4.ɵNgNoValidate, selector: "form:not([ngNoForm]):not([ngNativeValidate])" }, { kind: "directive", type: i4.DefaultValueAccessor, selector: "input:not([type=checkbox])[formControlName],textarea[formControlName],input:not([type=checkbox])[formControl],textarea[formControl],input:not([type=checkbox])[ngModel],textarea[ngModel],[ngDefaultControl]" }, { kind: "directive", type: i4.NumberValueAccessor, selector: "input[type=number][formControlName],input[type=number][formControl],input[type=number][ngModel]" }, { kind: "directive", type: i4.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i4.NgControlStatusGroup, selector: "[formGroupName],[formArrayName],[ngModelGroup],[formGroup],form:not([ngNoForm]),[ngForm]" }, { kind: "directive", type: i4.FormGroupDirective, selector: "[formGroup]", inputs: ["formGroup"], outputs: ["ngSubmit"], exportAs: ["ngForm"] }, { kind: "directive", type: i4.FormControlName, selector: "[formControlName]", inputs: ["formControlName", "disabled", "ngModel"], outputs: ["ngModelChange"] }, { kind: "component", type: i5.MatDivider, selector: "mat-divider", inputs: ["vertical", "inset"] }, { kind: "component", type: i6.MatProgressSpinner, selector: "mat-progress-spinner, mat-spinner", inputs: ["color", "diameter", "strokeWidth", "mode", "value"], exportAs: ["matProgressSpinner"] }, { kind: "directive", type: i7.MatError, selector: "mat-error", inputs: ["id"] }, { kind: "component", type: i7.MatFormField, selector: "mat-form-field", inputs: ["color", "appearance", "hideRequiredMarker", "hintLabel", "floatLabel"], exportAs: ["matFormField"] }, { kind: "directive", type: i8.MatInput, selector: "input[matInput], textarea[matInput], select[matNativeControl], input[matNativeControl], textarea[matNativeControl]", inputs: ["disabled", "id", "placeholder", "name", "required", "type", "errorStateMatcher", "aria-describedby", "value", "readonly"], exportAs: ["matInput"] }, { kind: "component", type: i9.MatTabGroup, selector: "mat-tab-group", inputs: ["color", "disableRipple"], exportAs: ["matTabGroup"] }, { kind: "component", type: i9.MatTab, selector: "mat-tab", inputs: ["disabled", "label", "aria-label", "aria-labelledby", "labelClass", "bodyClass"], exportAs: ["matTab"] }, { kind: "component", type: i10.MatSlideToggle, selector: "mat-slide-toggle", inputs: ["disabled", "disableRipple", "color", "tabIndex"], exportAs: ["matSlideToggle"] }, { kind: "component", type: i11.UserInfoComponent, selector: "app-user-info", inputs: ["name", "active", "email", "position"] }, { kind: "component", type: i12.LazyLoadingSelectComponent, selector: "app-lazy-loading-select", inputs: ["siteId", "form", "standalone", "placeholder", "controlName", "optionsToken", "appearance", "errorCode", "errorText", "default", "id"], outputs: ["changeField"] }] });
154
157
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.10", ngImport: i0, type: UserManageWidgetComponent, decorators: [{
155
158
  type: Component,
156
- args: [{ selector: 'app-user-manage-widget', template: "<div class=\"header-box\">\n <div class=\"content-box\">\n <div class=\"header-back-block\">\n <svg width=\"16\" height=\"16\" viewBox=\"0 0 16 16\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\">\n <path d=\"M5.70746 7.99987L11.3539 2.35352C11.4453 2.25928 11.496 2.13287 11.495 2.00159C11.494 1.8703 11.4414 1.74467 11.3486 1.65183C11.2558 1.55899 11.1301 1.50639 10.9988 1.50539C10.8676 1.50438 10.7411 1.55506 10.6469 1.64647L4.64691 7.64647C4.55316 7.74023 4.50049 7.8674 4.50049 7.99999C4.50049 8.13259 4.55316 8.25975 4.64691 8.35352L10.6469 14.3535C10.6931 14.4011 10.7482 14.439 10.8092 14.4651C10.8702 14.4912 10.9357 14.5049 11.002 14.5054C11.0683 14.5059 11.134 14.4932 11.1954 14.468C11.2567 14.4429 11.3125 14.4058 11.3593 14.3589C11.4062 14.312 11.4433 14.2563 11.4685 14.1949C11.4936 14.1336 11.5063 14.0679 11.5058 14.0016C11.5053 13.9353 11.4916 13.8697 11.4655 13.8088C11.4394 13.7478 11.4015 13.6926 11.3539 13.6465L5.70746 7.99987Z\" fill=\"black\" fill-opacity=\"0.95\"/>\n </svg>\n Users\n </div>\n<!-- <div class=\"header-button-block\">-->\n<!-- <button mat-raised-button-->\n<!-- [disabled]=\"!userService.hasUnsavedChanges()\"-->\n<!-- (click)=\"saveChanges()\">Save</button>-->\n<!-- </div>-->\n </div>\n</div>\n<app-user-info *ngIf=\"user\" [name]=\"userName\" [email]=\"user.email\" [active]=\"false\" [position]=\"'Sales Senior VP'\"></app-user-info>\n\n<mat-tab-group disableRipple class=\"content-box\">\n <mat-tab label=\"Profile\">\n <ng-container *ngTemplateOutlet=\"userProfile\">\n </ng-container>\n </mat-tab>\n <mat-tab label=\"Devices\" [disabled]=\"true\"></mat-tab>\n <mat-tab label=\"Lines\" [disabled]=\"true\"></mat-tab>\n <mat-tab label=\"Features\" [disabled]=\"true\"></mat-tab>\n</mat-tab-group>\n\n<ng-template #userProfile>\n <form *ngIf=\"user && form\" [formGroup]=\"form\">\n <div class=\"info-boxes-container\">\n <div *ngIf=\"dataPending == true\" class=\"data-loader\">\n <mat-spinner [diameter]=\"50\"></mat-spinner>\n </div>\n\n <!-- USER INFO BOX-->\n <div class=\"user-info-box user-details-box\">\n <h3 class=\"user-box-title\">User General Info</h3>\n <div class=\"form-holder__inputs\">\n <div class=\"input-holder\">\n <div class=\"input-holder__name\">User Id</div>\n <div class=\"input-holder__input\">\n <mat-form-field appearance=\"outline\">\n <input formControlName=\"userid\"\n matInput (input)=\"onChangeField('userid')\">\n <mat-error\n *ngIf=\"form.get('userid').hasError('required')\">\n <i class=\"fa fa-exclamation-triangle\"></i>\n This field is required\n </mat-error>\n <mat-error *ngIf=\"form.get('userid').hasError('exist')\">\n <i class=\"fa fa-exclamation-triangle\"></i>\n User ID already exists\n </mat-error>\n </mat-form-field>\n </div>\n </div>\n <mat-divider></mat-divider>\n <div class=\"input-holder\">\n <div class=\"input-holder__name\">Email</div>\n <div class=\"input-holder__input\">\n <mat-form-field appearance=\"outline\">\n <input formControlName=\"email\"\n matInput (input)=\"onChangeField('email')\">\n <mat-error\n *ngIf=\"form.get('email').touched && form.get('email').hasError('required')\">\n <i class=\"fa fa-exclamation-triangle\"></i>\n This field is required\n </mat-error>\n <mat-error *ngIf=\"form.get('email').touched && form.get('email').hasError('pattern')\">\n <i class=\"fa fa-exclamation-triangle\"></i>\n Please enter valid email\n </mat-error>\n </mat-form-field>\n </div>\n </div>\n <mat-divider></mat-divider>\n <div class=\"input-holder\">\n <div class=\"input-holder__name\">Fisrt Name</div>\n <div class=\"input-holder__input\">\n <mat-form-field appearance=\"outline\">\n <input formControlName=\"firstName\"\n matInput (input)=\"onChangeField('firstName')\">\n </mat-form-field>\n </div>\n </div>\n <mat-divider></mat-divider>\n <div class=\"input-holder\">\n <div class=\"input-holder__name\">Last Name</div>\n <div class=\"input-holder__input\">\n <mat-form-field appearance=\"outline\">\n <input formControlName=\"lastName\"\n matInput (input)=\"onChangeField('lastName')\">\n <mat-error\n *ngIf=\"form.get('lastName').touched && form.get('lastName').hasError('required')\">\n <i class=\"fa fa-exclamation-triangle\"></i>\n This field is required\n </mat-error>\n </mat-form-field>\n </div>\n </div>\n <mat-divider></mat-divider>\n </div>\n\n </div>\n\n\n <!-- USER INFO BOX-->\n <div class=\"user-info-box user-details-box\">\n <h3 class=\"user-box-title\">User General Info</h3>\n <div class=\"form-holder__inputs\">\n <div class=\"input-holder\">\n <div class=\"input-holder__name\">Department</div>\n <div class=\"input-holder__input\">\n <mat-form-field appearance=\"outline\">\n <input formControlName=\"department\" matInput type=\"text\" (input)=\"onChangeField('department')\">\n </mat-form-field>\n </div>\n </div>\n <mat-divider></mat-divider>\n <div class=\"input-holder\">\n <div class=\"input-holder__name\">Manager user ID</div>\n <div class=\"input-holder__input\">\n <mat-form-field appearance=\"outline\">\n <input formControlName=\"manager\" matInput type=\"text\" (input)=\"onChangeField('manager')\">\n </mat-form-field>\n </div>\n </div>\n <mat-divider></mat-divider>\n <div class=\"input-holder\">\n <div class=\"input-holder__name\">Associated PC</div>\n <div class=\"input-holder__input\">\n <mat-form-field appearance=\"outline\">\n <input formControlName=\"associatedPc\" matInput type=\"text\" (input)=\"onChangeField('associatedPc')\">\n </mat-form-field>\n </div>\n </div>\n <mat-divider></mat-divider>\n <div class=\"input-holder\">\n <div class=\"input-holder__name\">Digest credentials</div>\n <div class=\"input-holder__input\">\n <mat-form-field appearance=\"outline\">\n <input formControlName=\"digestCredentials\" matInput type=\"text\" (input)=\"onChangeField('digestCredentials')\">\n </mat-form-field>\n </div>\n </div>\n <mat-divider></mat-divider>\n <div class=\"input-holder\">\n <div class=\"input-holder__name\">User profile</div>\n <div class=\"input-holder__input\">\n <app-lazy-loading-select\n [siteId]=\"siteId\"\n [controlName]=\"'userProfile'\"\n [form]=\"user.form\"\n (changeField)=\"changeField('userProfile')\"\n [optionsToken]=\"'userProfiles'\"\n ></app-lazy-loading-select>\n </div>\n </div>\n <mat-divider></mat-divider>\n <div class=\"input-holder\">\n <div class=\"input-holder__name\">Mobile voice access</div>\n <div class=\"input-holder__input\">\n <mat-slide-toggle\n formControlName=\"enableMobileVoiceAccess\"\n (change)=\"onChangeField('enableMobileVoiceAccess')\"\n [checked]=\"user.enableMobileVoiceAccess\">\n </mat-slide-toggle>\n </div>\n </div>\n <mat-divider></mat-divider>\n <div class=\"input-holder\">\n <div class=\"input-holder__name\">Userlocale</div>\n <div class=\"input-holder__input\">\n <app-lazy-loading-select\n [siteId]=\"siteId\"\n [controlName]=\"'userLocale'\"\n [form]=\"user.form\"\n (changeField)=\"changeField($event)\"\n [optionsToken]=\"'userLocales'\"\n [default]=\"{key: '', value: 'None', disabled: false}\">\n </app-lazy-loading-select>\n </div>\n </div>\n <mat-divider></mat-divider>\n <div class=\"input-holder\">\n <div class=\"input-holder__name\">Confirm digest credentials</div>\n <div class=\"input-holder__input\">\n <mat-form-field appearance=\"outline\">\n <input formControlName=\"confirmDigestCredentials\" matInput type=\"text\" (input)=\"onChangeField('confirmDigestCredentials')\">\n </mat-form-field>\n </div>\n </div>\n </div>\n </div>\n\n <!-- USER INFO BOX-->\n <div class=\"user-info-box user-details-box\">\n <h3 class=\"user-box-title\">Contact Information</h3>\n <div class=\"form-holder__inputs\">\n <div class=\"input-holder\">\n <div class=\"input-holder__name\">Middle Name</div>\n <div class=\"input-holder__input\">\n <mat-form-field appearance=\"outline\">\n <input matInput type=\"text\" formControlName=\"middleName\" (input)=\"onChangeField('middleName')\">\n </mat-form-field>\n </div>\n </div>\n <mat-divider></mat-divider>\n <div class=\"input-holder\">\n <div class=\"input-holder__name\">Telephone Number</div>\n <div class=\"input-holder__input\">\n <mat-form-field appearance=\"outline\">\n <input matInput type=\"number\" formControlName=\"telephoneNumber\" (input)=\"onChangeField('telephoneNumber')\">\n </mat-form-field>\n </div>\n </div>\n <mat-divider></mat-divider>\n <div class=\"input-holder\">\n <div class=\"input-holder__name\">Mobile Number</div>\n <div class=\"input-holder__input\">\n <mat-form-field appearance=\"outline\">\n <input matInput type=\"number\" formControlName=\"mobileNumber\" (input)=\"onChangeField('mobileNumber')\">\n </mat-form-field>\n </div>\n </div>\n <mat-divider></mat-divider>\n <div class=\"input-holder\">\n <div class=\"input-holder__name\">Digest credentials</div>\n <div class=\"input-holder__input\">\n <mat-form-field appearance=\"outline\">\n <input matInput type=\"text\" formControlName=\"digestCredentials\" (input)=\"onChangeField('digestCredentials')\">\n </mat-form-field>\n </div>\n </div>\n <mat-divider></mat-divider>\n <div class=\"input-holder\">\n <div class=\"input-holder__name\">Diractory URI</div>\n <div class=\"input-holder__input\">\n <mat-form-field appearance=\"outline\">\n <input matInput type=\"text\" formControlName=\"directoryUri\" (input)=\"onChangeField('directoryUri')\">\n </mat-form-field>\n </div>\n </div>\n <mat-divider></mat-divider>\n <div class=\"input-holder\">\n <div class=\"input-holder__name\">Title</div>\n <div class=\"input-holder__input\">\n <mat-form-field appearance=\"outline\">\n <input matInput type=\"text\" formControlName=\"title\" (input)=\"onChangeField('title')\">\n </mat-form-field>\n </div>\n </div>\n <mat-divider></mat-divider>\n <div class=\"input-holder\">\n <div class=\"input-holder__name\">Home Number</div>\n <div class=\"input-holder__input\">\n <mat-form-field appearance=\"outline\">\n <input matInput type=\"number\" formControlName=\"homeNumber\" (input)=\"onChangeField('homeNumber')\">\n </mat-form-field>\n </div>\n </div>\n <mat-divider></mat-divider>\n <div class=\"input-holder\">\n <div class=\"input-holder__name\">Pager Number</div>\n <div class=\"input-holder__input\">\n <mat-form-field appearance=\"outline\">\n <input matInput type=\"number\" formControlName=\"pagerNumber\" (input)=\"onChangeField('pagerNumber')\">\n </mat-form-field>\n </div>\n </div>\n <mat-divider></mat-divider>\n <div class=\"input-holder\">\n <div class=\"input-holder__name\">Display Name</div>\n <div class=\"input-holder__input\">\n <mat-form-field appearance=\"outline\">\n <input matInput type=\"text\" formControlName=\"displayName\" (input)=\"onChangeField('displayName')\">\n </mat-form-field>\n </div>\n </div>\n </div>\n </div>\n\n </div>\n\n </form>\n</ng-template>\n\n<mat-progress-spinner *ngIf=\"dataPending\"\n class=\"page-spinner\"\n mode=\"indeterminate\"\n [diameter]=\"120\"></mat-progress-spinner>\n", styles: ["@import\"https://fonts.googleapis.com/css?family=Poppins:400,100,200,300,500,600,800,700,900\";.mat-select{height:100%;line-height:35px}.mat-form-field-wrapper{padding-bottom:0!important}.mat-form-field{padding:0;max-width:300px}.fa:hover{color:#0d56aa!important}.mat-icon-button{background:transparent}.icon-webex-box{width:2rem;height:2rem;font-size:.7rem;line-height:1rem;display:inline-block;background:#d0d0d0;border-radius:2rem;line-height:40px;text-align:center}.icon-webex{filter:invert(12%) sepia(14%) saturate(4%) hue-rotate(354deg) brightness(103%) contrast(90%);background-repeat:no-repeat;background-position:center;display:inline-block;height:1rem;width:1rem}.icon-webex-user{background-image:url(../assets/icons/icon_user.svg)}.icon-user-status{display:inline-block}*{margin:0}body{background:#f7f7f7}body,th,td{font-family:Poppins,Poppins,sans-serif;font-size:14px}th{color:#0000008a;text-align:left}td{box-sizing:border-box;padding:10px 5px 10px 0}.content-box{margin:auto;position:relative;width:95%}.content-box table{width:100%}.edit-icon-td{width:50px;position:relative}.edit-icon-td button{position:absolute;top:4px}.mat-progress-spinner circle,.mat-spinner circle{stroke:#009fdb!important}.data-loader{position:absolute;top:calc(50% - 25px);left:calc(50% - 25px)}.flex-box{display:flex;justify-content:flex-start}.user-info-box{background:white;display:grid;grid-template-columns:30% 70%;border-radius:8px;border:rgba(0,0,0,.2) 1px solid;padding:24px;font-weight:400;font-size:14px}.user-info-box h3{display:block;font-weight:500;font-size:16px}.mat-divider{margin:5px 0!important}.info-boxes-container{padding:24px 0;display:flex;flex-direction:column;gap:24px}.header-box{height:60px;width:100%;line-height:60px;background:white;border-bottom:1px solid #dedddd}.header-box .header-back-block{float:left}.header-box .header-button-block{float:right}.webex-table{width:100%;margin:auto}.webex-table tr{border-bottom:1px solid #dedede}.webex-table th{background:#f7f7f7;color:#636363;font-size:12px}.webex-table td{background:#fff;color:#636363;font-size:14px}.webex-table tr:hover td{background:#ededed;cursor:pointer}.webex-table th.mat-header-cell,.webex-table td.mat-cell,.webex-table td.mat-footer-cell{border-bottom:1px solid #dedede}.webex-table tr.mat-header-row{height:37px}.mat-form-field{padding:0 0 5px;width:93%}.mat-form-field.mat-form-field-disabled{border-bottom:none}.mat-error{color:#c73636;margin:13px 0 0}.select-box{border-radius:30px;background:#F3F6F6;border:1px solid #E2E9EF;height:35px;position:relative}.select-box select{border:none!important;background:transparent;height:100%;width:92%;margin:auto;display:block}option:focus,option:focus-visible{border:none!important;outline:none!important}option{height:30px;cursor:pointer;color:#636363}option:hover{background:#ededed!important}.mat-select{height:100%!important;line-height:35px!important}.info-holder,.input-holder{display:grid;grid-template-columns:30% 70%;align-items:baseline}.info-holder__name,.input-holder__name{font-weight:500!important;font-size:14px!important}.info-holder__inputs .input-holder,.input-holder__inputs .input-holder{display:grid;grid-template-columns:30% 70%;align-items:baseline}.info-holder__inputs .input-holder__name,.input-holder__inputs .input-holder__name{font-weight:400!important;font-size:14px!important}.mat-form-field-wrapper,.mat-form-field-flex{height:30px!important}.mat-form-field-appearance-outline .mat-form-field-outline,.mat-form-field-outline .mat-form-field-outline-thick{height:35px!important}.mat-select{line-height:20px!important}.mat-form-field-appearance-outline .mat-form-field-infix{padding:14px 12px 10px;border-top:0;max-width:300px}.mat-tab-group{font-family:Inter,sans-serif}.mat-tab-label{font-weight:500!important;font-size:14px!important;height:auto!important;min-width:auto!important;padding:0!important}.mat-ink-bar{background-color:#000000e6!important;height:3px!important}.mat-form-field-wrapper{padding-bottom:0}.mat-form-field{max-width:300px}table{border-collapse:collapse;border-spacing:0}.mat-form-field-appearance-outline .mat-form-field-infix{padding:0!important}.mat-divider{margin:12px 0}::ng-deep .mat-form-field-wrapper{height:30px}::ng-deep .mat-form-field-flex{height:30px}::ng-deep .mat-form-field-appearance-outline .mat-form-field-outline{height:35px}:ng-deep .mat-form-field-outline .mat-form-field-outline-thick{height:35px}::ng-deep .mat-select{line-height:20px}::ng-deep .mat-form-field-infix{border-top:0px!important}\n"] }]
159
+ args: [{ selector: 'app-user-manage-widget', template: "<div *ngIf=\"dataPending == false\">\n<div class=\"header-box\">\n <div class=\"content-box\">\n <div class=\"header-back-block\">\n <svg width=\"16\" height=\"16\" viewBox=\"0 0 16 16\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\">\n <path d=\"M5.70746 7.99987L11.3539 2.35352C11.4453 2.25928 11.496 2.13287 11.495 2.00159C11.494 1.8703 11.4414 1.74467 11.3486 1.65183C11.2558 1.55899 11.1301 1.50639 10.9988 1.50539C10.8676 1.50438 10.7411 1.55506 10.6469 1.64647L4.64691 7.64647C4.55316 7.74023 4.50049 7.8674 4.50049 7.99999C4.50049 8.13259 4.55316 8.25975 4.64691 8.35352L10.6469 14.3535C10.6931 14.4011 10.7482 14.439 10.8092 14.4651C10.8702 14.4912 10.9357 14.5049 11.002 14.5054C11.0683 14.5059 11.134 14.4932 11.1954 14.468C11.2567 14.4429 11.3125 14.4058 11.3593 14.3589C11.4062 14.312 11.4433 14.2563 11.4685 14.1949C11.4936 14.1336 11.5063 14.0679 11.5058 14.0016C11.5053 13.9353 11.4916 13.8697 11.4655 13.8088C11.4394 13.7478 11.4015 13.6926 11.3539 13.6465L5.70746 7.99987Z\" fill=\"black\" fill-opacity=\"0.95\"/>\n </svg>\n Users\n </div>\n<!-- <div class=\"header-button-block\">-->\n<!-- <button mat-raised-button-->\n<!-- [disabled]=\"!userService.hasUnsavedChanges()\"-->\n<!-- (click)=\"saveChanges()\">Save</button>-->\n<!-- </div>-->\n </div>\n</div>\n<app-user-info *ngIf=\"user\" [name]=\"userName\" [email]=\"user.email\" [active]=\"false\" [position]=\"'Sales Senior VP'\"></app-user-info>\n\n<mat-tab-group disableRipple class=\"content-box\">\n <mat-tab label=\"Profile\">\n <ng-container *ngTemplateOutlet=\"userProfile\">\n </ng-container>\n </mat-tab>\n <mat-tab label=\"Devices\" [disabled]=\"true\"></mat-tab>\n <mat-tab label=\"Lines\" [disabled]=\"true\"></mat-tab>\n <mat-tab label=\"Features\" [disabled]=\"true\"></mat-tab>\n</mat-tab-group>\n\n<ng-template #userProfile>\n <form *ngIf=\"user && form\" [formGroup]=\"form\">\n <div class=\"info-boxes-container\">\n <!-- USER INFO BOX-->\n <div class=\"user-info-box user-details-box\">\n <h3 class=\"user-box-title\">User Details</h3>\n <div class=\"form-holder__inputs\">\n <div class=\"input-holder\">\n <div class=\"input-holder__name\">User Id</div>\n <div class=\"input-holder__input\">\n <mat-form-field appearance=\"outline\">\n <input formControlName=\"userid\" [disabled]=\"this.isLdap() ? '' : false\" [readonly]=\"this.isLdap() ? '' : false\"\n matInput (input)=\"onChangeField('userid')\">\n <mat-error\n *ngIf=\"form.get('userid').hasError('required')\">\n <i class=\"fa fa-exclamation-triangle\"></i>\n This field is required\n </mat-error>\n <mat-error *ngIf=\"form.get('userid').hasError('exist')\">\n <i class=\"fa fa-exclamation-triangle\"></i>\n User ID already exists\n </mat-error>\n </mat-form-field>\n </div>\n </div>\n <mat-divider></mat-divider>\n <div class=\"input-holder\">\n <div class=\"input-holder__name\">Email</div>\n <div class=\"input-holder__input\">\n <mat-form-field appearance=\"outline\">\n <input formControlName=\"email\"\n [disabled]=\"this.isLdap() ? '' : false\" [readonly]=\"this.isLdap() ? '' : false\"\n matInput (input)=\"onChangeField('email')\">\n <mat-error\n *ngIf=\"form.get('email').touched && form.get('email').hasError('required')\">\n <i class=\"fa fa-exclamation-triangle\"></i>\n This field is required\n </mat-error>\n <mat-error *ngIf=\"form.get('email').touched && form.get('email').hasError('pattern')\">\n <i class=\"fa fa-exclamation-triangle\"></i>\n Please enter valid email\n </mat-error>\n </mat-form-field>\n </div>\n </div>\n <mat-divider></mat-divider>\n <div class=\"input-holder\">\n <div class=\"input-holder__name\">Fisrt Name</div>\n <div class=\"input-holder__input\">\n <mat-form-field appearance=\"outline\">\n <input formControlName=\"firstName\"\n [disabled]=\"this.isLdap() ? '' : false\" [readonly]=\"this.isLdap() ? '' : false\"\n matInput (input)=\"onChangeField('firstName')\">\n </mat-form-field>\n </div>\n </div>\n <mat-divider></mat-divider>\n <div class=\"input-holder\">\n <div class=\"input-holder__name\">Last Name</div>\n <div class=\"input-holder__input\">\n <mat-form-field appearance=\"outline\">\n <input formControlName=\"lastName\"\n [disabled]=\"this.isLdap() ? '' : false\" [readonly]=\"this.isLdap() ? '' : false\"\n matInput (input)=\"onChangeField('lastName')\">\n <mat-error\n *ngIf=\"form.get('lastName').touched && form.get('lastName').hasError('required')\">\n <i class=\"fa fa-exclamation-triangle\"></i>\n This field is required\n </mat-error>\n </mat-form-field>\n </div>\n </div>\n <mat-divider></mat-divider>\n </div>\n\n </div>\n\n\n <!-- USER INFO BOX-->\n <div class=\"user-info-box user-details-box\">\n <h3 class=\"user-box-title\">General User Info</h3>\n <div class=\"form-holder__inputs\">\n <div class=\"input-holder\">\n <div class=\"input-holder__name\">Department</div>\n <div class=\"input-holder__input\">\n <mat-form-field appearance=\"outline\">\n <input formControlName=\"department\" matInput type=\"text\" (input)=\"onChangeField('department')\">\n </mat-form-field>\n </div>\n </div>\n <mat-divider></mat-divider>\n <div class=\"input-holder\">\n <div class=\"input-holder__name\">Manager user ID</div>\n <div class=\"input-holder__input\">\n <mat-form-field appearance=\"outline\">\n <input formControlName=\"manager\" matInput type=\"text\" (input)=\"onChangeField('manager')\">\n </mat-form-field>\n </div>\n </div>\n <mat-divider></mat-divider>\n <div class=\"input-holder\">\n <div class=\"input-holder__name\">Associated PC</div>\n <div class=\"input-holder__input\">\n <mat-form-field appearance=\"outline\">\n <input formControlName=\"associatedPc\" matInput type=\"text\" (input)=\"onChangeField('associatedPc')\">\n </mat-form-field>\n </div>\n </div>\n <mat-divider></mat-divider>\n <div class=\"input-holder\">\n <div class=\"input-holder__name\">Digest credentials</div>\n <div class=\"input-holder__input\">\n <mat-form-field appearance=\"outline\">\n <input formControlName=\"digestCredentials\" matInput type=\"text\" (input)=\"onChangeField('digestCredentials')\">\n </mat-form-field>\n </div>\n </div>\n <mat-divider></mat-divider>\n <div class=\"input-holder\">\n <div class=\"input-holder__name\">User profile</div>\n <div class=\"input-holder__input\">\n <app-lazy-loading-select\n [siteId]=\"siteId\"\n [controlName]=\"'userProfile'\"\n [form]=\"user.form\"\n (changeField)=\"changeField('userProfile')\"\n [optionsToken]=\"'userProfiles'\"\n ></app-lazy-loading-select>\n </div>\n </div>\n <mat-divider></mat-divider>\n <div class=\"input-holder\">\n <div class=\"input-holder__name\">Mobile voice access</div>\n <div class=\"input-holder__input\">\n <mat-slide-toggle\n formControlName=\"enableMobileVoiceAccess\"\n (change)=\"onChangeField('enableMobileVoiceAccess')\"\n [checked]=\"user.enableMobileVoiceAccess\">\n </mat-slide-toggle>\n </div>\n </div>\n <mat-divider></mat-divider>\n <div class=\"input-holder\">\n <div class=\"input-holder__name\">Userlocale</div>\n <div class=\"input-holder__input\">\n <app-lazy-loading-select\n [siteId]=\"siteId\"\n [controlName]=\"'userLocale'\"\n [form]=\"user.form\"\n (changeField)=\"changeField($event)\"\n [optionsToken]=\"'userLocales'\"\n [default]=\"{key: '', value: 'None', disabled: false}\">\n </app-lazy-loading-select>\n </div>\n </div>\n <mat-divider></mat-divider>\n <div class=\"input-holder\">\n <div class=\"input-holder__name\">Confirm digest credentials</div>\n <div class=\"input-holder__input\">\n <mat-form-field appearance=\"outline\">\n <input formControlName=\"confirmDigestCredentials\" matInput type=\"text\" (input)=\"onChangeField('confirmDigestCredentials')\">\n </mat-form-field>\n </div>\n </div>\n </div>\n </div>\n\n <!-- USER INFO BOX-->\n <div class=\"user-info-box user-details-box\">\n <h3 class=\"user-box-title\">Contact Information</h3>\n <div class=\"form-holder__inputs\">\n <div class=\"input-holder\">\n <div class=\"input-holder__name\">Middle Name</div>\n <div class=\"input-holder__input\">\n <mat-form-field appearance=\"outline\">\n <input matInput type=\"text\" formControlName=\"middleName\" (input)=\"onChangeField('middleName')\">\n </mat-form-field>\n </div>\n </div>\n <mat-divider></mat-divider>\n <div class=\"input-holder\">\n <div class=\"input-holder__name\">Telephone Number</div>\n <div class=\"input-holder__input\">\n <mat-form-field appearance=\"outline\">\n <input matInput type=\"number\" formControlName=\"telephoneNumber\" (input)=\"onChangeField('telephoneNumber')\">\n </mat-form-field>\n </div>\n </div>\n <mat-divider></mat-divider>\n <div class=\"input-holder\">\n <div class=\"input-holder__name\">Mobile Number</div>\n <div class=\"input-holder__input\">\n <mat-form-field appearance=\"outline\">\n <input matInput type=\"number\" formControlName=\"mobileNumber\" (input)=\"onChangeField('mobileNumber')\">\n </mat-form-field>\n </div>\n </div>\n <mat-divider></mat-divider>\n <div class=\"input-holder\">\n <div class=\"input-holder__name\">Digest credentials</div>\n <div class=\"input-holder__input\">\n <mat-form-field appearance=\"outline\">\n <input matInput type=\"text\" formControlName=\"digestCredentials\" (input)=\"onChangeField('digestCredentials')\">\n </mat-form-field>\n </div>\n </div>\n <mat-divider></mat-divider>\n <div class=\"input-holder\">\n <div class=\"input-holder__name\">Diractory URI</div>\n <div class=\"input-holder__input\">\n <mat-form-field appearance=\"outline\">\n <input matInput type=\"text\" formControlName=\"directoryUri\" (input)=\"onChangeField('directoryUri')\">\n </mat-form-field>\n </div>\n </div>\n <mat-divider></mat-divider>\n <div class=\"input-holder\">\n <div class=\"input-holder__name\">Title</div>\n <div class=\"input-holder__input\">\n <mat-form-field appearance=\"outline\">\n <input matInput type=\"text\" formControlName=\"title\" (input)=\"onChangeField('title')\">\n </mat-form-field>\n </div>\n </div>\n <mat-divider></mat-divider>\n <div class=\"input-holder\">\n <div class=\"input-holder__name\">Home Number</div>\n <div class=\"input-holder__input\">\n <mat-form-field appearance=\"outline\">\n <input matInput type=\"number\" formControlName=\"homeNumber\" (input)=\"onChangeField('homeNumber')\">\n </mat-form-field>\n </div>\n </div>\n <mat-divider></mat-divider>\n <div class=\"input-holder\">\n <div class=\"input-holder__name\">Pager Number</div>\n <div class=\"input-holder__input\">\n <mat-form-field appearance=\"outline\">\n <input matInput type=\"number\" formControlName=\"pagerNumber\" (input)=\"onChangeField('pagerNumber')\">\n </mat-form-field>\n </div>\n </div>\n <mat-divider></mat-divider>\n <div class=\"input-holder\">\n <div class=\"input-holder__name\">Display Name</div>\n <div class=\"input-holder__input\">\n <mat-form-field appearance=\"outline\">\n <input matInput type=\"text\" formControlName=\"displayName\" (input)=\"onChangeField('displayName')\">\n </mat-form-field>\n </div>\n </div>\n </div>\n </div>\n\n </div>\n\n </form>\n</ng-template>\n</div>\n<div class=\"spinner-container\">\n <div *ngIf=\"dataPending == true\" class=\"data-loader\">\n <mat-spinner strokeWidth=\"3\" [diameter]=\"70\"></mat-spinner>\n </div>\n</div>\n<!--<mat-progress-spinner *ngIf=\"dataPending\"-->\n<!-- class=\"page-spinner\"-->\n<!-- mode=\"indeterminate\"-->\n<!-- [diameter]=\"120\"></mat-progress-spinner>-->\n", styles: ["@import\"https://fonts.googleapis.com/css?family=Poppins:400,100,200,300,500,600,800,700,900\";.mat-select{height:100%;line-height:35px}.mat-form-field-wrapper{padding-bottom:0!important}.mat-form-field{padding:0;max-width:300px}.fa:hover{color:#0d56aa!important}.mat-icon-button{background:transparent}.icon-webex-box{width:2rem;height:2rem;font-size:.7rem;line-height:1rem;display:inline-block;background:#d0d0d0;border-radius:2rem;line-height:40px;text-align:center}.icon-webex{filter:invert(12%) sepia(14%) saturate(4%) hue-rotate(354deg) brightness(103%) contrast(90%);background-repeat:no-repeat;background-position:center;display:inline-block;height:1rem;width:1rem}.icon-webex-user{background-image:url(../assets/icons/icon_user.svg)}.icon-user-status{display:inline-block}*{margin:0}body{background:#f7f7f7}body,th,td{font-family:Poppins,Poppins,sans-serif;font-size:14px}th{color:#0000008a;text-align:left}td{box-sizing:border-box;padding:10px 5px 10px 0}.content-box{margin:auto;position:relative;width:95%}.content-box table{width:100%}.edit-icon-td{width:50px;position:relative}.edit-icon-td button{position:absolute;top:4px}.mat-progress-spinner circle,.mat-spinner circle{stroke:gray!important}.data-loader{position:absolute;top:calc(50% - 25px);left:calc(50% - 25px)}.flex-box{display:flex;justify-content:flex-start}.spinner-container{width:100%;display:flex;justify-content:center;align-items:center}.spinner-container ::ng-deep .mat-progress-spinner circle,.mat-spinner circle{stroke:#000}.user-info-box{background:white;display:grid;grid-template-columns:30% 70%;border-radius:8px;border:rgba(0,0,0,.2) 1px solid;padding:24px;font-weight:400;font-size:14px}.user-info-box h3{display:block;font-weight:500;font-size:16px}.mat-divider{margin:5px 0!important}.info-boxes-container{padding:24px 0;display:flex;flex-direction:column;gap:24px}.header-box{height:60px;width:100%;line-height:60px;background:white;border-bottom:1px solid #dedddd}.header-box .header-back-block{float:left}.header-box .header-button-block{float:right}.webex-table{width:100%;margin:auto}.webex-table tr{border-bottom:1px solid #dedede}.webex-table th{background:#f7f7f7;color:#636363;font-size:12px}.webex-table td{background:#fff;color:#636363;font-size:14px}.webex-table tr:hover td{background:#ededed;cursor:pointer}.webex-table th.mat-header-cell,.webex-table td.mat-cell,.webex-table td.mat-footer-cell{border-bottom:1px solid #dedede}.webex-table tr.mat-header-row{height:37px}.mat-form-field{padding:0 0 5px;width:93%}.mat-form-field.mat-form-field-disabled{border-bottom:none}.mat-error{color:#c73636;margin:13px 0 0}.select-box{border-radius:30px;background:#F3F6F6;border:1px solid #E2E9EF;height:35px;position:relative}.select-box select{border:none!important;background:transparent;height:100%;width:92%;margin:auto;display:block}option:focus,option:focus-visible{border:none!important;outline:none!important}option{height:30px;cursor:pointer;color:#636363}option:hover{background:#ededed!important}.mat-select{height:100%!important;line-height:35px!important}.info-holder,.input-holder{display:grid;grid-template-columns:30% 70%;align-items:baseline}.info-holder__name,.input-holder__name{font-weight:500!important;font-size:14px!important}.info-holder__inputs .input-holder,.input-holder__inputs .input-holder{display:grid;grid-template-columns:30% 70%;align-items:baseline}.info-holder__inputs .input-holder__name,.input-holder__inputs .input-holder__name{font-weight:400!important;font-size:14px!important}.mat-form-field-wrapper,.mat-form-field-flex{height:30px!important}.mat-form-field-appearance-outline .mat-form-field-outline,.mat-form-field-outline .mat-form-field-outline-thick{height:35px!important}.mat-select{line-height:20px!important}.mat-form-field-appearance-outline .mat-form-field-infix{padding:14px 12px 10px;border-top:0;max-width:300px}.mat-tab-group{font-family:Inter,sans-serif}.mat-tab-label{font-weight:500!important;font-size:14px!important;height:auto!important;min-width:auto!important;padding:0!important}.mat-ink-bar{background-color:#000000e6!important;height:3px!important}.mat-form-field-wrapper{padding-bottom:0}.mat-form-field{max-width:300px}table{border-collapse:collapse;border-spacing:0}.mat-form-field-appearance-outline .mat-form-field-infix{padding:0!important}.mat-divider{margin:12px 0}::ng-deep .mat-form-field-wrapper{height:30px}::ng-deep .mat-form-field-flex{height:30px}::ng-deep .mat-form-field-appearance-outline .mat-form-field-outline{height:35px}:ng-deep .mat-form-field-outline .mat-form-field-outline-thick{height:35px}::ng-deep .mat-select{line-height:20px}::ng-deep .mat-form-field-infix{border-top:0px!important}\n"] }]
157
160
  }], ctorParameters: function () { return [{ type: i1.UserService }, { type: i2.APIService }]; }, propDecorators: { onSave: [{
158
161
  type: Output
159
162
  }], onChange: [{
@@ -167,4 +170,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.10", ngImpo
167
170
  }], userId: [{
168
171
  type: Input
169
172
  }] } });
170
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidXNlci1tYW5hZ2Utd2lkZ2V0LmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL3R1a2kvd2lkZ2V0cy91c2VyLW1hbmFnZS9zcmMvdXNlci1tYW5hZ2Utd2lkZ2V0LmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL3R1a2kvd2lkZ2V0cy91c2VyLW1hbmFnZS9zcmMvdXNlci1tYW5hZ2Utd2lkZ2V0LmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxTQUFTLEVBQUUsWUFBWSxFQUFFLEtBQUssRUFBVSxNQUFNLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDL0UsT0FBTyxFQUFhLFVBQVUsRUFBRSxNQUFNLGdCQUFnQixDQUFDOzs7Ozs7Ozs7Ozs7OztBQVV2RCxNQUFNLE9BQU8seUJBQXlCO0lBV3BDLElBQUksSUFBSTtRQUNOLE9BQU8sSUFBSSxDQUFDLFdBQVcsRUFBRSxJQUFJLEVBQUUsSUFBSSxDQUFDO0lBQ3RDLENBQUM7SUFFRCxJQUFJLElBQUk7UUFDTixPQUFPLElBQUksQ0FBQyxXQUFXLENBQUMsSUFBSSxDQUFDO0lBQy9CLENBQUM7SUFFRCxJQUFJLFFBQVE7UUFDVixPQUFPLEdBQUcsSUFBSSxDQUFDLElBQUksRUFBRSxTQUFTLElBQUksRUFBRSxJQUFJLElBQUksQ0FBQyxJQUFJLEVBQUUsUUFBUSxJQUFJLEVBQUUsRUFBRSxDQUFDO0lBQ3RFLENBQUM7SUFHRCxZQUNTLFdBQXdCLEVBQ3ZCLFVBQXNCO1FBRHZCLGdCQUFXLEdBQVgsV0FBVyxDQUFhO1FBQ3ZCLGVBQVUsR0FBVixVQUFVLENBQVk7UUF0QnRCLFdBQU0sR0FBRyxJQUFJLFlBQVksRUFBVSxDQUFDO1FBQ3BDLGFBQVEsR0FBRyxJQUFJLFlBQVksRUFBVSxDQUFDO0lBdUJoRCxDQUFDO0lBRUQsUUFBUTtRQUNOLElBQUksQ0FBQyxVQUFV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QUksQ0FBQyxXQUFXLENBQUMsa0JBQWtCLEdBQUcsS0FBSyxDQUFDO2dCQUM1QyxJQUFJLEtBQUssQ0FBQyxNQUFNLEtBQUssR0FBRyxFQUFFO29CQUN4QixpR0FBaUc7aUJBQ2xHO3FCQUFNO29CQUNMLElBQUksQ0FBQyxXQUFXLENBQUMsSUFBSSxDQUFDLFNBQVMsR0FBRyxJQUFJLENBQUMsSUFBSSxFQUFFLEdBQUcsQ0FBQyxRQUFRLENBQUMsRUFBRSxLQUFLLENBQUE7aUJBQ2xFO1lBQ0gsQ0FBQyxDQUFDLENBQUMsQ0FBQztTQUNUO2FBQU07WUFDTCxPQUFPLElBQUksQ0FBQyxXQUFXLEVBQUUsSUFBSSxFQUFFLFNBQVMsQ0FBQztTQUMxQztJQUNILENBQUM7SUFFTSxJQUFJO1FBQ1QsSUFBSSxDQUFDLFdBQVcsRUFBRSxDQUFBO0lBQ3BCLENBQUM7O3VIQWpLVSx5QkFBeUI7MkdBQXpCLHlCQUF5QixpTUNYdEMscThhQW1TQTs0RkR4UmEseUJBQXlCO2tCQUxyQyxTQUFTOytCQUNFLHdCQUF3QjsySEFReEIsTUFBTTtzQkFBZixNQUFNO2dCQUNHLFFBQVE7c0JBQWpCLE1BQU07Z0JBQ0UsS0FBSztzQkFBYixLQUFLO2dCQUNHLElBQUk7c0JBQVosS0FBSztnQkFDRyxNQUFNO3NCQUFkLEtBQUs7Z0JBQ0csTUFBTTtzQkFBZCxLQUFLIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ29tcG9uZW50LCBFdmVudEVtaXR0ZXIsIElucHV0LCBPbkluaXQsIE91dHB1dCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgRm9ybUdyb3VwLCBWYWxpZGF0b3JzIH0gZnJvbSAnQGFuZ3VsYXIvZm9ybXMnO1xuaW1wb3J0IHsgVXNlclNlcnZpY2UgfSBmcm9tICcuL3NlcnZpY2VzL3VzZXIuc2VydmljZSc7XG5pbXBvcnQgeyBBUElTZXJ2aWNlIH0gZnJvbSBcIi4vc2VydmljZXMvYXBpLnNlcnZpY2VcIjtcbmltcG9ydCB7IFNpbXBsaWZpZWRVc2VyIH0gZnJvbSAnLi9jbGFzc2VzL3NpbXBsaWZpZWQtdXNlcic7XG5cbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ2FwcC11c2VyLW1hbmFnZS13aWRnZXQnLFxuICB0ZW1wbGF0ZVVybDogJy4vdXNlci1tYW5hZ2Utd2lkZ2V0LmNvbXBvbmVudC5odG1sJyxcbiAgc3R5bGVVcmxzOiBbJy4vdXNlci1tYW5hZ2Utd2lkZ2V0LmNvbXBvbmVudC5zY3NzJ10sXG59KVxuZXhwb3J0IGNsYXNzIFVzZXJNYW5hZ2VXaWRnZXRDb21wb25lbnQgaW1wbGVtZW50cyBPbkluaXQge1xuXG4gIHB1YmxpYyBkYXRhUGVuZGluZyE6IGJvb2xlYW47XG5cbiAgQE91dHB1dCgpIG9uU2F2ZSA9IG5ldyBFdmVudEVtaXR0ZXI8c3RyaW5nPigpO1xuICBAT3V0cHV0KCkgb25DaGFuZ2UgPSBuZXcgRXZlbnRFbWl0dGVyPHN0cmluZz4oKTtcbiAgQElucHV0KCkgdG9rZW4hOiBzdHJpbmc7XG4gIEBJbnB1dCgpIGhvc3QhOiBzdHJpbmc7XG4gIEBJbnB1dCgpIHNpdGVJZCE6IG51bWJlcjtcbiAgQElucHV0KCkgdXNlcklkITogc3RyaW5nO1xuXG4gIGdldCBmb3JtKCk6IEZvcm1Hcm91cCB7XG4gICAgcmV0dXJuIHRoaXMudXNlclNlcnZpY2U/LnVzZXI/LmZvcm07XG4gIH1cblxuICBnZXQgdXNlcigpOiBTaW1wbGlmaWVkVXNlciB7XG4gICAgcmV0dXJuIHRoaXMudXNlclNlcnZpY2UudXNlcjtcbiAgfVxuXG4gIGdldCB1c2VyTmFtZSgpOiBzdHJpbmcge1xuICAgIHJldHVybiBgJHt0aGlzLnVzZXI/LmZpcnN0TmFtZSB8fCAnJ30gJHt0aGlzLnVzZXI/Lmxhc3ROYW1lIHx8ICcnfWA7XG4gIH1cblxuXG4gIGNvbnN0cnVjdG9yKFxuICAgIHB1YmxpYyB1c2VyU2VydmljZTogVXNlclNlcnZpY2UsXG4gICAgcHJpdmF0ZSBhcGlTZXJ2aWNlOiBBUElTZXJ2aWNlLFxuICApIHtcbiAgfVxuXG4gIG5nT25Jbml0KCk6IHZvaWQge1xuICAgIHRoaXMuYXBpU2VydmljZS50b2tlbiA9IHRoaXMudG9rZW47XG4gICAgdGhpcy5hcGlTZXJ2aWNlLmFwaVVybCA9IHRoaXMuaG9zdDtcbiAgICB0aGlzLmdldERhdGEoKTtcbiAgfVxuXG4gIHB1YmxpYyBvbkNoYW5nZUZpZWxkKHRva2VuOiBzdHJpbmcpOiB2b2lkIHtcbiAgICAgIHRoaXMub25DaGFuZ2UubmV4dChcInN0YXJ0IGNoYW5nZS4uXCIpO1xuXG4gICAgaWYgKCF0b2tlbikge1xuICAgICAgcmV0dXJuO1xuICAgIH1cbiAgICAodGhpcy51c2VyU2VydmljZS51c2VyIGFzIGFueSlbdG9rZW5dID0gdGhpcy5mb3JtPy5nZXQodG9rZW4pPy52YWx1ZTtcblxuICAgIGlmICh0b2tlbiA9PT0gJ21pZGRsZU5hbWUnKSB7XG4gICAgICB0aGlzLmZvcm0/LmdldCh0b2tlbik/LnNldFZhbGlkYXRvcnMoW1ZhbGlkYXRvcnMucGF0dGVybignWyBhLXpBLVotXSsnKV0pO1xuICAgIH1cbiAgICBpZiAodG9rZW4gPT09ICd0ZWxlcGhvbmVOdW1iZXInIHx8IHRva2VuID09PSAnbW9iaWxlTnVtYmVyJyB8fCAgdG9rZW4gPT09ICdwYWdlck51bWJlcicgfHwgdG9rZW4gPT09ICdob21lTnVtYmVyJykge1xuICAgICAgdGhpcy5mb3JtPy5nZXQodG9rZW4pPy5zZXRWYWxpZGF0b3JzKFtWYWxpZGF0b3JzLnBhdHRlcm4oJ1sgMC05LStdKycpXSk7XG4gICAgfVxuICAgIHRoaXMuZm9ybT8uZ2V0KHRva2VuKT8udXBkYXRlVmFsdWVBbmRWYWxpZGl0eSgpO1xuICAgIHRoaXMudmFsaWRhdGVVc2VySWQoKTtcbiAgfVxuXG4gIHB1YmxpYyBzYXZlQ2hhbmdlcygpOiB2b2lkIHtcbiAgICB0aGlzLm9uU2F2ZS5uZXh0KFwic3RhcnQgc2F2aW5nLi5cIik7XG4gICAgaWYgKCF0aGlzLnVzZXJTZXJ2aWNlLmhhc1Vuc2F2ZWRDaGFuZ2VzKCkgfHwgdGhpcy5mb3JtPy5pbnZhbGlkKSB7XG4gICAgICByZXR1cm47XG4gICAgfVxuICAgIGNvbnN0IHN1YnNjcmlwdGlvbiA9IHRoaXMudXNlclNlcnZpY2UucGVyc2lzdENhY2hlQ2hhbmdlcygpXG4gICAgICAuc3Vic2NyaWJlKCgpID0+IHtcbiAgICAgICAgdGhpcy5vblNhdmUubmV4dChcInNhdmVkXCIpO1xuICAgICAgICBzdWJzY3JpcHRpb24udW5zdWJzY3JpYmUoKTtcbiAgICAgIH0pXG4gIH1cblxuICBwdWJsaWMgdG9nZ2xlRWRpdE1vZGUoKSB7XG4gICAgdGhpcy51c2VyU2VydmljZS51c2VyLnRvZ2dsZUVkaXRNb2RlKCk7XG4gIH1cblxuICBwdWJsaWMgaXNTYXZpbmdEaXNhYmxlZCgpOiBib29sZWFuIHtcbiAgICByZXR1cm4gIXRoaXMudXNlclNlcnZpY2UuaGFzVW5zYXZlZENoYW5nZXMoKSB8fCB0aGlzLnVzZXJTZXJ2aWNlLmhhc0V4aXN0ZWRVc2VySWQ7XG4gIH1cblxuICBwdWJsaWMgY2hhbmdlRmllbGQodG9rZW46IHN0cmluZyk6IHZvaWQge1xuICAgIHRoaXMub25DaGFuZ2UubmV4dChcInN0YXJ0IGNoYW5nZS4uXCIpO1xuICAgIGNvbnN0IGZvcm1GaWVsZCA9IHRoaXMudXNlcj8uZm9ybT8uZ2V0KHRva2VuKTtcbiAgICBpZiAodG9rZW4gIT09ICdjb25maXJtRGlnZXN0Q3JlZGVudGlhbHMnKSB7XG4gICAgICAvLyBAdHMtaWdub3JlXG4gICAgICB0aGlzLnVzZXJbdG9rZW5dID0gZm9ybUZpZWxkPy52YWx1ZTtcbiAgICB9XG4gICAgaWYgKHRva2VuID09PSAnZGlnZXN0Q3JlZGVudGlhbHMnIHx8IHRva2VuID09PSAnY29uZmlybURpZ2VzdENyZWRlbnRpYWxzJykge1xuICAgICAgdGhpcy5kaWdlc3RDcmVkZW50aWFsc0hhbmRsZXIodG9rZW4sIGZvcm1GaWVsZCk7XG4gICAgfVxuICB9XG5cbiAgcHJpdmF0ZSBkaWdlc3RDcmVkZW50aWFsc0hhbmRsZXIodG9rZW46IHN0cmluZywgZmllbGQ6IGFueSkge1xuICAgIGNvbnN0IGZpZWxkTmFtZVRvQ29tcGFyZSA9IHRva2VuID09PSAnZGlnZXN0Q3JlZGVudGlhbHMnID8gJ2NvbmZpcm1EaWdlc3RDcmVkZW50aWFscycgOiAnZGlnZXN0Q3JlZGVudGlhbHMnO1xuICAgIGNvbnN0IGZpZWxkVG9Db21wYXJlID0gdGhpcy51c2VyU2VydmljZS51c2VyLmZvcm0uZ2V0KGZpZWxkTmFtZVRvQ29tcGFyZSk7XG4gICAgaWYgKHRoaXMudXNlclNlcnZpY2UudXNlcj8uZm9ybT8uZ2V0KHRva2VuKSkge1xuICAgICAgdGhpcy51c2VyU2VydmljZS51c2VyPy5mb3JtPy5nZXQodG9rZW4pPy5zZXRFcnJvcnMobnVsbCk7XG4gICAgICB0aGlzLnVzZXJTZXJ2aWNlLnVzZXI/LmZvcm0/LmdldChmaWVsZE5hbWVUb0NvbXBhcmUpPy5zZXRFcnJvcnMobnVsbCk7XG5cbiAgICAgLyogaWYgKCFmaWVsZC52YWx1ZSAmJiAhZmllbGRUb0NvbXBhcmUudmFsdWUpIHtcbiAgICAgICAgdGhpcy51c2VyU2VydmljZS51c2VyPy5kaWdlc3RDcmVkZW50aWFscyA9IG51bGw7XG4gICAgICAgIHJldHVybjtcbiAgICAgIH1cblxuICAgICAgaWYgKCFmaWVsZC52YWx1ZSAmJiBmaWVsZFRvQ29tcGFyZS52YWx1ZSB8fCAhZmllbGRUb0NvbXBhcmUudmFsdWUgJiYgZmllbGQudmFsdWUpIHtcbiAgICAgICAgY29uc3QgcmVxdWlyZWRGaWVsZE5hbWUgPSBmaWVsZC52YWx1ZSA/IGZpZWxkTmFtZVRvQ29tcGFyZSA6IHRva2VuO1xuICAgICAgICB0aGlzLnVzZXJTZXJ2aWNlLnVzZXIuZm9ybS5nZXQocmVxdWlyZWRGaWVsZE5hbWUpLnNldEVycm9ycyh7cmVxdWlyZWQ6IHRydWV9KTtcbiAgICAgICAgcmV0dXJuO1xuICAgICAgfVxuICAgICAgaWYgKGZpZWxkLnZhbHVlICYmIGZpZWxkVG9Db21wYXJlLnZhbHVlICYmIGZpZWxkLnZhbHVlICE9PSBmaWVsZFRvQ29tcGFyZS52YWx1ZSkge1xuICAgICAgICB0aGlzLnVzZXJTZXJ2aWNlLnVzZXIuZm9ybS5nZXQodG9rZW4pLnNldEVycm9ycyh7bWlzbWF0Y2g6IHRydWV9KTtcbiAgICAgICAgdGhpcy51c2VyU2VydmljZS51c2VyLmZvcm0uZ2V0KGZpZWxkTmFtZVRvQ29tcGFyZSkuc2V0RXJyb3JzKHttaXNtYXRjaDogdHJ1ZX0pO1xuICAgICAgfSovXG4gICAgfVxuXG4gIH1cblxuICBwcml2YXRlIGdldERhdGEoKSB7XG4gICAgdGhpcy5kYXRhUGVuZGluZyA9IHRydWU7XG4gICAgdGhpcy51c2VyU2VydmljZS5mZXRjaFVzZXJUb2tlbih0aGlzLnNpdGVJZCwgdGhpcy51c2VySWQpXG4gICAgICAuc3Vic2NyaWJlKHtcbiAgICAgICAgY29tcGxldGU6ICh2OiBhbnkpID0+IHtcbiAgICAgICAgICB0aGlzLmRhdGFQZW5kaW5nID0gZmFsc2U7XG4gICAgICAgIH0sXG4gICAgICAgIGVycm9yOiAoZTogYW55KSA9PiB0aGlzLmRhdGFQZW5kaW5nID0gZmFsc2UsXG4gICAgICB9KTtcbiAgfVxuXG4gIHByaXZhdGUgc2V0Q29va2llKG5hbWU6IHN0cmluZywgdmFsdWU6IHN0cmluZywgZGF5czogbnVtYmVyKSB7XG4gICAgdmFyIGV4cGlyZXMgPSBcIlwiO1xuICAgIGlmIChkYXlzKSB7XG4gICAgICB2YXIgZGF0ZSA9IG5ldyBEYXRlKCk7XG4gICAgICBkYXRlLnNldFRpbWUoZGF0ZS5nZXRUaW1lKCkgKyAoZGF5cyAqIDI0ICogNjAgKiA2MCAqIDEwMDApKTtcbiAgICAgIGV4cGlyZXMgPSBcIjsgZXhwaXJlcz1cIiArIGRhdGUudG9VVENTdHJpbmcoKTtcbiAgICB9XG4gICAgZG9jdW1lbnQuY29va2llID0gbmFtZSArIFwiPVwiICsgKHZhbHVlIHx8IFwiXCIpICsgZXhwaXJlcyArIFwiOyBwYXRoPS9cIjtcbiAgfVxuXG4gIHByaXZhdGUgdmFsaWRhdGVVc2VySWQoKSB7XG4gICAgY29uc3QgaWRDb250cm9sID0gdGhpcy5mb3JtLmdldCgndXNlcmlkJyk7XG4gICAgaWYgKGlkQ29udHJvbD8udmFsdWUgIT09ICcnICYmIGlkQ29udHJvbD8udmFsdWUgIT09IHRoaXMudXNlclNlcnZpY2Uub3JpZ2luVXNlci51c2VyaWQpIHtcbiAgICAgIHRoaXMudXNlclNlcnZpY2UuZmV0Y2hVc2VyQnlJZChpZENvbnRyb2w/LnZhbHVlKVxuICAgICAgICAuc3Vic2NyaWJlKFxuICAgICAgICAgIChyZXM6IGFueSkgPT4ge1xuICAgICAgICAgICAgdGhpcy51c2VyU2VydmljZS51c2VySWRFeGlzdFBlbmRpbmcgPSBmYWxzZTtcbiAgICAgICAgICAgIGlkQ29udHJvbD8uc2V0RXJyb3JzKHtleGlzdDogdHJ1ZX0pO1xuICAgICAgICAgICAgaWYgKHRoaXMuZm9ybT8uZ2V0KCd1c2VyaWQnKT8uaGFzRXJyb3IoJ2V4aXN0JykpIHtcbiAgICAgICAgICAgICAgdGhpcy51c2VyU2VydmljZS5oYXNFeGlzdGVkVXNlcklkID0gdHJ1ZTtcbiAgICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAgIHRoaXMudXNlclNlcnZpY2UuaGFzRXhpc3RlZFVzZXJJZCA9IGZhbHNlO1xuICAgICAgICAgICAgfVxuICAgICAgICAgIH0sXG4gICAgICAgICAgKChlcnJvcikgPT4ge1xuICAgICAgICAgICAgdGhpcy51c2VyU2VydmljZS51c2VySWRFeGlzdFBlbmRpbmcgPSBmYWxzZTtcbiAgICAgICAgICAgIGlmIChlcnJvci5zdGF0dXMgIT09IDQwNCkge1xuICAgICAgICAgICAgICAvLyB0aGlzLm5vdGlmaWNhdGlvblNlcnZpY2Uud2FybmluZyh0aGlzLnRyYW5zbGF0ZS5pbnN0YW50KCdBUFBfVVNFUl9NU0cuQ0hFQ0tfVVNFUl9JRF9GQUlMRUQnKSk7XG4gICAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgICB0aGlzLnVzZXJTZXJ2aWNlLnVzZXIubmV3VXNlcklkID0gdGhpcy5mb3JtPy5nZXQoJ3VzZXJpZCcpPy52YWx1ZVxuICAgICAgICAgICAgfVxuICAgICAgICAgIH0pKTtcbiAgICB9IGVsc2Uge1xuICAgICAgZGVsZXRlIHRoaXMudXNlclNlcnZpY2U/LnVzZXI/Lm5ld1VzZXJJZDtcbiAgICB9XG4gIH1cblxuICBwdWJsaWMgc2F2ZSgpIHtcbiAgICB0aGlzLnNhdmVDaGFuZ2VzKClcbiAgfVxuXG59XG4iLCI8ZGl2IGNsYXNzPVwiaGVhZGVyLWJveFwiPlxuICA8ZGl2IGNsYXNzPVwiY29udGVudC1ib3hcIj5cbiAgICA8ZGl2IGNsYXNzPVwiaGVhZGVyLWJhY2stYmxvY2tcIj5cbiAgICAgIDxzdmcgd2lkdGg9XCIxNlwiIGhlaWdodD1cIjE2XCIgdmlld0JveD1cIjAgMCAxNiAxNlwiIGZpbGw9XCJub25lXCIgeG1sbnM9XCJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2Z1wiPlxuICAgICAgICA8cGF0aCBkPVwiTTUuNzA3NDYgNy45OTk4N0wxMS4zNTM5IDIuMzUzNTJDMTEuNDQ1MyAyLjI1OTI4IDExLjQ5NiAyLjEzMjg3IDExLjQ5NSAyLjAwMTU5QzExLjQ5NCAxLjg3MDMgMTEuNDQxNCAxLjc0NDY3IDExLjM0ODYgMS42NTE4M0MxMS4yNTU4IDEuNTU4OTkgMTEuMTMwMSAxLjUwNjM5IDEwLjk5ODggMS41MDUzOUMxMC44Njc2IDEuNTA0MzggMTAuNzQxMSAxLjU1NTA2IDEwLjY0NjkgMS42NDY0N0w0LjY0NjkxIDcuNjQ2NDdDNC41NTMxNiA3Ljc0MDIzIDQuNTAwNDkgNy44Njc0IDQuNTAwNDkgNy45OTk5OUM0LjUwMDQ5IDguMTMyNTkgNC41NTMxNiA4LjI1OTc1IDQuNjQ2OTEgOC4zNTM1MkwxMC42NDY5IDE0LjM1MzVDMTAuNjkzMSAxNC40MDExIDEwLjc0ODIgMTQuNDM5IDEwLjgwOTIgMTQuNDY1MUMxMC44NzAyIDE0LjQ5MTIgMTAuOTM1NyAxNC41MDQ5IDExLjAwMiAxNC41MDU0QzExLjA2ODMgMTQuNTA1OSAxMS4xMzQgMTQuNDkzMiAxMS4xOTU0IDE0LjQ2OEMxMS4yNTY3IDE0LjQ0MjkgMTEuMzEyNSAxNC40MDU4IDExLjM1OTMgMTQuMzU4OUMxMS40MDYyIDE0LjMxMiAxMS40NDMzIDE0LjI1NjMgMTEuNDY4NSAxNC4xOTQ5QzExLjQ5MzYgMTQuMTMzNiAxMS41MDYzIDE0LjA2NzkgMTEuNTA1OCAxNC4wMDE2QzExLjUwNTMgMTMuOTM1MyAxMS40OTE2IDEzLjg2OTcgMTEuNDY1NSAxMy44MDg4QzExLjQzOTQgMTMuNzQ3OCAxMS40MDE1IDEzLjY5MjYgMTEuMzUzOSAxMy42NDY1TDUuNzA3NDYgNy45OTk4N1pcIiBmaWxsPVwiYmxhY2tcIiBmaWxsLW9wYWNpdHk9XCIwLjk1XCIvPlxuICAgICAgPC9zdmc+XG4gICAgICBVc2Vyc1xuICAgIDwvZGl2PlxuPCEtLSAgICA8ZGl2IGNsYXNzPVwiaGVhZGVyLWJ1dHRvbi1ibG9ja1wiPi0tPlxuPCEtLSAgICAgIDxidXR0b24gbWF0LXJhaXNlZC1idXR0b24tLT5cbjwhLS0gICAgICAgICAgICAgIFtkaXNhYmxlZF09XCIhdXNlclNlcnZpY2UuaGFzVW5zYXZlZENoYW5nZXMoKVwiLS0+XG48IS0tICAgICAgICAgICAgICAoY2xpY2spPVwic2F2ZUNoYW5nZXMoKVwiPlNhdmU8L2J1dHRvbj4tLT5cbjwhLS0gICAgPC9kaXY+LS0+XG4gIDwvZGl2PlxuPC9kaXY+XG48YXBwLXVzZXItaW5mbyAqbmdJZj1cInVzZXJcIiBbbmFtZV09XCJ1c2VyTmFtZVwiIFtlbWFpbF09XCJ1c2VyLmVtYWlsXCIgW2FjdGl2ZV09XCJmYWxzZVwiIFtwb3NpdGlvbl09XCInU2FsZXMgU2VuaW9yIFZQJ1wiPjwvYXBwLXVzZXItaW5mbz5cblxuPG1hdC10YWItZ3JvdXAgZGlzYWJsZVJpcHBsZSBjbGFzcz1cImNvbnRlbnQtYm94XCI+XG4gIDxtYXQtdGFiIGxhYmVsPVwiUHJvZmlsZVwiPlxuICAgIDxuZy1jb250YWluZXIgKm5nVGVtcGxhdGVPdXRsZXQ9XCJ1c2VyUHJvZmlsZVwiPlxuICAgIDwvbmctY29udGFpbmVyPlxuICA8L21hdC10YWI+XG4gIDxtYXQtdGFiIGxhYmVsPVwiRGV2aWNlc1wiIFtkaXNhYmxlZF09XCJ0cnVlXCI+PC9tYXQtdGFiPlxuICA8bWF0LXRhYiBsYWJlbD1cIkxpbmVzXCIgW2Rpc2FibGVkXT1cInRydWVcIj48L21hdC10YWI+XG4gIDxtYXQtdGFiIGxhYmVsPVwiRmVhdHVyZXNcIiBbZGlzYWJsZWRdPVwidHJ1ZVwiPjwvbWF0LXRhYj5cbjwvbWF0LXRhYi1ncm91cD5cblxuPG5nLXRlbXBsYXRlICN1c2VyUHJvZmlsZT5cbiAgPGZvcm0gKm5nSWY9XCJ1c2VyICYmIGZvcm1cIiBbZm9ybUdyb3VwXT1cImZvcm1cIj5cbiAgICA8ZGl2IGNsYXNzPVwiaW5mby1ib3hlcy1jb250YWluZXJcIj5cbiAgICAgIDxkaXYgKm5nSWY9XCJkYXRhUGVuZGluZyA9PSB0cnVlXCIgY2xhc3M9XCJkYXRhLWxvYWRlclwiPlxuICAgICAgICA8bWF0LXNwaW5uZXIgW2RpYW1ldGVyXT1cIjUwXCI+PC9tYXQtc3Bpbm5lcj5cbiAgICAgIDwvZGl2PlxuXG4gICAgICA8IS0tICAgIFVTRVIgSU5GTyBCT1gtLT5cbiAgICAgIDxkaXYgY2xhc3M9XCJ1c2VyLWluZm8tYm94IHVzZXItZGV0YWlscy1ib3hcIj5cbiAgICAgICAgPGgzIGNsYXNzPVwidXNlci1ib3gtdGl0bGVcIj5Vc2VyIEdlbmVyYWwgSW5mbzwvaDM+XG4gICAgICAgIDxkaXYgY2xhc3M9XCJmb3JtLWhvbGRlcl9faW5wdXRzXCI+XG4gICAgICAgICAgPGRpdiBjbGFzcz1cImlucHV0LWhvbGRlclwiPlxuICAgICAgICAgICAgPGRpdiBjbGFzcz1cImlucHV0LWhvbGRlcl9fbmFtZVwiPlVzZXIgSWQ8L2Rpdj5cbiAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJpbnB1dC1ob2xkZXJfX2lucHV0XCI+XG4gICAgICAgICAgICAgIDxtYXQtZm9ybS1maWVsZCBhcHBlYXJhbmNlPVwib3V0bGluZVwiPlxuICAgICAgICAgICAgICAgIDxpbnB1dCBmb3JtQ29udHJvbE5hbWU9XCJ1c2VyaWRcIlxuICAgICAgICAgICAgICAgICAgICAgICBtYXRJbnB1dCAoaW5wdXQpPVwib25DaGFuZ2VGaWVsZCgndXNlcmlkJylcIj5cbiAgICAgICAgICAgICAgICA8bWF0LWVycm9yXG4gICAgICAgICAgICAgICAgICAqbmdJZj1cImZvcm0uZ2V0KCd1c2VyaWQnKS5oYXNFcnJvcigncmVxdWlyZWQnKVwiPlxuICAgICAgICAgICAgICAgICAgPGkgY2xhc3M9XCJmYSBmYS1leGNsYW1hdGlvbi10cmlhbmdsZVwiPjwvaT5cbiAgICAgICAgICAgICAgICAgIFRoaXMgZmllbGQgaXMgcmVxdWlyZWRcbiAgICAgICAgICAgICAgICA8L21hdC1lcnJvcj5cbiAgICAgICAgICAgICAgICA8bWF0LWVycm9yICpuZ0lmPVwiZm9ybS5nZXQoJ3VzZXJpZCcpLmhhc0Vycm9yKCdleGlzdCcpXCI+XG4gICAgICAgICAgICAgICAgICA8aSBjbGFzcz1cImZhIGZhLWV4Y2xhbWF0aW9uLXRyaWFuZ2xlXCI+PC9pPlxuICAgICAgICAgICAgICAgICAgVXNlciBJRCBhbHJlYWR5IGV4aXN0c1xuICAgICAgICAgICAgICAgIDwvbWF0LWVycm9yPlxuICAgICAgICAgICAgICA8L21hdC1mb3JtLWZpZWxkPlxuICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgPG1hdC1kaXZpZGVyPjwvbWF0LWRpdmlkZXI+XG4gICAgICAgICAgPGRpdiBjbGFzcz1cImlucHV0LWhvbGRlclwiPlxuICAgICAgICAgICAgPGRpdiBjbGFzcz1cImlucHV0LWhvbGRlcl9fbmFtZVwiPkVtYWlsPC9kaXY+XG4gICAgICAgICAgICA8ZGl2IGNsYXNzPVwiaW5wdXQtaG9sZGVyX19pbnB1dFwiPlxuICAgICAgICAgICAgICA8bWF0LWZvcm0tZmllbGQgYXBwZWFyYW5jZT1cIm91dGxpbmVcIj5cbiAgICAgICAgICAgICAgICA8aW5wdXQgZm9ybUNvbnRyb2xOYW1lPVwiZW1haWxcIlxuICAgICAgICAgICAgICAgICAgICAgICBtYXRJbnB1dCAoaW5wdXQpPVwib25DaGFuZ2VGaWVsZCgnZW1haWwnKVwiPlxuICAgICAgICAgICAgICAgIDxtYXQtZXJyb3JcbiAgICAgICAgICAgICAgICAgICpuZ0lmPVwiZm9ybS5nZXQoJ2VtYWlsJykudG91Y2hlZCAmJiBmb3JtLmdldCgnZW1haWwnKS5oYXNFcnJvcigncmVxdWlyZWQnKVwiPlxuICAgICAgICAgICAgICAgICAgPGkgY2xhc3M9XCJmYSBmYS1leGNsYW1hdGlvbi10cmlhbmdsZVwiPjwvaT5cbiAgICAgICAgICAgICAgICAgIFRoaXMgZmllbGQgaXMgcmVxdWlyZWRcbiAgICAgICAgICAgICAgICA8L21hdC1lcnJvcj5cbiAgICAgICAgICAgICAgICA8bWF0LWVycm9yICpuZ0lmPVwiZm9ybS5nZXQoJ2VtYWlsJykudG91Y2hlZCAmJiBmb3JtLmdldCgnZW1haWwnKS5oYXNFcnJvcigncGF0dGVybicpXCI+XG4gICAgICAgICAgICAgICAgICA8aSBjbGFzcz1cImZhIGZhLWV4Y2xhbWF0aW9uLXRyaWFuZ2xlXCI+PC9pPlxuICAgICAgICAgICAgICAgICAgUGxlYXNlIGVudGVyIHZhbGlkIGVtYWlsXG4gICAgICAgICAgICAgICAgPC9tYXQtZXJyb3I+XG4gICAgICAgICAgICAgIDwvbWF0LWZvcm0tZmllbGQ+XG4gICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICA8bWF0LWRpdmlkZXI+PC9tYXQtZGl2aWRlcj5cbiAgICAgICAgICA8ZGl2IGNsYXNzPVwiaW5wdXQtaG9sZGVyXCI+XG4gICAgICAgICAgICA8ZGl2IGNsYXNzPVwiaW5wdXQtaG9sZGVyX19uYW1lXCI+RmlzcnQgTmFtZTwvZGl2PlxuICAgICAgICAgICAgPGRpdiBjbGFzcz1cImlucHV0LWhvbGRlcl9faW5wdXRcIj5cbiAgICAgICAgICAgICAgPG1hdC1mb3JtLWZpZWxkIGFwcGVhcmFuY2U9XCJvdXRsaW5lXCI+XG4gICAgICAgICAgICAgICAgPGlucHV0IGZvcm1Db250cm9sTmFtZT1cImZpcnN0TmFtZVwiXG4gICAgICAgICAgICAgICAgICAgICAgIG1hdElucHV0IChpbnB1dCk9XCJvbkNoYW5nZUZpZWxkKCdmaXJzdE5hbWUnKVwiPlxuICAgICAgICAgICAgICA8L21hdC1mb3JtLWZpZWxkPlxuICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgPG1hdC1kaXZpZGVyPjwvbWF0LWRpdmlkZXI+XG4gICAgICAgICAgPGRpdiBjbGFzcz1cImlucHV0LWhvbGRlclwiPlxuICAgICAgICAgICAgPGRpdiBjbGFzcz1cImlucHV0LWhvbGRlcl9fbmFtZVwiPkxhc3QgTmFtZTwvZGl2PlxuICAgICAgICAgICAgPGRpdiBjbGFzcz1cImlucHV0LWhvbGRlcl9faW5wdXRcIj5cbiAgICAgICAgICAgICAgPG1hdC1mb3JtLWZpZWxkIGFwcGVhcmFuY2U9XCJvdXRsaW5lXCI+XG4gICAgICAgICAgICAgICAgPGlucHV0IGZvcm1Db250cm9sTmFtZT1cImxhc3ROYW1lXCJcbiAgICAgICAgICAgICAgICAgICAgICAgbWF0SW5wdXQgKGlucHV0KT1cIm9uQ2hhbmdlRmllbGQoJ2xhc3ROYW1lJylcIj5cbiAgICAgICAgICAgICAgICA8bWF0LWVycm9yXG4gICAgICAgICAgICAgICAgICAqbmdJZj1cImZvcm0uZ2V0KCdsYXN0TmFtZScpLnRvdWNoZWQgJiYgZm9ybS5nZXQoJ2xhc3ROYW1lJykuaGFzRXJyb3IoJ3JlcXVpcmVkJylcIj5cbiAgICAgICAgICAgICAgICAgIDxpIGNsYXNzPVwiZmEgZmEtZXhjbGFtYXRpb24tdHJpYW5nbGVcIj48L2k+XG4gICAgICAgICAgICAgICAgICBUaGlzIGZpZWxkIGlzIHJlcXVpcmVkXG4gICAgICAgICAgICAgICAgPC9tYXQtZXJyb3I+XG4gICAgICAgICAgICAgIDwvbWF0LWZvcm0tZmllbGQ+XG4gICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICA8bWF0LWRpdmlkZXI+PC9tYXQtZGl2aWRlcj5cbiAgICAgICAgPC9kaXY+XG5cbiAgICAgIDwvZGl2PlxuXG5cbiAgICAgIDwhLS0gICAgVVNFUiBJTkZPIEJPWC0tPlxuICAgICAgPGRpdiBjbGFzcz1cInVzZXItaW5mby1ib3ggdXNlci1kZXRhaWxzLWJveFwiPlxuICAgICAgICA8aDMgY2xhc3M9XCJ1c2VyLWJveC10aXRsZVwiPlVzZXIgR2VuZXJhbCBJbmZvPC9oMz5cbiAgICAgICAgPGRpdiBjbGFzcz1cImZvcm0taG9sZGVyX19pbnB1dHNcIj5cbiAgICAgICAgICA8ZGl2IGNsYXNzPVwiaW5wdXQtaG9sZGVyXCI+XG4gICAgICAgICAgICA8ZGl2IGNsYXNzPVwiaW5wdXQtaG9sZGVyX19uYW1lXCI+RGVwYXJ0bWVudDwvZGl2PlxuICAgICAgICAgICAgPGRpdiBjbGFzcz1cImlucHV0LWhvbGRlcl9faW5wdXRcIj5cbiAgICAgICAgICAgICAgPG1hdC1mb3JtLWZpZWxkIGFwcGVhcmFuY2U9XCJvdXRsaW5lXCI+XG4gICAgICAgICAgICAgICAgPGlucHV0IGZvcm1Db250cm9sTmFtZT1cImRlcGFydG1lbnRcIiBtYXRJbnB1dCB0eXBlPVwidGV4dFwiIChpbnB1dCk9XCJvbkNoYW5nZUZpZWxkKCdkZXBhcnRtZW50JylcIj5cbiAgICAgICAgICAgICAgPC9tYXQtZm9ybS1maWVsZD5cbiAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgIDxtYXQtZGl2aWRlcj48L21hdC1kaXZpZGVyPlxuICAgICAgICAgIDxkaXYgY2xhc3M9XCJpbnB1dC1ob2xkZXJcIj5cbiAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJpbnB1dC1ob2xkZXJfX25hbWVcIj5NYW5hZ2VyIHVzZXIgSUQ8L2Rpdj5cbiAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJpbnB1dC1ob2xkZXJfX2lucHV0XCI+XG4gICAgICAgICAgICAgIDxtYXQtZm9ybS1maWVsZCBhcHBlYXJhbmNlPVwib3V0bGluZVwiPlxuICAgICAgICAgICAgICAgIDxpbnB1dCBmb3JtQ29udHJvbE5hbWU9XCJtYW5hZ2VyXCIgbWF0SW5wdXQgdHlwZT1cInRleHRcIiAoaW5wdXQpPVwib25DaGFuZ2VGaWVsZCgnbWFuYWdlcicpXCI+XG4gICAgICAgICAgICAgIDwvbWF0LWZvcm0tZmllbGQ+XG4gICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICA8bWF0LWRpdmlkZXI+PC9tYXQtZGl2aWRlcj5cbiAgICAgICAgICA8ZGl2IGNsYXNzPVwiaW5wdXQtaG9sZGVyXCI+XG4gICAgICAgICAgICA8ZGl2IGNsYXNzPVwiaW5wdXQtaG9sZGVyX19uYW1lXCI+QXNzb2NpYXRlZCBQQzwvZGl2PlxuICAgICAgICAgICAgPGRpdiBjbGFzcz1cImlucHV0LWhvbGRlcl9faW5wdXRcIj5cbiAgICAgICAgICAgICAgPG1hdC1mb3JtLWZpZWxkIGFwcGVhcmFuY2U9XCJvdXRsaW5lXCI+XG4gICAgICAgICAgICAgICAgPGlucHV0IGZvcm1Db250cm9sTmFtZT1cImFzc29jaWF0ZWRQY1wiIG1hdElucHV0IHR5cGU9XCJ0ZXh0XCIgKGlucHV0KT1cIm9uQ2hhbmdlRmllbGQoJ2Fzc29jaWF0ZWRQYycpXCI+XG4gICAgICAgICAgICAgIDwvbWF0LWZvcm0tZmllbGQ+XG4gICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICA8bWF0LWRpdmlkZXI+PC9tYXQtZGl2aWRlcj5cbiAgICAgICAgICA8ZGl2IGNsYXNzPVwiaW5wdXQtaG9sZGVyXCI+XG4gICAgICAgICAgICA8ZGl2IGNsYXNzPVwiaW5wdXQtaG9sZGVyX19uYW1lXCI+RGlnZXN0IGNyZWRlbnRpYWxzPC9kaXY+XG4gICAgICAgICAgICA8ZGl2IGNsYXNzPVwiaW5wdXQtaG9sZGVyX19pbnB1dFwiPlxuICAgICAgICAgICAgICA8bWF0LWZvcm0tZmllbGQgYXBwZWFyYW5jZT1cIm91dGxpbmVcIj5cbiAgICAgICAgICAgICAgICA8aW5wdXQgZm9ybUNvbnRyb2xOYW1lPVwiZGlnZXN0Q3JlZGVudGlhbHNcIiBtYXRJbnB1dCB0eXBlPVwidGV4dFwiIChpbnB1dCk9XCJvbkNoYW5nZUZpZWxkKCdkaWdlc3RDcmVkZW50aWFscycpXCI+XG4gICAgICAgICAgICAgIDwvbWF0LWZvcm0tZmllbGQ+XG4gICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICA8bWF0LWRpdmlkZXI+PC9tYXQtZGl2aWRlcj5cbiAgICAgICAgICA8ZGl2IGNsYXNzPVwiaW5wdXQtaG9sZGVyXCI+XG4gICAgICAgICAgICA8ZGl2IGNsYXNzPVwiaW5wdXQtaG9sZGVyX19uYW1lXCI+VXNlciBwcm9maWxlPC9kaXY+XG4gICAgICAgICAgICA8ZGl2IGNsYXNzPVwiaW5wdXQtaG9sZGVyX19pbnB1dFwiPlxuICAgICAgICAgICAgICA8YXBwLWxhenktbG9hZGluZy1zZWxlY3RcbiAgICAgICAgICAgICAgICBbc2l0ZUlkXT1cInNpdGVJZFwiXG4gICAgICAgICAgICAgICAgW2NvbnRyb2xOYW1lXT1cIid1c2VyUHJvZmlsZSdcIlxuICAgICAgICAgICAgICAgIFtmb3JtXT1cInVzZXIuZm9ybVwiXG4gICAgICAgICAgICAgICAgKGNoYW5nZUZpZWxkKT1cImNoYW5nZUZpZWxkKCd1c2VyUHJvZmlsZScpXCJcbiAgICAgICAgICAgICAgICBbb3B0aW9uc1Rva2VuXT1cIid1c2VyUHJvZmlsZXMnXCJcbiAgICAgICAgICAgICAgPjwvYXBwLWxhenktbG9hZGluZy1zZWxlY3Q+XG4gICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICA8bWF0LWRpdmlkZXI+PC9tYXQtZGl2aWRlcj5cbiAgICAgICAgICA8ZGl2IGNsYXNzPVwiaW5wdXQtaG9sZGVyXCI+XG4gICAgICAgICAgICA8ZGl2IGNsYXNzPVwiaW5wdXQtaG9sZGVyX19uYW1lXCI+TW9iaWxlIHZvaWNlIGFjY2VzczwvZGl2PlxuICAgICAgICAgICAgPGRpdiBjbGFzcz1cImlucHV0LWhvbGRlcl9faW5wdXRcIj5cbiAgICAgICAgICAgICAgPG1hdC1zbGlkZS10b2dnbGVcbiAgICAgICAgICAgICAgICBmb3JtQ29udHJvbE5hbWU9XCJlbmFibGVNb2JpbGVWb2ljZUFjY2Vzc1wiXG4gICAgICAgICAgICAgICAgKGNoYW5nZSk9XCJvbkNoYW5nZUZpZWxkKCdlbmFibGVNb2JpbGVWb2ljZUFjY2VzcycpXCJcbiAgICAgICAgICAgICAgICBbY2hlY2tlZF09XCJ1c2VyLmVuYWJsZU1vYmlsZVZvaWNlQWNjZXNzXCI+XG4gICAgICAgICAgICAgIDwvbWF0LXNsaWRlLXRvZ2dsZT5cbiAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgIDxtYXQtZGl2aWRlcj48L21hdC1kaXZpZGVyPlxuICAgICAgICAgIDxkaXYgY2xhc3M9XCJpbnB1dC1ob2xkZXJcIj5cbiAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJpbnB1dC1ob2xkZXJfX25hbWVcIj5Vc2VybG9jYWxlPC9kaXY+XG4gICAgICAgICAgICA8ZGl2IGNsYXNzPVwiaW5wdXQtaG9sZGVyX19pbnB1dFwiPlxuICAgICAgICAgICAgICA8YXBwLWxhenktbG9hZGluZy1zZWxlY3RcbiAgICAgICAgICAgICAgICBbc2l0ZUlkXT1cInNpdGVJZFwiXG4gICAgICAgICAgICAgICAgW2NvbnRyb2xOYW1lXT1cIid1c2VyTG9jYWxlJ1wiXG4gICAgICAgICAgICAgICAgW2Zvcm1dPVwidXNlci5mb3JtXCJcbiAgICAgICAgICAgICAgICAoY2hhbmdlRmllbGQpPVwiY2hhbmdlRmllbGQoJGV2ZW50KVwiXG4gICAgICAgICAgICAgICAgW29wdGlvbnNUb2tlbl09XCIndXNlckxvY2FsZXMnXCJcbiAgICAgICAgICAgICAgICBbZGVmYXVsdF09XCJ7a2V5OiAnJywgdmFsdWU6ICdOb25lJywgZGlzYWJsZWQ6IGZhbHNlfVwiPlxuICAgICAgICAgICAgICA8L2FwcC1sYXp5LWxvYWRpbmctc2VsZWN0PlxuICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgPG1hdC1kaXZpZGVyPjwvbWF0LWRpdmlkZXI+XG4gICAgICAgICAgPGRpdiBjbGFzcz1cImlucHV0LWhvbGRlclwiPlxuICAgICAgICAgICAgPGRpdiBjbGFzcz1cImlucHV0LWhvbGRlcl9fbmFtZVwiPkNvbmZpcm0gZGlnZXN0IGNyZWRlbnRpYWxzPC9kaXY+XG4gICAgICAgICAgICA8ZGl2IGNsYXNzPVwiaW5wdXQtaG9sZGVyX19pbnB1dFwiPlxuICAgICAgICAgICAgICA8bWF0LWZvcm0tZmllbGQgYXBwZWFyYW5jZT1cIm91dGxpbmVcIj5cbiAgICAgICAgICAgICAgICA8aW5wdXQgZm9ybUNvbnRyb2xOYW1lPVwiY29uZmlybURpZ2VzdENyZWRlbnRpYWxzXCIgbWF0SW5wdXQgdHlwZT1cInRleHRcIiAoaW5wdXQpPVwib25DaGFuZ2VGaWVsZCgnY29uZmlybURpZ2VzdENyZWRlbnRpYWxzJylcIj5cbiAgICAgICAgICAgICAgPC9tYXQtZm9ybS1maWVsZD5cbiAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgIDwvZGl2PlxuICAgICAgICA8L2Rpdj5cbiAgICAgIDwvZGl2PlxuXG4gICAgICA8IS0tICAgIFVTRVIgSU5GTyBCT1gtLT5cbiAgICAgIDxkaXYgY2xhc3M9XCJ1c2VyLWluZm8tYm94IHVzZXItZGV0YWlscy1ib3hcIj5cbiAgICAgICAgPGgzIGNsYXNzPVwidXNlci1ib3gtdGl0bGVcIj5Db250YWN0IEluZm9ybWF0aW9uPC9oMz5cbiAgICAgICAgPGRpdiBjbGFzcz1cImZvcm0taG9sZGVyX19pbnB1dHNcIj5cbiAgICAgICAgICA8ZGl2IGNsYXNzPVwiaW5wdXQtaG9sZGVyXCI+XG4gICAgICAgICAgICA8ZGl2IGNsYXNzPVwiaW5wdXQtaG9sZGVyX19uYW1lXCI+TWlkZGxlIE5hbWU8L2Rpdj5cbiAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJpbnB1dC1ob2xkZXJfX2lucHV0XCI+XG4gICAgICAgICAgICAgIDxtYXQtZm9ybS1maWVsZCBhcHBlYXJhbmNlPVwib3V0bGluZVwiPlxuICAgICAgICAgICAgICAgIDxpbnB1dCBtYXRJbnB1dCB0eXBlPVwidGV4dFwiIGZvcm1Db250cm9sTmFtZT1cIm1pZGRsZU5hbWVcIiAoaW5wdXQpPVwib25DaGFuZ2VGaWVsZCgnbWlkZGxlTmFtZScpXCI+XG4gICAgICAgICAgICAgIDwvbWF0LWZvcm0tZmllbGQ+XG4gICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICA8bWF0LWRpdmlkZXI+PC9tYXQtZGl2aWRlcj5cbiAgICAgICAgICA8ZGl2IGNsYXNzPVwiaW5wdXQtaG9sZGVyXCI+XG4gICAgICAgICAgICA8ZGl2IGNsYXNzPVwiaW5wdXQtaG9sZGVyX19uYW1lXCI+VGVsZXBob25lIE51bWJlcjwvZGl2PlxuICAgICAgICAgICAgPGRpdiBjbGFzcz1cImlucHV0LWhvbGRlcl9faW5wdXRcIj5cbiAgICAgICAgICAgICAgPG1hdC1mb3JtLWZpZWxkIGFwcGVhcmFuY2U9XCJvdXRsaW5lXCI+XG4gICAgICAgICAgICAgICAgPGlucHV0IG1hdElucHV0IHR5cGU9XCJudW1iZXJcIiBmb3JtQ29udHJvbE5hbWU9XCJ0ZWxlcGhvbmVOdW1iZXJcIiAoaW5wdXQpPVwib25DaGFuZ2VGaWVsZCgndGVsZXBob25lTnVtYmVyJylcIj5cbiAgICAgICAgICAgICAgPC9tYXQtZm9ybS1maWVsZD5cbiAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgIDxtYXQtZGl2aWRlcj48L21hdC1kaXZpZGVyPlxuICAgICAgICAgIDxkaXYgY2xhc3M9XCJpbnB1dC1ob2xkZXJcIj5cbiAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJpbnB1dC1ob2xkZXJfX25hbWVcIj5Nb2JpbGUgTnVtYmVyPC9kaXY+XG4gICAgICAgICAgICA8ZGl2IGNsYXNzPVwiaW5wdXQtaG9sZGVyX19pbnB1dFwiPlxuICAgICAgICAgICAgICA8bWF0LWZvcm0tZmllbGQgYXBwZWFyYW5jZT1cIm91dGxpbmVcIj5cbiAgICAgICAgICAgICAgICA8aW5wdXQgbWF0SW5wdXQgdHlwZT1cIm51bWJlclwiIGZvcm1Db250cm9sTmFtZT1cIm1vYmlsZU51bWJlclwiIChpbnB1dCk9XCJvbkNoYW5nZUZpZWxkKCdtb2JpbGVOdW1iZXInKVwiPlxuICAgICAgICAgICAgICA8L21hdC1mb3JtLWZpZWxkPlxuICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgPG1hdC1kaXZpZGVyPjwvbWF0LWRpdmlkZXI+XG4gICAgICAgICAgPGRpdiBjbGFzcz1cImlucHV0LWhvbGRlclwiPlxuICAgICAgICAgICAgPGRpdiBjbGFzcz1cImlucHV0LWhvbGRlcl9fbmFtZVwiPkRpZ2VzdCBjcmVkZW50aWFsczwvZGl2PlxuICAgICAgICAgICAgPGRpdiBjbGFzcz1cImlucHV0LWhvbGRlcl9faW5wdXRcIj5cbiAgICAgICAgICAgICAgPG1hdC1mb3JtLWZpZWxkIGFwcGVhcmFuY2U9XCJvdXRsaW5lXCI+XG4gICAgICAgICAgICAgICAgPGlucHV0IG1hdElucHV0IHR5cGU9XCJ0ZXh0XCIgZm9ybUNvbnRyb2xOYW1lPVwiZGlnZXN0Q3JlZGVudGlhbHNcIiAoaW5wdXQpPVwib25DaGFuZ2VGaWVsZCgnZGlnZXN0Q3JlZGVudGlhbHMnKVwiPlxuICAgICAgICAgICAgICA8L21hdC1mb3JtLWZpZWxkPlxuICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgPG1hdC1kaXZpZGVyPjwvbWF0LWRpdmlkZXI+XG4gICAgICAgICAgPGRpdiBjbGFzcz1cImlucHV0LWhvbGRlclwiPlxuICAgICAgICAgICAgPGRpdiBjbGFzcz1cImlucHV0LWhvbGRlcl9fbmFtZVwiPkRpcmFjdG9yeSBVUkk8L2Rpdj5cbiAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJpbnB1dC1ob2xkZXJfX2lucHV0XCI+XG4gICAgICAgICAgICAgIDxtYXQtZm9ybS1maWVsZCBhcHBlYXJhbmNlPVwib3V0bGluZVwiPlxuICAgICAgICAgICAgICAgIDxpbnB1dCBtYXRJbnB1dCB0eXBlPVwidGV4dFwiIGZvcm1Db250cm9sTmFtZT1cImRpcmVjdG9yeVVyaVwiIChpbnB1dCk9XCJvbkNoYW5nZUZpZWxkKCdkaXJlY3RvcnlVcmknKVwiPlxuICAgICAgICAgICAgICA8L21hdC1mb3JtLWZpZWxkPlxuICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgPG1hdC1kaXZpZGVyPjwvbWF0LWRpdmlkZXI+XG4gICAgICAgICAgPGRpdiBjbGFzcz1cImlucHV0LWhvbGRlclwiPlxuICAgICAgICAgICAgPGRpdiBjbGFzcz1cImlucHV0LWhvbGRlcl9fbmFtZVwiPlRpdGxlPC9kaXY+XG4gICAgICAgICAgICA8ZGl2IGNsYXNzPVwiaW5wdXQtaG9sZGVyX19pbnB1dFwiPlxuICAgICAgICAgICAgICA8bWF0LWZvcm0tZmllbGQgYXBwZWFyYW5jZT1cIm91dGxpbmVcIj5cbiAgICAgICAgICAgICAgICA8aW5wdXQgbWF0SW5wdXQgdHlwZT1cInRleHRcIiBmb3JtQ29udHJvbE5hbWU9XCJ0aXRsZVwiIChpbnB1dCk9XCJvbkNoYW5nZUZpZWxkKCd0aXRsZScpXCI+XG4gICAgICAgICAgICAgIDwvbWF0LWZvcm0tZmllbGQ+XG4gICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICA8bWF0LWRpdmlkZXI+PC9tYXQtZGl2aWRlcj5cbiAgICAgICAgICA8ZGl2IGNsYXNzPVwiaW5wdXQtaG9sZGVyXCI+XG4gICAgICAgICAgICA8ZGl2IGNsYXNzPVwiaW5wdXQtaG9sZGVyX19uYW1lXCI+SG9tZSBOdW1iZXI8L2Rpdj5cbiAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJpbnB1dC1ob2xkZXJfX2lucHV0XCI+XG4gICAgICAgICAgICAgIDxtYXQtZm9ybS1maWVsZCBhcHBlYXJhbmNlPVwib3V0bGluZVwiPlxuICAgICAgICAgICAgICAgIDxpbnB1dCBtYXRJbnB1dCB0eXBlPVwibnVtYmVyXCIgZm9ybUNvbnRyb2xOYW1lPVwiaG9tZU51bWJlclwiIChpbnB1dCk9XCJvbkNoYW5nZUZpZWxkKCdob21lTnVtYmVyJylcIj5cbiAgICAgICAgICAgICAgPC9tYXQtZm9ybS1maWVsZD5cbiAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgIDxtYXQtZGl2aWRlcj48L21hdC1kaXZpZGVyPlxuICAgICAgICAgIDxkaXYgY2xhc3M9XCJpbnB1dC1ob2xkZXJcIj5cbiAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJpbnB1dC1ob2xkZXJfX25hbWVcIj5QYWdlciBOdW1iZXI8L2Rpdj5cbiAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJpbnB1dC1ob2xkZXJfX2lucHV0XCI+XG4gICAgICAgICAgICAgIDxtYXQtZm9ybS1maWVsZCBhcHBlYXJhbmNlPVwib3V0bGluZVwiPlxuICAgICAgICAgICAgICAgIDxpbnB1dCBtYXRJbnB1dCB0eXBlPVwibnVtYmVyXCIgZm9ybUNvbnRyb2xOYW1lPVwicGFnZXJOdW1iZXJcIiAoaW5wdXQpPVwib25DaGFuZ2VGaWVsZCgncGFnZXJOdW1iZXInKVwiPlxuICAgICAgICAgICAgICA8L21hdC1mb3JtLWZpZWxkPlxuICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgPG1hdC1kaXZpZGVyPjwvbWF0LWRpdmlkZXI+XG4gICAgICAgICAgPGRpdiBjbGFzcz1cImlucHV0LWhvbGRlclwiPlxuICAgICAgICAgICAgPGRpdiBjbGFzcz1cImlucHV0LWhvbGRlcl9fbmFtZVwiPkRpc3BsYXkgTmFtZTwvZGl2PlxuICAgICAgICAgICAgPGRpdiBjbGFzcz1cImlucHV0LWhvbGRlcl9faW5wdXRcIj5cbiAgICAgICAgICAgICAgPG1hdC1mb3JtLWZpZWxkIGFwcGVhcmFuY2U9XCJvdXRsaW5lXCI+XG4gICAgICAgICAgICAgICAgPGlucHV0IG1hdElucHV0IHR5cGU9XCJ0ZXh0XCIgZm9ybUNvbnRyb2xOYW1lPVwiZGlzcGxheU5hbWVcIiAoaW5wdXQpPVwib25DaGFuZ2VGaWVsZCgnZGlzcGxheU5hbWUnKVwiPlxuICAgICAgICAgICAgICA8L21hdC1mb3JtLWZpZWxkPlxuICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgPC9kaXY+XG4gICAgICAgIDwvZGl2PlxuICAgICAgPC9kaXY+XG5cbiAgICA8L2Rpdj5cblxuICA8L2Zvcm0+XG48L25nLXRlbXBsYXRlPlxuXG48bWF0LXByb2dyZXNzLXNwaW5uZXIgKm5nSWY9XCJkYXRhUGVuZGluZ1wiXG4gIGNsYXNzPVwicGFnZS1zcGlubmVyXCJcbiAgbW9kZT1cImluZGV0ZXJtaW5hdGVcIlxuICBbZGlhbWV0ZXJdPVwiMTIwXCI+PC9tYXQtcHJvZ3Jlc3Mtc3Bpbm5lcj5cbiJdfQ==
173
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidXNlci1tYW5hZ2Utd2lkZ2V0LmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL3R1a2kvd2lkZ2V0cy91c2VyLW1hbmFnZS9zcmMvdXNlci1tYW5hZ2Utd2lkZ2V0LmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL3R1a2kvd2lkZ2V0cy91c2VyLW1hbmFnZS9zcmMvdXNlci1tYW5hZ2Utd2lkZ2V0LmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxTQUFTLEVBQUUsWUFBWSxFQUFFLEtBQUssRUFBVSxNQUFNLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDL0UsT0FBTyxFQUFhLFVBQVUsRUFBRSxNQUFNLGdCQUFnQixDQUFDOzs7Ozs7Ozs7Ozs7OztBQVV2RCxNQUFNLE9BQU8seUJBQXlCO0lBV3BDLElBQUksSUFBSTtRQUNOLE9BQU8sSUFBSSxDQUFDLFdBQVcsRUFBRSxJQUFJLEVBQUUsSUFBSSxDQUFDO0lBQ3RDLENBQUM7SUFFTSxNQUFNO1FBQ1gsT0FBTyxJQUFJLENBQUMsSUFBSSxDQUFDLGNBQWMsQ0FBQztJQUNsQyxDQUFDO0lBQ0QsSUFBSSxJQUFJO1FBQ04sT0FBTyxJQUFJLENBQUMsV0FBVyxDQUFDLElBQUksQ0FBQztJQUMvQixDQUFDO0lBRUQsSUFBSSxRQUFRO1FBQ1YsT0FBTyxHQUFHLElBQUksQ0FBQyxJQUFJLEVBQUUsU0FBUyxJQUFJLEVBQUUsSUFBSSxJQUFJLENBQUMsSUFBSSxFQUFFLFFBQVEsSUFBSSxFQUFFLEVBQUUsQ0FBQztJQUN0RSxDQUFDO0lBR0QsWUFDUyxXQUF3QixFQUN2QixVQUFzQjtRQUR2QixnQkFBVyxHQUFYLFdBQVcsQ0FBYTtRQUN2QixlQUFVLEdBQVYsVUFBVSxDQUFZO1FBekJ0QixXQUFNLEdBQUcsSUFBSSxZQUFZLEVBQVUsQ0FBQztRQUNwQyxhQUFRLEdBQUcs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LENBQUM7aUJBQzNDO1lBQ0gsQ0FBQyxFQUNELENBQUMsQ0FBQyxLQUFLLEVBQUUsRUFBRTtnQkFDVCxJQUFJLENBQUMsV0FBVyxDQUFDLGtCQUFrQixHQUFHLEtBQUssQ0FBQztnQkFDNUMsSUFBSSxLQUFLLENBQUMsTUFBTSxLQUFLLEdBQUcsRUFBRTtvQkFDeEIsaUdBQWlHO2lCQUNsRztxQkFBTTtvQkFDTCxJQUFJLENBQUMsV0FBVyxDQUFDLElBQUksQ0FBQyxTQUFTLEdBQUcsSUFBSSxDQUFDLElBQUksRUFBRSxHQUFHLENBQUMsUUFBUSxDQUFDLEVBQUUsS0FBSyxDQUFBO2lCQUNsRTtZQUNILENBQUMsQ0FBQyxDQUFDLENBQUM7U0FDVDthQUFNO1lBQ0wsT0FBTyxJQUFJLENBQUMsV0FBVyxFQUFFLElBQUksRUFBRSxTQUFTLENBQUM7U0FDMUM7SUFDSCxDQUFDO0lBRU0sSUFBSTtRQUNULElBQUksQ0FBQyxXQUFXLEVBQUUsQ0FBQTtJQUNwQixDQUFDOzt1SEFwS1UseUJBQXlCOzJHQUF6Qix5QkFBeUIsaU1DWHRDLGs5YkF3U0E7NEZEN1JhLHlCQUF5QjtrQkFMckMsU0FBUzsrQkFDRSx3QkFBd0I7MkhBUXhCLE1BQU07c0JBQWYsTUFBTTtnQkFDRyxRQUFRO3NCQUFqQixNQUFNO2dCQUNFLEtBQUs7c0JBQWIsS0FBSztnQkFDRyxJQUFJO3NCQUFaLEtBQUs7Z0JBQ0csTUFBTTtzQkFBZCxLQUFLO2dCQUNHLE1BQU07c0JBQWQsS0FBSyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENvbXBvbmVudCwgRXZlbnRFbWl0dGVyLCBJbnB1dCwgT25Jbml0LCBPdXRwdXQgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IEZvcm1Hcm91cCwgVmFsaWRhdG9ycyB9IGZyb20gJ0Bhbmd1bGFyL2Zvcm1zJztcbmltcG9ydCB7IFVzZXJTZXJ2aWNlIH0gZnJvbSAnLi9zZXJ2aWNlcy91c2VyLnNlcnZpY2UnO1xuaW1wb3J0IHsgQVBJU2VydmljZSB9IGZyb20gXCIuL3NlcnZpY2VzL2FwaS5zZXJ2aWNlXCI7XG5pbXBvcnQgeyBTaW1wbGlmaWVkVXNlciB9IGZyb20gJy4vY2xhc3Nlcy9zaW1wbGlmaWVkLXVzZXInO1xuXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICdhcHAtdXNlci1tYW5hZ2Utd2lkZ2V0JyxcbiAgdGVtcGxhdGVVcmw6ICcuL3VzZXItbWFuYWdlLXdpZGdldC5jb21wb25lbnQuaHRtbCcsXG4gIHN0eWxlVXJsczogWycuL3VzZXItbWFuYWdlLXdpZGdldC5jb21wb25lbnQuc2NzcyddLFxufSlcbmV4cG9ydCBjbGFzcyBVc2VyTWFuYWdlV2lkZ2V0Q29tcG9uZW50IGltcGxlbWVudHMgT25Jbml0IHtcblxuICBwdWJsaWMgZGF0YVBlbmRpbmchOiBib29sZWFuO1xuXG4gIEBPdXRwdXQoKSBvblNhdmUgPSBuZXcgRXZlbnRFbWl0dGVyPHN0cmluZz4oKTtcbiAgQE91dHB1dCgpIG9uQ2hhbmdlID0gbmV3IEV2ZW50RW1pdHRlcjxzdHJpbmc+KCk7XG4gIEBJbnB1dCgpIHRva2VuITogc3RyaW5nO1xuICBASW5wdXQoKSBob3N0ITogc3RyaW5nO1xuICBASW5wdXQoKSBzaXRlSWQhOiBudW1iZXI7XG4gIEBJbnB1dCgpIHVzZXJJZCE6IHN0cmluZztcblxuICBnZXQgZm9ybSgpOiBGb3JtR3JvdXAge1xuICAgIHJldHVybiB0aGlzLnVzZXJTZXJ2aWNlPy51c2VyPy5mb3JtO1xuICB9XG5cbiAgcHVibGljIGlzTGRhcCgpOmJvb2xlYW57XG4gICAgcmV0dXJuIHRoaXMudXNlci5sZGFwSW50ZWdyYXRlZDtcbiAgfVxuICBnZXQgdXNlcigpOiBTaW1wbGlmaWVkVXNlciB7XG4gICAgcmV0dXJuIHRoaXMudXNlclNlcnZpY2UudXNlcjtcbiAgfVxuXG4gIGdldCB1c2VyTmFtZSgpOiBzdHJpbmcge1xuICAgIHJldHVybiBgJHt0aGlzLnVzZXI/LmZpcnN0TmFtZSB8fCAnJ30gJHt0aGlzLnVzZXI/Lmxhc3ROYW1lIHx8ICcnfWA7XG4gIH1cblxuXG4gIGNvbnN0cnVjdG9yKFxuICAgIHB1YmxpYyB1c2VyU2VydmljZTogVXNlclNlcnZpY2UsXG4gICAgcHJpdmF0ZSBhcGlTZXJ2aWNlOiBBUElTZXJ2aWNlLFxuICApIHtcbiAgfVxuXG4gIG5nT25Jbml0KCk6IHZvaWQge1xuICAgIHRoaXMuYXBpU2VydmljZS50b2tlbiA9IHRoaXMudG9rZW47XG4gICAgdGhpcy5hcGlTZXJ2aWNlLmFwaVVybCA9IHRoaXMuaG9zdDtcbiAgICB0aGlzLmdldERhdGEoKTtcbiAgfVxuXG4gIHB1YmxpYyBvbkNoYW5nZUZpZWxkKHRva2VuOiBzdHJpbmcpOiB2b2lkIHtcbiAgICAgIHRoaXMub25DaGFuZ2UubmV4dChcInN0YXJ0IGNoYW5nZS4uXCIpO1xuXG4gICAgaWYgKCF0b2tlbikge1xuICAgICAgcmV0dXJuO1xuICAgIH1cbiAgICAodGhpcy51c2VyU2VydmljZS51c2VyIGFzIGFueSlbdG9rZW5dID0gdGhpcy5mb3JtPy5nZXQodG9rZW4pPy52YWx1ZTtcblxuICAgIGlmICh0b2tlbiA9PT0gJ21pZGRsZU5hbWUnKSB7XG4gICAgICB0aGlzLmZvcm0/LmdldCh0b2tlbik/LnNldFZhbGlkYXRvcnMoW1ZhbGlkYXRvcnMucGF0dGVybignWyBhLXpBLVotXSsnKV0pO1xuICAgIH1cbiAgICBpZiAodG9rZW4gPT09ICd0ZWxlcGhvbmVOdW1iZXInIHx8IHRva2VuID09PSAnbW9iaWxlTnVtYmVyJyB8fCAgdG9rZW4gPT09ICdwYWdlck51bWJlcicgfHwgdG9rZW4gPT09ICdob21lTnVtYmVyJykge1xuICAgICAgdGhpcy5mb3JtPy5nZXQodG9rZW4pPy5zZXRWYWxpZGF0b3JzKFtWYWxpZGF0b3JzLnBhdHRlcm4oJ1sgMC05LStdKycpXSk7XG4gICAgfVxuICAgIHRoaXMuZm9ybT8uZ2V0KHRva2VuKT8udXBkYXRlVmFsdWVBbmRWYWxpZGl0eSgpO1xuICAgIHRoaXMudmFsaWRhdGVVc2VySWQoKTtcbiAgfVxuXG4gIHB1YmxpYyBzYXZlQ2hhbmdlcygpOiB2b2lkIHtcbiAgICB0aGlzLm9uU2F2ZS5uZXh0KFwic3RhcnQgc2F2aW5nLi5cIik7XG4gICAgaWYgKCF0aGlzLnVzZXJTZXJ2aWNlLmhhc1Vuc2F2ZWRDaGFuZ2VzKCkgfHwgdGhpcy5mb3JtPy5pbnZhbGlkKSB7XG4gICAgICByZXR1cm47XG4gICAgfVxuICAgIGNvbnN0IHN1YnNjcmlwdGlvbiA9IHRoaXMudXNlclNlcnZpY2UucGVyc2lzdENhY2hlQ2hhbmdlcygpXG4gICAgICAuc3Vic2NyaWJlKCgpID0+IHtcbiAgICAgICAgdGhpcy5vblNhdmUubmV4dChcInNhdmVkXCIpO1xuICAgICAgICBzdWJzY3JpcHRpb24udW5zdWJzY3JpYmUoKTtcbiAgICAgIH0pXG4gIH1cblxuICBwdWJsaWMgdG9nZ2xlRWRpdE1vZGUoKSB7XG4gICAgdGhpcy51c2VyU2VydmljZS51c2VyLnRvZ2dsZUVkaXRNb2RlKCk7XG4gIH1cblxuICBwdWJsaWMgaXNTYXZpbmdEaXNhYmxlZCgpOiBib29sZWFuIHtcbiAgICByZXR1cm4gIXRoaXMudXNlclNlcnZpY2UuaGFzVW5zYXZlZENoYW5nZXMoKSB8fCB0aGlzLnVzZXJTZXJ2aWNlLmhhc0V4aXN0ZWRVc2VySWQ7XG4gIH1cblxuICBwdWJsaWMgY2hhbmdlRmllbGQodG9rZW46IHN0cmluZyk6IHZvaWQge1xuICAgIHRoaXMub25DaGFuZ2UubmV4dChcInN0YXJ0IGNoYW5nZS4uXCIpO1xuICAgIGNvbnN0IGZvcm1GaWVsZCA9IHRoaXMudXNlcj8uZm9ybT8uZ2V0KHRva2VuKTtcbiAgICBpZiAodG9rZW4gIT09ICdjb25maXJtRGlnZXN0Q3JlZGVudGlhbHMnKSB7XG4gICAgICAvLyBAdHMtaWdub3JlXG4gICAgICB0aGlzLnVzZXJbdG9rZW5dID0gZm9ybUZpZWxkPy52YWx1ZTtcbiAgICB9XG4gICAgaWYgKHRva2VuID09PSAnZGlnZXN0Q3JlZGVudGlhbHMnIHx8IHRva2VuID09PSAnY29uZmlybURpZ2VzdENyZWRlbnRpYWxzJykge1xuICAgICAgdGhpcy5kaWdlc3RDcmVkZW50aWFsc0hhbmRsZXIodG9rZW4sIGZvcm1GaWVsZCk7XG4gICAgfVxuICB9XG5cbiAgcHJpdmF0ZSBkaWdlc3RDcmVkZW50aWFsc0hhbmRsZXIodG9rZW46IHN0cmluZywgZmllbGQ6IGFueSkge1xuICAgIGNvbnN0IGZpZWxkTmFtZVRvQ29tcGFyZSA9IHRva2VuID09PSAnZGlnZXN0Q3JlZGVudGlhbHMnID8gJ2NvbmZpcm1EaWdlc3RDcmVkZW50aWFscycgOiAnZGlnZXN0Q3JlZGVudGlhbHMnO1xuICAgIGNvbnN0IGZpZWxkVG9Db21wYXJlID0gdGhpcy51c2VyU2VydmljZS51c2VyLmZvcm0uZ2V0KGZpZWxkTmFtZVRvQ29tcGFyZSk7XG4gICAgaWYgKHRoaXMudXNlclNlcnZpY2UudXNlcj8uZm9ybT8uZ2V0KHRva2VuKSkge1xuICAgICAgdGhpcy51c2VyU2VydmljZS51c2VyPy5mb3JtPy5nZXQodG9rZW4pPy5zZXRFcnJvcnMobnVsbCk7XG4gICAgICB0aGlzLnVzZXJTZXJ2aWNlLnVzZXI/LmZvcm0/LmdldChmaWVsZE5hbWVUb0NvbXBhcmUpPy5zZXRFcnJvcnMobnVsbCk7XG5cbiAgICAgLyogaWYgKCFmaWVsZC52YWx1ZSAmJiAhZmllbGRUb0NvbXBhcmUudmFsdWUpIHtcbiAgICAgICAgdGhpcy51c2VyU2VydmljZS51c2VyPy5kaWdlc3RDcmVkZW50aWFscyA9IG51bGw7XG4gICAgICAgIHJldHVybjtcbiAgICAgIH1cblxuICAgICAgaWYgKCFmaWVsZC52YWx1ZSAmJiBmaWVsZFRvQ29tcGFyZS52YWx1ZSB8fCAhZmllbGRUb0NvbXBhcmUudmFsdWUgJiYgZmllbGQudmFsdWUpIHtcbiAgICAgICAgY29uc3QgcmVxdWlyZWRGaWVsZE5hbWUgPSBmaWVsZC52YWx1ZSA/IGZpZWxkTmFtZVRvQ29tcGFyZSA6IHRva2VuO1xuICAgICAgICB0aGlzLnVzZXJTZXJ2aWNlLnVzZXIuZm9ybS5nZXQocmVxdWlyZWRGaWVsZE5hbWUpLnNldEVycm9ycyh7cmVxdWlyZWQ6IHRydWV9KTtcbiAgICAgICAgcmV0dXJuO1xuICAgICAgfVxuICAgICAgaWYgKGZpZWxkLnZhbHVlICYmIGZpZWxkVG9Db21wYXJlLnZhbHVlICYmIGZpZWxkLnZhbHVlICE9PSBmaWVsZFRvQ29tcGFyZS52YWx1ZSkge1xuICAgICAgICB0aGlzLnVzZXJTZXJ2aWNlLnVzZXIuZm9ybS5nZXQodG9rZW4pLnNldEVycm9ycyh7bWlzbWF0Y2g6IHRydWV9KTtcbiAgICAgICAgdGhpcy51c2VyU2VydmljZS51c2VyLmZvcm0uZ2V0KGZpZWxkTmFtZVRvQ29tcGFyZSkuc2V0RXJyb3JzKHttaXNtYXRjaDogdHJ1ZX0pO1xuICAgICAgfSovXG4gICAgfVxuXG4gIH1cblxuICBwcml2YXRlIGdldERhdGEoKSB7XG4gICAgdGhpcy5kYXRhUGVuZGluZyA9IHRydWU7XG4gICAgdGhpcy51c2VyU2VydmljZS5mZXRjaFVzZXJUb2tlbih0aGlzLnNpdGVJZCwgdGhpcy51c2VySWQpXG4gICAgICAuc3Vic2NyaWJlKHtcbiAgICAgICAgY29tcGxldGU6ICh2OiBhbnkpID0+IHtcbiAgICAgICAgICB0aGlzLmRhdGFQZW5kaW5nID0gZmFsc2U7XG4gICAgICAgIH0sXG4gICAgICAgIGVycm9yOiAoZTogYW55KSA9PiB0aGlzLmRhdGFQZW5kaW5nID0gZmFsc2UsXG4gICAgICB9KTtcbiAgfVxuXG4gIHByaXZhdGUgc2V0Q29va2llKG5hbWU6IHN0cmluZywgdmFsdWU6IHN0cmluZywgZGF5czogbnVtYmVyKSB7XG4gICAgdmFyIGV4cGlyZXMgPSBcIlwiO1xuICAgIGlmIChkYXlzKSB7XG4gICAgICB2YXIgZGF0ZSA9IG5ldyBEYXRlKCk7XG4gICAgICBkYXRlLnNldFRpbWUoZGF0ZS5nZXRUaW1lKCkgKyAoZGF5cyAqIDI0ICogNjAgKiA2MCAqIDEwMDApKTtcbiAgICAgIGV4cGlyZXMgPSBcIjsgZXhwaXJlcz1cIiArIGRhdGUudG9VVENTdHJpbmcoKTtcbiAgICB9XG4gICAgZG9jdW1lbnQuY29va2llID0gbmFtZSArIFwiPVwiICsgKHZhbHVlIHx8IFwiXCIpICsgZXhwaXJlcyArIFwiOyBwYXRoPS9cIjtcbiAgfVxuXG4gIHByaXZhdGUgdmFsaWRhdGVVc2VySWQoKSB7XG4gICAgY29uc3QgaWRDb250cm9sID0gdGhpcy5mb3JtLmdldCgndXNlcmlkJyk7XG4gICAgaWYgKGlkQ29udHJvbD8udmFsdWUgIT09ICcnICYmIGlkQ29udHJvbD8udmFsdWUgIT09IHRoaXMudXNlclNlcnZpY2Uub3JpZ2luVXNlci51c2VyaWQpIHtcbiAgICAgIHRoaXMudXNlclNlcnZpY2UuZmV0Y2hVc2VyQnlJZChpZENvbnRyb2w/LnZhbHVlKVxuICAgICAgICAuc3Vic2NyaWJlKFxuICAgICAgICAgIChyZXM6IGFueSkgPT4ge1xuICAgICAgICAgICAgdGhpcy51c2VyU2VydmljZS51c2VySWRFeGlzdFBlbmRpbmcgPSBmYWxzZTtcbiAgICAgICAgICAgIGlkQ29udHJvbD8uc2V0RXJyb3JzKHtleGlzdDogdHJ1ZX0pO1xuICAgICAgICAgICAgaWYgKHRoaXMuZm9ybT8uZ2V0KCd1c2VyaWQnKT8uaGFzRXJyb3IoJ2V4aXN0JykpIHtcbiAgICAgICAgICAgICAgdGhpcy51c2VyU2VydmljZS5oYXNFeGlzdGVkVXNlcklkID0gdHJ1ZTtcbiAgICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAgIHRoaXMudXNlclNlcnZpY2UuaGFzRXhpc3RlZFVzZXJJZCA9IGZhbHNlO1xuICAgICAgICAgICAgfVxuICAgICAgICAgIH0sXG4gICAgICAgICAgKChlcnJvcikgPT4ge1xuICAgICAgICAgICAgdGhpcy51c2VyU2VydmljZS51c2VySWRFeGlzdFBlbmRpbmcgPSBmYWxzZTtcbiAgICAgICAgICAgIGlmIChlcnJvci5zdGF0dXMgIT09IDQwNCkge1xuICAgICAgICAgICAgICAvLyB0aGlzLm5vdGlmaWNhdGlvblNlcnZpY2Uud2FybmluZyh0aGlzLnRyYW5zbGF0ZS5pbnN0YW50KCdBUFBfVVNFUl9NU0cuQ0hFQ0tfVVNFUl9JRF9GQUlMRUQnKSk7XG4gICAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgICB0aGlzLnVzZXJTZXJ2aWNlLnVzZXIubmV3VXNlcklkID0gdGhpcy5mb3JtPy5nZXQoJ3VzZXJpZCcpPy52YWx1ZVxuICAgICAgICAgICAgfVxuICAgICAgICAgIH0pKTtcbiAgICB9IGVsc2Uge1xuICAgICAgZGVsZXRlIHRoaXMudXNlclNlcnZpY2U/LnVzZXI/Lm5ld1VzZXJJZDtcbiAgICB9XG4gIH1cblxuICBwdWJsaWMgc2F2ZSgpIHtcbiAgICB0aGlzLnNhdmVDaGFuZ2VzKClcbiAgfVxuXG59XG4iLCI8ZGl2ICpuZ0lmPVwiZGF0YVBlbmRpbmcgPT0gZmFsc2VcIj5cbjxkaXYgY2xhc3M9XCJoZWFkZXItYm94XCI+XG4gIDxkaXYgY2xhc3M9XCJjb250ZW50LWJveFwiPlxuICAgIDxkaXYgY2xhc3M9XCJoZWFkZXItYmFjay1ibG9ja1wiPlxuICAgICAgPHN2ZyB3aWR0aD1cIjE2XCIgaGVpZ2h0PVwiMTZcIiB2aWV3Qm94PVwiMCAwIDE2IDE2XCIgZmlsbD1cIm5vbmVcIiB4bWxucz1cImh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnXCI+XG4gICAgICAgIDxwYXRoIGQ9XCJNNS43MDc0NiA3Ljk5OTg3TDExLjM1MzkgMi4zNTM1MkMxMS40NDUzIDIuMjU5MjggMTEuNDk2IDIuMTMyODcgMTEuNDk1IDIuMDAxNTlDMTEuNDk0IDEuODcwMyAxMS40NDE0IDEuNzQ0NjcgMTEuMzQ4NiAxLjY1MTgzQzExLjI1NTggMS41NTg5OSAxMS4xMzAxIDEuNTA2MzkgMTAuOTk4OCAxLjUwNTM5QzEwLjg2NzYgMS41MDQzOCAxMC43NDExIDEuNTU1MDYgMTAuNjQ2OSAxLjY0NjQ3TDQuNjQ2OTEgNy42NDY0N0M0LjU1MzE2IDcuNzQwMjMgNC41MDA0OSA3Ljg2NzQgNC41MDA0OSA3Ljk5OTk5QzQuNTAwNDkgOC4xMzI1OSA0LjU1MzE2IDguMjU5NzUgNC42NDY5MSA4LjM1MzUyTDEwLjY0NjkgMTQuMzUzNUMxMC42OTMxIDE0LjQwMTEgMTAuNzQ4MiAxNC40MzkgMTAuODA5MiAxNC40NjUxQzEwLjg3MDIgMTQuNDkxMiAxMC45MzU3IDE0LjUwNDkgMTEuMDAyIDE0LjUwNTRDMTEuMDY4MyAxNC41MDU5IDExLjEzNCAxNC40OTMyIDExLjE5NTQgMTQuNDY4QzExLjI1NjcgMTQuNDQyOSAxMS4zMTI1IDE0LjQwNTggMTEuMzU5MyAxNC4zNTg5QzExLjQwNjIgMTQuMzEyIDExLjQ0MzMgMTQuMjU2MyAxMS40Njg1IDE0LjE5NDlDMTEuNDkzNiAxNC4xMzM2IDExLjUwNjMgMTQuMDY3OSAxMS41MDU4IDE0LjAwMTZDMTEuNTA1MyAxMy45MzUzIDExLjQ5MTYgMTMuODY5NyAxMS40NjU1IDEzLjgwODhDMTEuNDM5NCAxMy43NDc4IDExLjQwMTUgMTMuNjkyNiAxMS4zNTM5IDEzLjY0NjVMNS43MDc0NiA3Ljk5OTg3WlwiIGZpbGw9XCJibGFja1wiIGZpbGwtb3BhY2l0eT1cIjAuOTVcIi8+XG4gICAgICA8L3N2Zz5cbiAgICAgIFVzZXJzXG4gICAgPC9kaXY+XG48IS0tICAgIDxkaXYgY2xhc3M9XCJoZWFkZXItYnV0dG9uLWJsb2NrXCI+LS0+XG48IS0tICAgICAgPGJ1dHRvbiBtYXQtcmFpc2VkLWJ1dHRvbi0tPlxuPCEtLSAgICAgICAgICAgICAgW2Rpc2FibGVkXT1cIiF1c2VyU2VydmljZS5oYXNVbnNhdmVkQ2hhbmdlcygpXCItLT5cbjwhLS0gICAgICAgICAgICAgIChjbGljayk9XCJzYXZlQ2hhbmdlcygpXCI+U2F2ZTwvYnV0dG9uPi0tPlxuPCEtLSAgICA8L2Rpdj4tLT5cbiAgPC9kaXY+XG48L2Rpdj5cbjxhcHAtdXNlci1pbmZvICpuZ0lmPVwidXNlclwiIFtuYW1lXT1cInVzZXJOYW1lXCIgW2VtYWlsXT1cInVzZXIuZW1haWxcIiBbYWN0aXZlXT1cImZhbHNlXCIgW3Bvc2l0aW9uXT1cIidTYWxlcyBTZW5pb3IgVlAnXCI+PC9hcHAtdXNlci1pbmZvPlxuXG48bWF0LXRhYi1ncm91cCBkaXNhYmxlUmlwcGxlIGNsYXNzPVwiY29udGVudC1ib3hcIj5cbiAgPG1hdC10YWIgbGFiZWw9XCJQcm9maWxlXCI+XG4gICAgPG5nLWNvbnRhaW5lciAqbmdUZW1wbGF0ZU91dGxldD1cInVzZXJQcm9maWxlXCI+XG4gICAgPC9uZy1jb250YWluZXI+XG4gIDwvbWF0LXRhYj5cbiAgPG1hdC10YWIgbGFiZWw9XCJEZXZpY2VzXCIgW2Rpc2FibGVkXT1cInRydWVcIj48L21hdC10YWI+XG4gIDxtYXQtdGFiIGxhYmVsPVwiTGluZXNcIiBbZGlzYWJsZWRdPVwidHJ1ZVwiPjwvbWF0LXRhYj5cbiAgPG1hdC10YWIgbGFiZWw9XCJGZWF0dXJlc1wiIFtkaXNhYmxlZF09XCJ0cnVlXCI+PC9tYXQtdGFiPlxuPC9tYXQtdGFiLWdyb3VwPlxuXG48bmctdGVtcGxhdGUgI3VzZXJQcm9maWxlPlxuICA8Zm9ybSAqbmdJZj1cInVzZXIgJiYgZm9ybVwiIFtmb3JtR3JvdXBdPVwiZm9ybVwiPlxuICAgIDxkaXYgY2xhc3M9XCJpbmZvLWJveGVzLWNvbnRhaW5lclwiPlxuICAgICAgPCEtLSAgICBVU0VSIElORk8gQk9YLS0+XG4gICAgICA8ZGl2IGNsYXNzPVwidXNlci1pbmZvLWJveCB1c2VyLWRldGFpbHMtYm94XCI+XG4gICAgICAgIDxoMyBjbGFzcz1cInVzZXItYm94LXRpdGxlXCI+VXNlciBEZXRhaWxzPC9oMz5cbiAgICAgICAgPGRpdiBjbGFzcz1cImZvcm0taG9sZGVyX19pbnB1dHNcIj5cbiAgICAgICAgICA8ZGl2IGNsYXNzPVwiaW5wdXQtaG9sZGVyXCI+XG4gICAgICAgICAgICA8ZGl2IGNsYXNzPVwiaW5wdXQtaG9sZGVyX19uYW1lXCI+VXNlciBJZDwvZGl2PlxuICAgICAgICAgICAgPGRpdiBjbGFzcz1cImlucHV0LWhvbGRlcl9faW5wdXRcIj5cbiAgICAgICAgICAgICAgPG1hdC1mb3JtLWZpZWxkIGFwcGVhcmFuY2U9XCJvdXRsaW5lXCI+XG4gICAgICAgICAgICAgICAgPGlucHV0IGZvcm1Db250cm9sTmFtZT1cInVzZXJpZFwiIFtkaXNhYmxlZF09XCJ0aGlzLmlzTGRhcCgpID8gJycgOiBmYWxzZVwiIFtyZWFkb25seV09XCJ0aGlzLmlzTGRhcCgpID8gJycgOiBmYWxzZVwiXG4gICAgICAgICAgICAgICAgICAgICAgIG1hdElucHV0IChpbnB1dCk9XCJvbkNoYW5nZUZpZWxkKCd1c2VyaWQnKVwiPlxuICAgICAgICAgICAgICAgIDxtYXQtZXJyb3JcbiAgICAgICAgICAgICAgICAgICpuZ0lmPVwiZm9ybS5nZXQoJ3VzZXJpZCcpLmhhc0Vycm9yKCdyZXF1aXJlZCcpXCI+XG4gICAgICAgICAgICAgICAgICA8aSBjbGFzcz1cImZhIGZhLWV4Y2xhbWF0aW9uLXRyaWFuZ2xlXCI+PC9pPlxuICAgICAgICAgICAgICAgICAgVGhpcyBmaWVsZCBpcyByZXF1aXJlZFxuICAgICAgICAgICAgICAgIDwvbWF0LWVycm9yPlxuICAgICAgICAgICAgICAgIDxtYXQtZXJyb3IgKm5nSWY9XCJmb3JtLmdldCgndXNlcmlkJykuaGFzRXJyb3IoJ2V4aXN0JylcIj5cbiAgICAgICAgICAgICAgICAgIDxpIGNsYXNzPVwiZmEgZmEtZXhjbGFtYXRpb24tdHJpYW5nbGVcIj48L2k+XG4gICAgICAgICAgICAgICAgICBVc2VyIElEIGFscmVhZHkgZXhpc3RzXG4gICAgICAgICAgICAgICAgPC9tYXQtZXJyb3I+XG4gICAgICAgICAgICAgIDwvbWF0LWZvcm0tZmllbGQ+XG4gICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICA8bWF0LWRpdmlkZXI+PC9tYXQtZGl2aWRlcj5cbiAgICAgICAgICA8ZGl2IGNsYXNzPVwiaW5wdXQtaG9sZGVyXCI+XG4gICAgICAgICAgICA8ZGl2IGNsYXNzPVwiaW5wdXQtaG9sZGVyX19uYW1lXCI+RW1haWw8L2Rpdj5cbiAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJpbnB1dC1ob2xkZXJfX2lucHV0XCI+XG4gICAgICAgICAgICAgIDxtYXQtZm9ybS1maWVsZCBhcHBlYXJhbmNlPVwib3V0bGluZVwiPlxuICAgICAgICAgICAgICAgIDxpbnB1dCBmb3JtQ29udHJvbE5hbWU9XCJlbWFpbFwiXG4gICAgICAgICAgICAgICAgICAgICAgICBbZGlzYWJsZWRdPVwidGhpcy5pc0xkYXAoKSA/ICcnIDogZmFsc2VcIiBbcmVhZG9ubHldPVwidGhpcy5pc0xkYXAoKSA/ICcnIDogZmFsc2VcIlxuICAgICAgICAgICAgICAgICAgICAgICBtYXRJbnB1dCAoaW5wdXQpPVwib25DaGFuZ2VGaWVsZCgnZW1haWwnKVwiPlxuICAgICAgICAgICAgICAgIDxtYXQtZXJyb3JcbiAgICAgICAgICAgICAgICAgICpuZ0lmPVwiZm9ybS5nZXQoJ2VtYWlsJykudG91Y2hlZCAmJiBmb3JtLmdldCgnZW1haWwnKS5oYXNFcnJvcigncmVxdWlyZWQnKVwiPlxuICAgICAgICAgICAgICAgICAgPGkgY2xhc3M9XCJmYSBmYS1leGNsYW1hdGlvbi10cmlhbmdsZVwiPjwvaT5cbiAgICAgICAgICAgICAgICAgIFRoaXMgZmllbGQgaXMgcmVxdWlyZWRcbiAgICAgICAgICAgICAgICA8L21hdC1lcnJvcj5cbiAgICAgICAgICAgICAgICA8bWF0LWVycm9yICpuZ0lmPVwiZm9ybS5nZXQoJ2VtYWlsJykudG91Y2hlZCAmJiBmb3JtLmdldCgnZW1haWwnKS5oYXNFcnJvcigncGF0dGVybicpXCI+XG4gICAgICAgICAgICAgICAgICA8aSBjbGFzcz1cImZhIGZhLWV4Y2xhbWF0aW9uLXRyaWFuZ2xlXCI+PC9pPlxuICAgICAgICAgICAgICAgICAgUGxlYXNlIGVudGVyIHZhbGlkIGVtYWlsXG4gICAgICAgICAgICAgICAgPC9tYXQtZXJyb3I+XG4gICAgICAgICAgICAgIDwvbWF0LWZvcm0tZmllbGQ+XG4gICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICA8bWF0LWRpdmlkZXI+PC9tYXQtZGl2aWRlcj5cbiAgICAgICAgICA8ZGl2IGNsYXNzPVwiaW5wdXQtaG9sZGVyXCI+XG4gICAgICAgICAgICA8ZGl2IGNsYXNzPVwiaW5wdXQtaG9sZGVyX19uYW1lXCI+RmlzcnQgTmFtZTwvZGl2PlxuICAgICAgICAgICAgPGRpdiBjbGFzcz1cImlucHV0LWhvbGRlcl9faW5wdXRcIj5cbiAgICAgICAgICAgICAgPG1hdC1mb3JtLWZpZWxkIGFwcGVhcmFuY2U9XCJvdXRsaW5lXCI+XG4gICAgICAgICAgICAgICAgPGlucHV0IGZvcm1Db250cm9sTmFtZT1cImZpcnN0TmFtZVwiXG4gICAgICAgICAgICAgICAgICAgICAgICBbZGlzYWJsZWRdPVwidGhpcy5pc0xkYXAoKSA/ICcnIDogZmFsc2VcIiBbcmVhZG9ubHldPVwidGhpcy5pc0xkYXAoKSA/ICcnIDogZmFsc2VcIlxuICAgICAgICAgICAgICAgICAgICAgICBtYXRJbnB1dCAoaW5wdXQpPVwib25DaGFuZ2VGaWVsZCgnZmlyc3ROYW1lJylcIj5cbiAgICAgICAgICAgICAgPC9tYXQtZm9ybS1maWVsZD5cbiAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgIDxtYXQtZGl2aWRlcj48L21hdC1kaXZpZGVyPlxuICAgICAgICAgIDxkaXYgY2xhc3M9XCJpbnB1dC1ob2xkZXJcIj5cbiAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJpbnB1dC1ob2xkZXJfX25hbWVcIj5MYXN0IE5hbWU8L2Rpdj5cbiAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJpbnB1dC1ob2xkZXJfX2lucHV0XCI+XG4gICAgICAgICAgICAgIDxtYXQtZm9ybS1maWVsZCBhcHBlYXJhbmNlPVwib3V0bGluZVwiPlxuICAgICAgICAgICAgICAgIDxpbnB1dCBmb3JtQ29udHJvbE5hbWU9XCJsYXN0TmFtZVwiXG4gICAgICAgICAgICAgICAgICAgICAgICBbZGlzYWJsZWRdPVwidGhpcy5pc0xkYXAoKSA/ICcnIDogZmFsc2VcIiBbcmVhZG9ubHldPVwidGhpcy5pc0xkYXAoKSA/ICcnIDogZmFsc2VcIlxuICAgICAgICAgICAgICAgICAgICAgICBtYXRJbnB1dCAoaW5wdXQpPVwib25DaGFuZ2VGaWVsZCgnbGFzdE5hbWUnKVwiPlxuICAgICAgICAgICAgICAgIDxtYXQtZXJyb3JcbiAgICAgICAgICAgICAgICAgICpuZ0lmPVwiZm9ybS5nZXQoJ2xhc3ROYW1lJykudG91Y2hlZCAmJiBmb3JtLmdldCgnbGFzdE5hbWUnKS5oYXNFcnJvcigncmVxdWlyZWQnKVwiPlxuICAgICAgICAgICAgICAgICAgPGkgY2xhc3M9XCJmYSBmYS1leGNsYW1hdGlvbi10cmlhbmdsZVwiPjwvaT5cbiAgICAgICAgICAgICAgICAgIFRoaXMgZmllbGQgaXMgcmVxdWlyZWRcbiAgICAgICAgICAgICAgICA8L21hdC1lcnJvcj5cbiAgICAgICAgICAgICAgPC9tYXQtZm9ybS1maWVsZD5cbiAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgIDxtYXQtZGl2aWRlcj48L21hdC1kaXZpZGVyPlxuICAgICAgICA8L2Rpdj5cblxuICAgICAgPC9kaXY+XG5cblxuICAgICAgPCEtLSAgICBVU0VSIElORk8gQk9YLS0+XG4gICAgICA8ZGl2IGNsYXNzPVwidXNlci1pbmZvLWJveCB1c2VyLWRldGFpbHMtYm94XCI+XG4gICAgICAgIDxoMyBjbGFzcz1cInVzZXItYm94LXRpdGxlXCI+R2VuZXJhbCBVc2VyIEluZm88L2gzPlxuICAgICAgICA8ZGl2IGNsYXNzPVwiZm9ybS1ob2xkZXJfX2lucHV0c1wiPlxuICAgICAgICAgIDxkaXYgY2xhc3M9XCJpbnB1dC1ob2xkZXJcIj5cbiAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJpbnB1dC1ob2xkZXJfX25hbWVcIj5EZXBhcnRtZW50PC9kaXY+XG4gICAgICAgICAgICA8ZGl2IGNsYXNzPVwiaW5wdXQtaG9sZGVyX19pbnB1dFwiPlxuICAgICAgICAgICAgICA8bWF0LWZvcm0tZmllbGQgYXBwZWFyYW5jZT1cIm91dGxpbmVcIj5cbiAgICAgICAgICAgICAgICA8aW5wdXQgZm9ybUNvbnRyb2xOYW1lPVwiZGVwYXJ0bWVudFwiIG1hdElucHV0IHR5cGU9XCJ0ZXh0XCIgKGlucHV0KT1cIm9uQ2hhbmdlRmllbGQoJ2RlcGFydG1lbnQnKVwiPlxuICAgICAgICAgICAgICA8L21hdC1mb3JtLWZpZWxkPlxuICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgPG1hdC1kaXZpZGVyPjwvbWF0LWRpdmlkZXI+XG4gICAgICAgICAgPGRpdiBjbGFzcz1cImlucHV0LWhvbGRlclwiPlxuICAgICAgICAgICAgPGRpdiBjbGFzcz1cImlucHV0LWhvbGRlcl9fbmFtZVwiPk1hbmFnZXIgdXNlciBJRDwvZGl2PlxuICAgICAgICAgICAgPGRpdiBjbGFzcz1cImlucHV0LWhvbGRlcl9faW5wdXRcIj5cbiAgICAgICAgICAgICAgPG1hdC1mb3JtLWZpZWxkIGFwcGVhcmFuY2U9XCJvdXRsaW5lXCI+XG4gICAgICAgICAgICAgICAgPGlucHV0IGZvcm1Db250cm9sTmFtZT1cIm1hbmFnZXJcIiBtYXRJbnB1dCB0eXBlPVwidGV4dFwiIChpbnB1dCk9XCJvbkNoYW5nZUZpZWxkKCdtYW5hZ2VyJylcIj5cbiAgICAgICAgICAgICAgPC9tYXQtZm9ybS1maWVsZD5cbiAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgIDxtYXQtZGl2aWRlcj48L21hdC1kaXZpZGVyPlxuICAgICAgICAgIDxkaXYgY2xhc3M9XCJpbnB1dC1ob2xkZXJcIj5cbiAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJpbnB1dC1ob2xkZXJfX25hbWVcIj5Bc3NvY2lhdGVkIFBDPC9kaXY+XG4gICAgICAgICAgICA8ZGl2IGNsYXNzPVwiaW5wdXQtaG9sZGVyX19pbnB1dFwiPlxuICAgICAgICAgICAgICA8bWF0LWZvcm0tZmllbGQgYXBwZWFyYW5jZT1cIm91dGxpbmVcIj5cbiAgICAgICAgICAgICAgICA8aW5wdXQgZm9ybUNvbnRyb2xOYW1lPVwiYXNzb2NpYXRlZFBjXCIgbWF0SW5wdXQgdHlwZT1cInRleHRcIiAoaW5wdXQpPVwib25DaGFuZ2VGaWVsZCgnYXNzb2NpYXRlZFBjJylcIj5cbiAgICAgICAgICAgICAgPC9tYXQtZm9ybS1maWVsZD5cbiAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgIDxtYXQtZGl2aWRlcj48L21hdC1kaXZpZGVyPlxuICAgICAgICAgIDxkaXYgY2xhc3M9XCJpbnB1dC1ob2xkZXJcIj5cbiAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJpbnB1dC1ob2xkZXJfX25hbWVcIj5EaWdlc3QgY3JlZGVudGlhbHM8L2Rpdj5cbiAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJpbnB1dC1ob2xkZXJfX2lucHV0XCI+XG4gICAgICAgICAgICAgIDxtYXQtZm9ybS1maWVsZCBhcHBlYXJhbmNlPVwib3V0bGluZVwiPlxuICAgICAgICAgICAgICAgIDxpbnB1dCBmb3JtQ29udHJvbE5hbWU9XCJkaWdlc3RDcmVkZW50aWFsc1wiIG1hdElucHV0IHR5cGU9XCJ0ZXh0XCIgKGlucHV0KT1cIm9uQ2hhbmdlRmllbGQoJ2RpZ2VzdENyZWRlbnRpYWxzJylcIj5cbiAgICAgICAgICAgICAgPC9tYXQtZm9ybS1maWVsZD5cbiAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgIDxtYXQtZGl2aWRlcj48L21hdC1kaXZpZGVyPlxuICAgICAgICAgIDxkaXYgY2xhc3M9XCJpbnB1dC1ob2xkZXJcIj5cbiAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJpbnB1dC1ob2xkZXJfX25hbWVcIj5Vc2VyIHByb2ZpbGU8L2Rpdj5cbiAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJpbnB1dC1ob2xkZXJfX2lucHV0XCI+XG4gICAgICAgICAgICAgIDxhcHAtbGF6eS1sb2FkaW5nLXNlbGVjdFxuICAgICAgICAgICAgICAgIFtzaXRlSWRdPVwic2l0ZUlkXCJcbiAgICAgICAgICAgICAgICBbY29udHJvbE5hbWVdPVwiJ3VzZXJQcm9maWxlJ1wiXG4gICAgICAgICAgICAgICAgW2Zvcm1dPVwidXNlci5mb3JtXCJcbiAgICAgICAgICAgICAgICAoY2hhbmdlRmllbGQpPVwiY2hhbmdlRmllbGQoJ3VzZXJQcm9maWxlJylcIlxuICAgICAgICAgICAgICAgIFtvcHRpb25zVG9rZW5dPVwiJ3VzZXJQcm9maWxlcydcIlxuICAgICAgICAgICAgICA+PC9hcHAtbGF6eS1sb2FkaW5nLXNlbGVjdD5cbiAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgIDxtYXQtZGl2aWRlcj48L21hdC1kaXZpZGVyPlxuICAgICAgICAgIDxkaXYgY2xhc3M9XCJpbnB1dC1ob2xkZXJcIj5cbiAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJpbnB1dC1ob2xkZXJfX25hbWVcIj5Nb2JpbGUgdm9pY2UgYWNjZXNzPC9kaXY+XG4gICAgICAgICAgICA8ZGl2IGNsYXNzPVwiaW5wdXQtaG9sZGVyX19pbnB1dFwiPlxuICAgICAgICAgICAgICA8bWF0LXNsaWRlLXRvZ2dsZVxuICAgICAgICAgICAgICAgIGZvcm1Db250cm9sTmFtZT1cImVuYWJsZU1vYmlsZVZvaWNlQWNjZXNzXCJcbiAgICAgICAgICAgICAgICAoY2hhbmdlKT1cIm9uQ2hhbmdlRmllbGQoJ2VuYWJsZU1vYmlsZVZvaWNlQWNjZXNzJylcIlxuICAgICAgICAgICAgICAgIFtjaGVja2VkXT1cInVzZXIuZW5hYmxlTW9iaWxlVm9pY2VBY2Nlc3NcIj5cbiAgICAgICAgICAgICAgPC9tYXQtc2xpZGUtdG9nZ2xlPlxuICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgPG1hdC1kaXZpZGVyPjwvbWF0LWRpdmlkZXI+XG4gICAgICAgICAgPGRpdiBjbGFzcz1cImlucHV0LWhvbGRlclwiPlxuICAgICAgICAgICAgPGRpdiBjbGFzcz1cImlucHV0LWhvbGRlcl9fbmFtZVwiPlVzZXJsb2NhbGU8L2Rpdj5cbiAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJpbnB1dC1ob2xkZXJfX2lucHV0XCI+XG4gICAgICAgICAgICAgIDxhcHAtbGF6eS1sb2FkaW5nLXNlbGVjdFxuICAgICAgICAgICAgICAgIFtzaXRlSWRdPVwic2l0ZUlkXCJcbiAgICAgICAgICAgICAgICBbY29udHJvbE5hbWVdPVwiJ3VzZXJMb2NhbGUnXCJcbiAgICAgICAgICAgICAgICBbZm9ybV09XCJ1c2VyLmZvcm1cIlxuICAgICAgICAgICAgICAgIChjaGFuZ2VGaWVsZCk9XCJjaGFuZ2VGaWVsZCgkZXZlbnQpXCJcbiAgICAgICAgICAgICAgICBbb3B0aW9uc1Rva2VuXT1cIid1c2VyTG9jYWxlcydcIlxuICAgICAgICAgICAgICAgIFtkZWZhdWx0XT1cIntrZXk6ICcnLCB2YWx1ZTogJ05vbmUnLCBkaXNhYmxlZDogZmFsc2V9XCI+XG4gICAgICAgICAgICAgIDwvYXBwLWxhenktbG9hZGluZy1zZWxlY3Q+XG4gICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICA8bWF0LWRpdmlkZXI+PC9tYXQtZGl2aWRlcj5cbiAgICAgICAgICA8ZGl2IGNsYXNzPVwiaW5wdXQtaG9sZGVyXCI+XG4gICAgICAgICAgICA8ZGl2IGNsYXNzPVwiaW5wdXQtaG9sZGVyX19uYW1lXCI+Q29uZmlybSBkaWdlc3QgY3JlZGVudGlhbHM8L2Rpdj5cbiAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJpbnB1dC1ob2xkZXJfX2lucHV0XCI+XG4gICAgICAgICAgICAgIDxtYXQtZm9ybS1maWVsZCBhcHBlYXJhbmNlPVwib3V0bGluZVwiPlxuICAgICAgICAgICAgICAgIDxpbnB1dCBmb3JtQ29udHJvbE5hbWU9XCJjb25maXJtRGlnZXN0Q3JlZGVudGlhbHNcIiBtYXRJbnB1dCB0eXBlPVwidGV4dFwiIChpbnB1dCk9XCJvbkNoYW5nZUZpZWxkKCdjb25maXJtRGlnZXN0Q3JlZGVudGlhbHMnKVwiPlxuICAgICAgICAgICAgICA8L21hdC1mb3JtLWZpZWxkPlxuICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgPC9kaXY+XG4gICAgICAgIDwvZGl2PlxuICAgICAgPC9kaXY+XG5cbiAgICAgIDwhLS0gICAgVVNFUiBJTkZPIEJPWC0tPlxuICAgICAgPGRpdiBjbGFzcz1cInVzZXItaW5mby1ib3ggdXNlci1kZXRhaWxzLWJveFwiPlxuICAgICAgICA8aDMgY2xhc3M9XCJ1c2VyLWJveC10aXRsZVwiPkNvbnRhY3QgSW5mb3JtYXRpb248L2gzPlxuICAgICAgICA8ZGl2IGNsYXNzPVwiZm9ybS1ob2xkZXJfX2lucHV0c1wiPlxuICAgICAgICAgIDxkaXYgY2xhc3M9XCJpbnB1dC1ob2xkZXJcIj5cbiAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJpbnB1dC1ob2xkZXJfX25hbWVcIj5NaWRkbGUgTmFtZTwvZGl2PlxuICAgICAgICAgICAgPGRpdiBjbGFzcz1cImlucHV0LWhvbGRlcl9faW5wdXRcIj5cbiAgICAgICAgICAgICAgPG1hdC1mb3JtLWZpZWxkIGFwcGVhcmFuY2U9XCJvdXRsaW5lXCI+XG4gICAgICAgICAgICAgICAgPGlucHV0IG1hdElucHV0IHR5cGU9XCJ0ZXh0XCIgZm9ybUNvbnRyb2xOYW1lPVwibWlkZGxlTmFtZVwiIChpbnB1dCk9XCJvbkNoYW5nZUZpZWxkKCdtaWRkbGVOYW1lJylcIj5cbiAgICAgICAgICAgICAgPC9tYXQtZm9ybS1maWVsZD5cbiAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgIDxtYXQtZGl2aWRlcj48L21hdC1kaXZpZGVyPlxuICAgICAgICAgIDxkaXYgY2xhc3M9XCJpbnB1dC1ob2xkZXJcIj5cbiAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJpbnB1dC1ob2xkZXJfX25hbWVcIj5UZWxlcGhvbmUgTnVtYmVyPC9kaXY+XG4gICAgICAgICAgICA8ZGl2IGNsYXNzPVwiaW5wdXQtaG9sZGVyX19pbnB1dFwiPlxuICAgICAgICAgICAgICA8bWF0LWZvcm0tZmllbGQgYXBwZWFyYW5jZT1cIm91dGxpbmVcIj5cbiAgICAgICAgICAgICAgICA8aW5wdXQgbWF0SW5wdXQgdHlwZT1cIm51bWJlclwiIGZvcm1Db250cm9sTmFtZT1cInRlbGVwaG9uZU51bWJlclwiIChpbnB1dCk9XCJvbkNoYW5nZUZpZWxkKCd0ZWxlcGhvbmVOdW1iZXInKVwiPlxuICAgICAgICAgICAgICA8L21hdC1mb3JtLWZpZWxkPlxuICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgPG1hdC1kaXZpZGVyPjwvbWF0LWRpdmlkZXI+XG4gICAgICAgICAgPGRpdiBjbGFzcz1cImlucHV0LWhvbGRlclwiPlxuICAgICAgICAgICAgPGRpdiBjbGFzcz1cImlucHV0LWhvbGRlcl9fbmFtZVwiPk1vYmlsZSBOdW1iZXI8L2Rpdj5cbiAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJpbnB1dC1ob2xkZXJfX2lucHV0XCI+XG4gICAgICAgICAgICAgIDxtYXQtZm9ybS1maWVsZCBhcHBlYXJhbmNlPVwib3V0bGluZVwiPlxuICAgICAgICAgICAgICAgIDxpbnB1dCBtYXRJbnB1dCB0eXBlPVwibnVtYmVyXCIgZm9ybUNvbnRyb2xOYW1lPVwibW9iaWxlTnVtYmVyXCIgKGlucHV0KT1cIm9uQ2hhbmdlRmllbGQoJ21vYmlsZU51bWJlcicpXCI+XG4gICAgICAgICAgICAgIDwvbWF0LWZvcm0tZmllbGQ+XG4gICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICA8bWF0LWRpdmlkZXI+PC9tYXQtZGl2aWRlcj5cbiAgICAgICAgICA8ZGl2IGNsYXNzPVwiaW5wdXQtaG9sZGVyXCI+XG4gICAgICAgICAgICA8ZGl2IGNsYXNzPVwiaW5wdXQtaG9sZGVyX19uYW1lXCI+RGlnZXN0IGNyZWRlbnRpYWxzPC9kaXY+XG4gICAgICAgICAgICA8ZGl2IGNsYXNzPVwiaW5wdXQtaG9sZGVyX19pbnB1dFwiPlxuICAgICAgICAgICAgICA8bWF0LWZvcm0tZmllbGQgYXBwZWFyYW5jZT1cIm91dGxpbmVcIj5cbiAgICAgICAgICAgICAgICA8aW5wdXQgbWF0SW5wdXQgdHlwZT1cInRleHRcIiBmb3JtQ29udHJvbE5hbWU9XCJkaWdlc3RDcmVkZW50aWFsc1wiIChpbnB1dCk9XCJvbkNoYW5nZUZpZWxkKCdkaWdlc3RDcmVkZW50aWFscycpXCI+XG4gICAgICAgICAgICAgIDwvbWF0LWZvcm0tZmllbGQ+XG4gICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICA8bWF0LWRpdmlkZXI+PC9tYXQtZGl2aWRlcj5cbiAgICAgICAgICA8ZGl2IGNsYXNzPVwiaW5wdXQtaG9sZGVyXCI+XG4gICAgICAgICAgICA8ZGl2IGNsYXNzPVwiaW5wdXQtaG9sZGVyX19uYW1lXCI+RGlyYWN0b3J5IFVSSTwvZGl2PlxuICAgICAgICAgICAgPGRpdiBjbGFzcz1cImlucHV0LWhvbGRlcl9faW5wdXRcIj5cbiAgICAgICAgICAgICAgPG1hdC1mb3JtLWZpZWxkIGFwcGVhcmFuY2U9XCJvdXRsaW5lXCI+XG4gICAgICAgICAgICAgICAgPGlucHV0IG1hdElucHV0IHR5cGU9XCJ0ZXh0XCIgZm9ybUNvbnRyb2xOYW1lPVwiZGlyZWN0b3J5VXJpXCIgKGlucHV0KT1cIm9uQ2hhbmdlRmllbGQoJ2RpcmVjdG9yeVVyaScpXCI+XG4gICAgICAgICAgICAgIDwvbWF0LWZvcm0tZmllbGQ+XG4gICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICA8bWF0LWRpdmlkZXI+PC9tYXQtZGl2aWRlcj5cbiAgICAgICAgICA8ZGl2IGNsYXNzPVwiaW5wdXQtaG9sZGVyXCI+XG4gICAgICAgICAgICA8ZGl2IGNsYXNzPVwiaW5wdXQtaG9sZGVyX19uYW1lXCI+VGl0bGU8L2Rpdj5cbiAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJpbnB1dC1ob2xkZXJfX2lucHV0XCI+XG4gICAgICAgICAgICAgIDxtYXQtZm9ybS1maWVsZCBhcHBlYXJhbmNlPVwib3V0bGluZVwiPlxuICAgICAgICAgICAgICAgIDxpbnB1dCBtYXRJbnB1dCB0eXBlPVwidGV4dFwiIGZvcm1Db250cm9sTmFtZT1cInRpdGxlXCIgKGlucHV0KT1cIm9uQ2hhbmdlRmllbGQoJ3RpdGxlJylcIj5cbiAgICAgICAgICAgICAgPC9tYXQtZm9ybS1maWVsZD5cbiAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgIDxtYXQtZGl2aWRlcj48L21hdC1kaXZpZGVyPlxuICAgICAgICAgIDxkaXYgY2xhc3M9XCJpbnB1dC1ob2xkZXJcIj5cbiAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJpbnB1dC1ob2xkZXJfX25hbWVcIj5Ib21lIE51bWJlcjwvZGl2PlxuICAgICAgICAgICAgPGRpdiBjbGFzcz1cImlucHV0LWhvbGRlcl9faW5wdXRcIj5cbiAgICAgICAgICAgICAgPG1hdC1mb3JtLWZpZWxkIGFwcGVhcmFuY2U9XCJvdXRsaW5lXCI+XG4gICAgICAgICAgICAgICAgPGlucHV0IG1hdElucHV0IHR5cGU9XCJudW1iZXJcIiBmb3JtQ29udHJvbE5hbWU9XCJob21lTnVtYmVyXCIgKGlucHV0KT1cIm9uQ2hhbmdlRmllbGQoJ2hvbWVOdW1iZXInKVwiPlxuICAgICAgICAgICAgICA8L21hdC1mb3JtLWZpZWxkPlxuICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgPG1hdC1kaXZpZGVyPjwvbWF0LWRpdmlkZXI+XG4gICAgICAgICAgPGRpdiBjbGFzcz1cImlucHV0LWhvbGRlclwiPlxuICAgICAgICAgICAgPGRpdiBjbGFzcz1cImlucHV0LWhvbGRlcl9fbmFtZVwiPlBhZ2VyIE51bWJlcjwvZGl2PlxuICAgICAgICAgICAgPGRpdiBjbGFzcz1cImlucHV0LWhvbGRlcl9faW5wdXRcIj5cbiAgICAgICAgICAgICAgPG1hdC1mb3JtLWZpZWxkIGFwcGVhcmFuY2U9XCJvdXRsaW5lXCI+XG4gICAgICAgICAgICAgICAgPGlucHV0IG1hdElucHV0IHR5cGU9XCJudW1iZXJcIiBmb3JtQ29udHJvbE5hbWU9XCJwYWdlck51bWJlclwiIChpbnB1dCk9XCJvbkNoYW5nZUZpZWxkKCdwYWdlck51bWJlcicpXCI+XG4gICAgICAgICAgICAgIDwvbWF0LWZvcm0tZmllbGQ+XG4gICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICA8bWF0LWRpdmlkZXI+PC9tYXQtZGl2aWRlcj5cbiAgICAgICAgICA8ZGl2IGNsYXNzPVwiaW5wdXQtaG9sZGVyXCI+XG4gICAgICAgICAgICA8ZGl2IGNsYXNzPVwiaW5wdXQtaG9sZGVyX19uYW1lXCI+RGlzcGxheSBOYW1lPC9kaXY+XG4gICAgICAgICAgICA8ZGl2IGNsYXNzPVwiaW5wdXQtaG9sZGVyX19pbnB1dFwiPlxuICAgICAgICAgICAgICA8bWF0LWZvcm0tZmllbGQgYXBwZWFyYW5jZT1cIm91dGxpbmVcIj5cbiAgICAgICAgICAgICAgICA8aW5wdXQgbWF0SW5wdXQgdHlwZT1cInRleHRcIiBmb3JtQ29udHJvbE5hbWU9XCJkaXNwbGF5TmFtZVwiIChpbnB1dCk9XCJvbkNoYW5nZUZpZWxkKCdkaXNwbGF5TmFtZScpXCI+XG4gICAgICAgICAgICAgIDwvbWF0LWZvcm0tZmllbGQ+XG4gICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgPC9kaXY+XG4gICAgICA8L2Rpdj5cblxuICAgIDwvZGl2PlxuXG4gIDwvZm9ybT5cbjwvbmctdGVtcGxhdGU+XG48L2Rpdj5cbjxkaXYgY2xhc3M9XCJzcGlubmVyLWNvbnRhaW5lclwiPlxuICA8ZGl2ICpuZ0lmPVwiZGF0YVBlbmRpbmcgPT0gdHJ1ZVwiIGNsYXNzPVwiZGF0YS1sb2FkZXJcIj5cbiAgICA8bWF0LXNwaW5uZXIgc3Ryb2tlV2lkdGg9XCIzXCIgW2RpYW1ldGVyXT1cIjcwXCI+PC9tYXQtc3Bpbm5lcj5cbiAgPC9kaXY+XG48L2Rpdj5cbjwhLS08bWF0LXByb2dyZXNzLXNwaW5uZXIgKm5nSWY9XCJkYXRhUGVuZGluZ1wiLS0+XG48IS0tICBjbGFzcz1cInBhZ2Utc3Bpbm5lclwiLS0+XG48IS0tICBtb2RlPVwiaW5kZXRlcm1pbmF0ZVwiLS0+XG48IS0tICBbZGlhbWV0ZXJdPVwiMTIwXCI+PC9tYXQtcHJvZ3Jlc3Mtc3Bpbm5lcj4tLT5cbiJdfQ==
@@ -3,7 +3,9 @@ export const API = {
3
3
  UPDATE_USER_FIELDS: '/api/provision/:siteId/userFields/:token',
4
4
  PERSIST_USER_CACHE: '/api/provision/:siteId/saveUser/:token',
5
5
  USER_BY_ID: '/api/provision/:siteId/users/:userId',
6
- QUICK_USERS_SEARCH: "/api/search/quickusers"
6
+ QUICK_USERS_SEARCH: "/api/search/quickusers",
7
+ DELETE_USER: "/api/search/quickusers",
8
+ MOVE_USER: "/api/migration/webex/singlemigration/features/PERSON "
7
9
  };
8
10
  export const REGEX_PATTERN = {
9
11
  EMAIL: '^(([^<>()\\[\\]\\\\.,;:\\s@"]+(\\.[^<>()\\[\\]\\\\.,;:\\s@"]+)*)|(".+"))' +
@@ -32,4 +34,4 @@ export const CUCMS_TO_IGNORE = [
32
34
  251,
33
35
  250
34
36
  ];
35
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYXBwLmNvbnN0YW50cy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL3R1a2kvd2lkZ2V0cy91c2Vycy1saXN0L3NyYy9hcHAuY29uc3RhbnRzLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE1BQU0sQ0FBQyxNQUFNLEdBQUcsR0FBRztJQUNqQixVQUFVLEVBQUUsNENBQTRDO0lBQ3hELGtCQUFrQixFQUFFLDBDQUEwQztJQUM5RCxrQkFBa0IsRUFBRSx3Q0FBd0M7SUFDNUQsVUFBVSxFQUFFLHNDQUFzQztJQUNsRCxrQkFBa0IsRUFBRSx3QkFBd0I7Q0FDN0MsQ0FBQztBQUNGLE1BQU0sQ0FBQyxNQUFNLGFBQWEsR0FBRztJQUMzQixLQUFLLEVBQUUsMEVBQTBFO1FBQ2pGLCtDQUErQztRQUMvQyx5REFBeUQ7Q0FDMUQsQ0FBQztBQUVGLE1BQU0sQ0FBQyxNQUFNLG1CQUFtQixHQUFHO0lBQ2pDLElBQUksRUFBRSxFQUFFO0lBQ1IsS0FBSyxFQUFFLENBQUM7Q0FDVCxDQUFBO0FBQ0QsTUFBTSxDQUFDLE1BQU0sdUJBQXVCLEdBQUc7SUFDckMsRUFBRTtJQUNGLEVBQUU7SUFDRixHQUFHO0lBQ0gsR0FBRztDQUNKLENBQUM7QUFDRixNQUFNLENBQUMsTUFBTSxjQUFjLEdBQUc7SUFDNUIsR0FBRztJQUNILEdBQUc7SUFDSCxHQUFHO0lBQ0gsR0FBRztDQUNKLENBQUM7QUFDRixNQUFNLENBQUMsTUFBTSxlQUFlLEdBQUc7SUFDN0IsR0FBRztJQUNILEdBQUc7SUFDSCxHQUFHO0lBQ0gsR0FBRztDQUNKLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJleHBvcnQgY29uc3QgQVBJID0ge1xuICBVU0VSX1RPS0VOOiAnL2FwaS9wcm92aXNpb24vOnNpdGVJZC91c2Vycy86dXNlcklkL3Rva2VuJyxcbiAgVVBEQVRFX1VTRVJfRklFTERTOiAnL2FwaS9wcm92aXNpb24vOnNpdGVJZC91c2VyRmllbGRzLzp0b2tlbicsXG4gIFBFUlNJU1RfVVNFUl9DQUNIRTogJy9hcGkvcHJvdmlzaW9uLzpzaXRlSWQvc2F2ZVVzZXIvOnRva2VuJyxcbiAgVVNFUl9CWV9JRDogJy9hcGkvcHJvdmlzaW9uLzpzaXRlSWQvdXNlcnMvOnVzZXJJZCcsXG4gIFFVSUNLX1VTRVJTX1NFQVJDSDogXCIvYXBpL3NlYXJjaC9xdWlja3VzZXJzXCJcbn07XG5leHBvcnQgY29uc3QgUkVHRVhfUEFUVEVSTiA9IHtcbiAgRU1BSUw6ICdeKChbXjw+KClcXFxcW1xcXFxdXFxcXFxcXFwuLDs6XFxcXHNAXCJdKyhcXFxcLltePD4oKVxcXFxbXFxcXF1cXFxcXFxcXC4sOzpcXFxcc0BcIl0rKSopfChcIi4rXCIpKScgK1xuICAnQFthLXpBLVowLTldKD86W2EtekEtWjAtOS1dezAsNjJ9W2EtekEtWjAtOV0pJyArXG4gICc/KD86XFxcXC5bYS16QS1aMC05XSg/OlthLXpBLVowLTktXXswLDYyfVthLXpBLVowLTldKT8pKiQnXG59O1xuXG5leHBvcnQgY29uc3QgUEFHSU5BVElPTl9ERUZBVUxUUyA9IHtcbiAgU0laRTogMTAsXG4gIElOREVYOiAwXG59XG5leHBvcnQgY29uc3QgUEFHSU5BVElPTl9TSVpFX09QVElPTlMgPSBbXG4gIDEwLFxuICA1MCxcbiAgMTAwLFxuICA1MDBcbl07XG5leHBvcnQgY29uc3QgQ1VDU19UT19JR05PUkUgPSBbXG4gIDE4OSxcbiAgMTk0LFxuICAxOTEsXG4gIDE5MFxuXTtcbmV4cG9ydCBjb25zdCBDVUNNU19UT19JR05PUkUgPSBbXG4gIDI0OSxcbiAgMjU1LFxuICAyNTEsXG4gIDI1MFxuXTtcbiJdfQ==
37
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYXBwLmNvbnN0YW50cy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL3R1a2kvd2lkZ2V0cy91c2Vycy1saXN0L3NyYy9hcHAuY29uc3RhbnRzLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE1BQU0sQ0FBQyxNQUFNLEdBQUcsR0FBRztJQUNqQixVQUFVLEVBQUUsNENBQTRDO0lBQ3hELGtCQUFrQixFQUFFLDBDQUEwQztJQUM5RCxrQkFBa0IsRUFBRSx3Q0FBd0M7SUFDNUQsVUFBVSxFQUFFLHNDQUFzQztJQUNsRCxrQkFBa0IsRUFBRSx3QkFBd0I7SUFDNUMsV0FBVyxFQUFFLHdCQUF3QjtJQUNyQyxTQUFTLEVBQUUsdURBQXVEO0NBQ25FLENBQUM7QUFDRixNQUFNLENBQUMsTUFBTSxhQUFhLEdBQUc7SUFDM0IsS0FBSyxFQUFFLDBFQUEwRTtRQUNqRiwrQ0FBK0M7UUFDL0MseURBQXlEO0NBQzFELENBQUM7QUFFRixNQUFNLENBQUMsTUFBTSxtQkFBbUIsR0FBRztJQUNqQyxJQUFJLEVBQUUsRUFBRTtJQUNSLEtBQUssRUFBRSxDQUFDO0NBQ1QsQ0FBQTtBQUNELE1BQU0sQ0FBQyxNQUFNLHVCQUF1QixHQUFHO0lBQ3JDLEVBQUU7SUFDRixFQUFFO0lBQ0YsR0FBRztJQUNILEdBQUc7Q0FDSixDQUFDO0FBQ0YsTUFBTSxDQUFDLE1BQU0sY0FBYyxHQUFHO0lBQzVCLEdBQUc7SUFDSCxHQUFHO0lBQ0gsR0FBRztJQUNILEdBQUc7Q0FDSixDQUFDO0FBQ0YsTUFBTSxDQUFDLE1BQU0sZUFBZSxHQUFHO0lBQzdCLEdBQUc7SUFDSCxHQUFHO0lBQ0gsR0FBRztJQUNILEdBQUc7Q0FDSixDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiZXhwb3J0IGNvbnN0IEFQSSA9IHtcbiAgVVNFUl9UT0tFTjogJy9hcGkvcHJvdmlzaW9uLzpzaXRlSWQvdXNlcnMvOnVzZXJJZC90b2tlbicsXG4gIFVQREFURV9VU0VSX0ZJRUxEUzogJy9hcGkvcHJvdmlzaW9uLzpzaXRlSWQvdXNlckZpZWxkcy86dG9rZW4nLFxuICBQRVJTSVNUX1VTRVJfQ0FDSEU6ICcvYXBpL3Byb3Zpc2lvbi86c2l0ZUlkL3NhdmVVc2VyLzp0b2tlbicsXG4gIFVTRVJfQllfSUQ6ICcvYXBpL3Byb3Zpc2lvbi86c2l0ZUlkL3VzZXJzLzp1c2VySWQnLFxuICBRVUlDS19VU0VSU19TRUFSQ0g6IFwiL2FwaS9zZWFyY2gvcXVpY2t1c2Vyc1wiLFxuICBERUxFVEVfVVNFUjogXCIvYXBpL3NlYXJjaC9xdWlja3VzZXJzXCIsXG4gIE1PVkVfVVNFUjogXCIvYXBpL21pZ3JhdGlvbi93ZWJleC9zaW5nbGVtaWdyYXRpb24vZmVhdHVyZXMvUEVSU09OIFwiXG59O1xuZXhwb3J0IGNvbnN0IFJFR0VYX1BBVFRFUk4gPSB7XG4gIEVNQUlMOiAnXigoW148PigpXFxcXFtcXFxcXVxcXFxcXFxcLiw7OlxcXFxzQFwiXSsoXFxcXC5bXjw+KClcXFxcW1xcXFxdXFxcXFxcXFwuLDs6XFxcXHNAXCJdKykqKXwoXCIuK1wiKSknICtcbiAgJ0BbYS16QS1aMC05XSg/OlthLXpBLVowLTktXXswLDYyfVthLXpBLVowLTldKScgK1xuICAnPyg/OlxcXFwuW2EtekEtWjAtOV0oPzpbYS16QS1aMC05LV17MCw2Mn1bYS16QS1aMC05XSk/KSokJ1xufTtcblxuZXhwb3J0IGNvbnN0IFBBR0lOQVRJT05fREVGQVVMVFMgPSB7XG4gIFNJWkU6IDEwLFxuICBJTkRFWDogMFxufVxuZXhwb3J0IGNvbnN0IFBBR0lOQVRJT05fU0laRV9PUFRJT05TID0gW1xuICAxMCxcbiAgNTAsXG4gIDEwMCxcbiAgNTAwXG5dO1xuZXhwb3J0IGNvbnN0IENVQ1NfVE9fSUdOT1JFID0gW1xuICAxODksXG4gIDE5NCxcbiAgMTkxLFxuICAxOTBcbl07XG5leHBvcnQgY29uc3QgQ1VDTVNfVE9fSUdOT1JFID0gW1xuICAyNDksXG4gIDI1NSxcbiAgMjUxLFxuICAyNTBcbl07XG4iXX0=
@@ -7,4 +7,4 @@ export class ListUser {
7
7
  }
8
8
  }
9
9
  }
10
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidXNlci1saXN0LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvdHVraS93aWRnZXRzL3VzZXJzLWxpc3Qvc3JjL2NsYXNzZXMvdXNlci1saXN0LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUdBLE1BQU0sT0FBTyxRQUFRO0lBZ0JuQixZQUFZLElBQWU7UUFUM0IsWUFBTyxHQUFzQixFQUFFLENBQUM7UUFDaEMsbUJBQWMsR0FBc0IsRUFBRSxDQUFDO1FBU3JDLElBQUksSUFBSSxFQUFFO1lBQ1IsTUFBTSxDQUFDLE1BQU0sQ0FBQyxJQUFJLEVBQUUsSUFBSSxDQUFDLENBQUM7U0FDM0I7SUFDSCxDQUFDO0NBQ0YiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBEZXZpY2VJbnRlcmZhY2UgfSBmcm9tICcuL2RldmljZSc7XG5pbXBvcnQgeyBMaW5lSW50ZXJmYWNlIH0gZnJvbSAnLi9saW5lJztcblxuZXhwb3J0IGNsYXNzIExpc3RVc2VyIGltcGxlbWVudHMgTGlzdFVzZXJJbnRlcmZhY2Uge1xuICAvLyBAdHMtaWdub3JlXG4gIHVzZXJpZDogc3RyaW5nO1xuICBmaXJzdE5hbWU/OiBzdHJpbmc7XG4gIGxhc3ROYW1lPzogc3RyaW5nO1xuICBlbWFpbD86IHN0cmluZztcbiAgdGVsZXBob25lTnVtYmVyPzogc3RyaW5nO1xuICBkZXZpY2VzOiBEZXZpY2VJbnRlcmZhY2VbXSA9IFtdO1xuICBkZXZpY2VQcm9maWxlczogRGV2aWNlSW50ZXJmYWNlW10gPSBbXTtcbiAgbGluZXM/OiBMaW5lSW50ZXJmYWNlW107XG4gIHNpdGVJZD86IG51bWJlcjtcbiAgc2l0ZU5hbWU/OiBzdHJpbmc7XG4gIHdlYmV4VVVJRD86IHN0cmluZztcbiAgY3VjbUlkPzogbnVtYmVyO1xuICByb2xlTmFtZT86IHN0cmluZ1xuXG4gIGNvbnN0cnVjdG9yKHVzZXI/OiBMaXN0VXNlcikge1xuICAgIGlmICh1c2VyKSB7XG4gICAgICBPYmplY3QuYXNzaWduKHRoaXMsIHVzZXIpO1xuICAgIH1cbiAgfVxufVxuXG5leHBvcnQgaW50ZXJmYWNlIExpc3RVc2VySW50ZXJmYWNlIHtcbiAgdXNlcmlkOiBzdHJpbmc7XG4gIGZpcnN0TmFtZT86IHN0cmluZztcbiAgbGFzdE5hbWU/OiBzdHJpbmc7XG4gIGVtYWlsPzogc3RyaW5nO1xuICB0ZWxlcGhvbmVOdW1iZXI/OiBzdHJpbmc7XG4gIHZpZXdNb2RlPzogYW55O1xuICBkZXZpY2VzOiBEZXZpY2VJbnRlcmZhY2VbXTtcbiAgZGV2aWNlUHJvZmlsZXM6IERldmljZUludGVyZmFjZVtdO1xuICBsaW5lcz86IExpbmVJbnRlcmZhY2VbXTtcbiAgc2l0ZUlkPzogbnVtYmVyO1xuICBzaXRlTmFtZT86IHN0cmluZztcbiAgd2ViZXhVVUlEPzogc3RyaW5nO1xuICBjdWNtSWQ/OiBudW1iZXI7XG59XG4iXX0=
10
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidXNlci1saXN0LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvdHVraS93aWRnZXRzL3VzZXJzLWxpc3Qvc3JjL2NsYXNzZXMvdXNlci1saXN0LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUdBLE1BQU0sT0FBTyxRQUFRO0lBaUJuQixZQUFZLElBQWU7UUFWM0IsWUFBTyxHQUFzQixFQUFFLENBQUM7UUFDaEMsbUJBQWMsR0FBc0IsRUFBRSxDQUFDO1FBVXJDLElBQUksSUFBSSxFQUFFO1lBQ1IsTUFBTSxDQUFDLE1BQU0sQ0FBQyxJQUFJLEVBQUUsSUFBSSxDQUFDLENBQUM7U0FDM0I7SUFDSCxDQUFDO0NBQ0YiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBEZXZpY2VJbnRlcmZhY2UgfSBmcm9tICcuL2RldmljZSc7XG5pbXBvcnQgeyBMaW5lSW50ZXJmYWNlIH0gZnJvbSAnLi9saW5lJztcblxuZXhwb3J0IGNsYXNzIExpc3RVc2VyIGltcGxlbWVudHMgTGlzdFVzZXJJbnRlcmZhY2Uge1xuICAvLyBAdHMtaWdub3JlXG4gIHVzZXJpZDogc3RyaW5nO1xuICBmaXJzdE5hbWU/OiBzdHJpbmc7XG4gIGxhc3ROYW1lPzogc3RyaW5nO1xuICBlbWFpbD86IHN0cmluZztcbiAgdGVsZXBob25lTnVtYmVyPzogc3RyaW5nO1xuICBkZXZpY2VzOiBEZXZpY2VJbnRlcmZhY2VbXSA9IFtdO1xuICBkZXZpY2VQcm9maWxlczogRGV2aWNlSW50ZXJmYWNlW10gPSBbXTtcbiAgbGluZXM/OiBMaW5lSW50ZXJmYWNlW107XG4gIHNpdGVJZD86IG51bWJlcjtcbiAgc2l0ZU5hbWU/OiBzdHJpbmc7XG4gIHdlYmV4VVVJRD86IHN0cmluZztcbiAgY3VjbUlkPzogbnVtYmVyO1xuICByb2xlTmFtZT86IHN0cmluZztcbiAgc3RhdHVzPzogc3RyaW5nO1xuXG4gIGNvbnN0cnVjdG9yKHVzZXI/OiBMaXN0VXNlcikge1xuICAgIGlmICh1c2VyKSB7XG4gICAgICBPYmplY3QuYXNzaWduKHRoaXMsIHVzZXIpO1xuICAgIH1cbiAgfVxufVxuXG5leHBvcnQgaW50ZXJmYWNlIExpc3RVc2VySW50ZXJmYWNlIHtcbiAgdXNlcmlkOiBzdHJpbmc7XG4gIGZpcnN0TmFtZT86IHN0cmluZztcbiAgbGFzdE5hbWU/OiBzdHJpbmc7XG4gIGVtYWlsPzogc3RyaW5nO1xuICB0ZWxlcGhvbmVOdW1iZXI/OiBzdHJpbmc7XG4gIHZpZXdNb2RlPzogYW55O1xuICBkZXZpY2VzOiBEZXZpY2VJbnRlcmZhY2VbXTtcbiAgZGV2aWNlUHJvZmlsZXM6IERldmljZUludGVyZmFjZVtdO1xuICBsaW5lcz86IExpbmVJbnRlcmZhY2VbXTtcbiAgc2l0ZUlkPzogbnVtYmVyO1xuICBzaXRlTmFtZT86IHN0cmluZztcbiAgd2ViZXhVVUlEPzogc3RyaW5nO1xuICBjdWNtSWQ/OiBudW1iZXI7XG59XG4iXX0=