@esfaenza/core 15.2.180-beta3 → 15.2.180-beta4

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.
@@ -11,12 +11,12 @@ import { firstValueFrom } from "rxjs";
11
11
  import { UpdatePasswordDto, UpdateProfilePictureDto, UpdateAccountRecoverySettingsDto } from "@esfaenza/core/domain";
12
12
  import * as i0 from "@angular/core";
13
13
  // Chiamate ai Repository
14
- const GET_UserProfile_GetProfilePicture = "/api/UserProfile/GetProfilePicture";
15
- const POST_UserProfile_UpdateProfilePicture = "/api/UserProfile/UpdateProfilePicture";
16
- const POST_UserProfile_UpdateRecoveryInfos = "/api/UserProfile/UpdateRecoveryInfos";
17
- const POST_UserProfile_UpdatePassword = "/api/UserProfile/UpdatePassword";
18
- const GET_UserProfile_DeleteProfilePicture = "/api/UserProfile/DeleteProfilePicture";
19
- const GET_UserProfile_GetAccountProfile = "/api/UserProfile/GetAccountProfile";
14
+ const GET_UserProfile_GetAccountPicture = "/api/UserProfile/GetAccountPicture";
15
+ const POST_UserProfile_UpdateAccountPicture = "/api/UserProfile/UpdateAccountPicture";
16
+ const POST_UserProfile_UpdateAccountRecoveryInfos = "/api/UserProfile/UpdateAccountRecoveryInfos";
17
+ const POST_UserProfile_UpdateAccountPassword = "/api/UserProfile/UpdateAccountPassword";
18
+ const GET_UserProfile_DeleteAccountPicture = "/api/UserProfile/DeleteAccountPicture";
19
+ const GET_UserProfile_GetEntityAccount = "/api/UserProfile/GetEntityAccount";
20
20
  export class UserPreferencesService {
21
21
  constructor(injector) {
22
22
  this.injector = injector;
@@ -29,7 +29,7 @@ export class UserPreferencesService {
29
29
  }
30
30
  async getAccountProfile() {
31
31
  let pars = new HttpParams().set("idAccount", this.AccountId);
32
- let ret = await firstValueFrom(this.http.get(GET_UserProfile_GetAccountProfile, pars));
32
+ let ret = await firstValueFrom(this.http.get(GET_UserProfile_GetEntityAccount, pars));
33
33
  return ret;
34
34
  }
35
35
  async doReloadProfilePicture() {
@@ -38,29 +38,29 @@ export class UserPreferencesService {
38
38
  this.ProfilePicture = this.sanitizer.bypassSecurityTrustResourceUrl(`data:image/png;base64,${tmpPict}`);
39
39
  }
40
40
  async getCurrentProfilePicture() {
41
- let pictureb64 = await firstValueFrom(this.http.get(GET_UserProfile_GetProfilePicture, new HttpParams().set('id', this.AccountId)));
41
+ let pictureb64 = await firstValueFrom(this.http.get(GET_UserProfile_GetAccountPicture, new HttpParams().set('idAccount', this.AccountId)));
42
42
  return pictureb64;
43
43
  }
44
44
  async doUpdateProfilePicture(image) {
45
45
  let dtoPic = new UpdateProfilePictureDto(this.AccountId);
46
- let cr = await firstValueFrom(this.http.postwithFiles(POST_UserProfile_UpdateProfilePicture, dtoPic, image?.nativefiles ?? []));
46
+ let cr = await firstValueFrom(this.http.postwithFiles(POST_UserProfile_UpdateAccountPicture, dtoPic, image?.nativefiles ?? []));
47
47
  if (cr.success)
48
48
  this.doReloadProfilePicture();
49
49
  return cr;
50
50
  }
51
51
  async doUpdateRecoverySettings(email) {
52
52
  let dto = new UpdateAccountRecoverySettingsDto(this.AccountId, email);
53
- let cr = await firstValueFrom(this.http.post(POST_UserProfile_UpdateRecoveryInfos, dto));
53
+ let cr = await firstValueFrom(this.http.post(POST_UserProfile_UpdateAccountRecoveryInfos, dto));
54
54
  return cr;
55
55
  }
56
56
  async doUpdatePassword(oldPassword, newPassword, newPasswordConfirm) {
57
57
  let dto = new UpdatePasswordDto(this.AccountId, oldPassword, newPassword, newPasswordConfirm);
58
- let cr = await firstValueFrom(this.http.post(POST_UserProfile_UpdatePassword, dto));
58
+ let cr = await firstValueFrom(this.http.post(POST_UserProfile_UpdateAccountPassword, dto));
59
59
  return cr;
60
60
  }
61
61
  async doDeleteProfilePicture() {
62
- let pars = new HttpParams().set('id', this.AccountId);
63
- let cr = await firstValueFrom(this.http.get(GET_UserProfile_DeleteProfilePicture, pars));
62
+ let pars = new HttpParams().set('idAccount', this.AccountId);
63
+ let cr = await firstValueFrom(this.http.get(GET_UserProfile_DeleteAccountPicture, pars));
64
64
  if (cr.success)
65
65
  this.ProfilePicture = null;
66
66
  return cr;
@@ -71,4 +71,4 @@ UserPreferencesService.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0
71
71
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.9", ngImport: i0, type: UserPreferencesService, decorators: [{
72
72
  type: Injectable
73
73
  }], ctorParameters: function () { return [{ type: i0.Injector }]; } });
74
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYXBwLnVzZXJwcmVmZXJlbmNlcy5iYXNlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvY29yZS9zZXJ2aWNlcy9zcmMvY2xhc3Nlcy9wcmVmZXJlbmNlcy91c2VyL2FwcC51c2VycHJlZmVyZW5jZXMuYmFzZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxVQUFVO0FBQ1YsT0FBTyxFQUFFLFlBQVksRUFBbUIsTUFBTSwyQkFBMkIsQ0FBQztBQUMxRSxPQUFPLEVBQUUsVUFBVSxFQUFZLE1BQU0sZUFBZSxDQUFDO0FBQ3JELE9BQU8sRUFBRSxVQUFVLEVBQUUsTUFBTSxzQkFBc0IsQ0FBQztBQUVsRCxLQUFLO0FBQ0wsT0FBTyxFQUFjLGNBQWMsRUFBRSxNQUFNLHNCQUFzQixDQUFDO0FBRWxFLE9BQU8sRUFBRSxXQUFXLEVBQUUsTUFBTSx1QkFBdUIsQ0FBQztBQUVwRCxpQkFBaUI7QUFDakIsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLHVCQUF1QixDQUFDO0FBQ3JELE9BQU8sRUFBRSxjQUFjLEVBQUUsTUFBTSxNQUFNLENBQUM7QUFDdEMsT0FBTyxFQUFFLGlCQUFpQixFQUFFLHVCQUF1QixFQUFFLGdDQUFnQyxFQUFlLE1BQU0sdUJBQXVCLENBQUM7O0FBRWxJLHlCQUF5QjtBQUN6QixNQUFNLGlDQUFpQyxHQUFXLG9DQUFvQyxDQUFDO0FBQ3ZGLE1BQU0scUNBQXFDLEdBQVcsdUNBQXVDLENBQUM7QUFDOUYsTUFBTSxvQ0FBb0MsR0FBVyxzQ0FBc0MsQ0FBQztBQUM1RixNQUFNLCtCQUErQixHQUFXLGlDQUFpQyxDQUFDO0FBQ2xGLE1BQU0sb0NBQW9DLEdBQVcsdUNBQXVDLENBQUM7QUFDN0YsTUFBTSxpQ0FBaUMsR0FBVyxvQ0FBb0MsQ0FBQztBQUd2RixNQUFNLE9BQU8sc0JBQXNCO0lBUS9CLFlBQW9CLFFBQWtCO1FBQWxCLGFBQVEsR0FBUixRQUFRLENBQVU7UUFDbEMs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SSxDQUFhLCtCQUErQixFQUFFLEdBQUcsQ0FBQyxDQUFDLENBQUM7UUFDaEcsT0FBTyxFQUFFLENBQUM7SUFDZCxDQUFDO0lBRU0sS0FBSyxDQUFDLHNCQUFzQjtRQUMvQixJQUFJLElBQUksR0FBRyxJQUFJLFVBQVUsRUFBRSxDQUFDLEdBQUcsQ0FBQyxJQUFJLEVBQUUsSUFBSSxDQUFDLFNBQVMsQ0FBQyxDQUFDO1FBQ3RELElBQUksRUFBRSxHQUFHLE1BQU0sY0FBYyxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsR0FBRyxDQUFhLG9DQUFvQyxFQUFFLElBQUksQ0FBQyxDQUFDLENBQUM7UUFDckcsSUFBSSxFQUFFLENBQUMsT0FBTztZQUFFLElBQUksQ0FBQyxjQUFjLEdBQUcsSUFBSSxDQUFDO1FBQzNDLE9BQU8sRUFBRSxDQUFDO0lBQ2QsQ0FBQzs7bUhBM0RRLHNCQUFzQjt1SEFBdEIsc0JBQXNCOzJGQUF0QixzQkFBc0I7a0JBRGxDLFVBQVUiLCJzb3VyY2VzQ29udGVudCI6WyIvLyBBbmd1bGFyXHJcbmltcG9ydCB7IERvbVNhbml0aXplciwgU2FmZVJlc291cmNlVXJsIH0gZnJvbSBcIkBhbmd1bGFyL3BsYXRmb3JtLWJyb3dzZXJcIjtcclxuaW1wb3J0IHsgSW5qZWN0YWJsZSwgSW5qZWN0b3IgfSBmcm9tIFwiQGFuZ3VsYXIvY29yZVwiO1xyXG5pbXBvcnQgeyBIdHRwUGFyYW1zIH0gZnJvbSBcIkBhbmd1bGFyL2NvbW1vbi9odHRwXCI7XHJcblxyXG4vLyBFU1xyXG5pbXBvcnQgeyBDYWxsUmVzdWx0LCBNZXNzYWdlU2VydmljZSB9IGZyb20gXCJAZXNmYWVuemEvZXh0ZW5zaW9uc1wiO1xyXG5pbXBvcnQgeyBBcHBGaWxlIH0gZnJvbSBcIkBlc2ZhZW56YS9mb3Jtcy1hbmQtdmFsaWRhdGlvbnNcIjtcclxuaW1wb3J0IHsgSFRUUFNlcnZpY2UgfSBmcm9tIFwiQGVzZmFlbnphL2h0dHBzZXJ2aWNlXCI7XHJcblxyXG4vLyBDb25maWd1cmF6aW9uaVxyXG5pbXBvcnQgeyBUb2tlblNlcnZpY2UgfSBmcm9tIFwiLi4vLi4vYXBwLmFjY2Vzc3Rva2VuXCI7XHJcbmltcG9ydCB7IGZpcnN0VmFsdWVGcm9tIH0gZnJvbSBcInJ4anNcIjtcclxuaW1wb3J0IHsgVXBkYXRlUGFzc3dvcmREdG8sIFVwZGF0ZVByb2ZpbGVQaWN0dXJlRHRvLCBVcGRhdGVBY2NvdW50UmVjb3ZlcnlTZXR0aW5nc0R0bywgVXNlckFjY291bnQgfSBmcm9tIFwiQGVzZmFlbnphL2NvcmUvZG9tYWluXCI7XHJcblxyXG4vLyBDaGlhbWF0ZSBhaSBSZXBvc2l0b3J5XHJcbmNvbnN0IEdFVF9Vc2VyUHJvZmlsZV9HZXRQcm9maWxlUGljdHVyZTogc3RyaW5nID0gXCIvYXBpL1VzZXJQcm9maWxlL0dldFByb2ZpbGVQaWN0dXJlXCI7XHJcbmNvbnN0IFBPU1RfVXNlclByb2ZpbGVfVXBkYXRlUHJvZmlsZVBpY3R1cmU6IHN0cmluZyA9IFwiL2FwaS9Vc2VyUHJvZmlsZS9VcGRhdGVQcm9maWxlUGljdHVyZVwiO1xyXG5jb25zdCBQT1NUX1VzZXJQcm9maWxlX1VwZGF0ZVJlY292ZXJ5SW5mb3M6IHN0cmluZyA9IFwiL2FwaS9Vc2VyUHJvZmlsZS9VcGRhdGVSZWNvdmVyeUluZm9zXCI7XHJcbmNvbnN0IFBPU1RfVXNlclByb2ZpbGVfVXBkYXRlUGFzc3dvcmQ6IHN0cmluZyA9IFwiL2FwaS9Vc2VyUHJvZmlsZS9VcGRhdGVQYXNzd29yZFwiO1xyXG5jb25zdCBHRVRfVXNlclByb2ZpbGVfRGVsZXRlUHJvZmlsZVBpY3R1cmU6IHN0cmluZyA9IFwiL2FwaS9Vc2VyUHJvZmlsZS9EZWxldGVQcm9maWxlUGljdHVyZVwiO1xyXG5jb25zdCBHRVRfVXNlclByb2ZpbGVfR2V0QWNjb3VudFByb2ZpbGU6IHN0cmluZyA9IFwiL2FwaS9Vc2VyUHJvZmlsZS9HZXRBY2NvdW50UHJvZmlsZVwiO1xyXG5cclxuQEluamVjdGFibGUoKVxyXG5leHBvcnQgY2xhc3MgVXNlclByZWZlcmVuY2VzU2VydmljZSB7XHJcbiAgICBwcml2YXRlIEFjY291bnRJZDogc3RyaW5nO1xyXG4gICAgcHVibGljIFByb2ZpbGVQaWN0dXJlOiBTYWZlUmVzb3VyY2VVcmw7XHJcblxyXG4gICAgcHVibGljIHNhbml0aXplcjogRG9tU2FuaXRpemVyO1xyXG4gICAgcHVibGljIGh0dHA6IEhUVFBTZXJ2aWNlO1xyXG4gICAgcHVibGljIG1zZ0V4dHM6IE1lc3NhZ2VTZXJ2aWNlO1xyXG5cclxuICAgIGNvbnN0cnVjdG9yKHByaXZhdGUgaW5qZWN0b3I6IEluamVjdG9yKSB7XHJcbiAgICAgICAgbGV0IHRrcyA9IHRoaXMuaW5qZWN0b3IuZ2V0KFRva2VuU2VydmljZSk7XHJcbiAgICAgICAgdGhpcy5zYW5pdGl6ZXIgPSB0aGlzLmluamVjdG9yLmdldChEb21TYW5pdGl6ZXIpO1xyXG4gICAgICAgIHRoaXMuaHR0cCA9IHRoaXMuaW5qZWN0b3IuZ2V0KEhUVFBTZXJ2aWNlKTtcclxuICAgICAgICB0aGlzLm1zZ0V4dHMgPSB0aGlzLmluamVjdG9yLmdldChNZXNzYWdlU2VydmljZSk7XHJcblxyXG4gICAgICAgIHRoaXMuQWNjb3VudElkID0gdGtzLmdldEphY2VJZGVudGl0eSgpLklkQWNjb3VudC50b1N0cmluZygpO1xyXG4gICAgICAgIHRoaXMuZG9SZWxvYWRQcm9maWxlUGljdHVyZSgpO1xyXG4gICAgfVxyXG5cclxuICAgIHB1YmxpYyBhc3luYyBnZXRBY2NvdW50UHJvZmlsZSgpOiBQcm9taXNlPFVzZXJBY2NvdW50PiB7XHJcbiAgICAgICAgbGV0IHBhcnMgPSBuZXcgSHR0cFBhcmFtcygpLnNldChcImlkQWNjb3VudFwiLCB0aGlzLkFjY291bnRJZCk7XHJcbiAgICAgICAgbGV0IHJldCA9IGF3YWl0IGZpcnN0VmFsdWVGcm9tKHRoaXMuaHR0cC5nZXQ8VXNlckFjY291bnQ+KEdFVF9Vc2VyUHJvZmlsZV9HZXRBY2NvdW50UHJvZmlsZSwgcGFycykpO1xyXG4gICAgICAgIHJldHVybiByZXQ7XHJcbiAgICB9XHJcblxyXG4gICAgcHVibGljIGFzeW5jIGRvUmVsb2FkUHJvZmlsZVBpY3R1cmUoKSB7XHJcbiAgICAgICAgdGhpcy5Qcm9maWxlUGljdHVyZSA9IG51bGw7XHJcbiAgICAgICAgbGV0IHRtcFBpY3QgPSBhd2FpdCB0aGlzLmdldEN1cnJlbnRQcm9maWxlUGljdHVyZSgpO1xyXG4gICAgICAgIHRoaXMuUHJvZmlsZVBpY3R1cmUgPSB0aGlzLnNhbml0aXplci5ieXBhc3NTZWN1cml0eVRydXN0UmVzb3VyY2VVcmwoYGRhdGE6aW1hZ2UvcG5nO2Jhc2U2NCwke3RtcFBpY3R9YCk7XHJcbiAgICB9XHJcblxyXG4gICAgcHVibGljIGFzeW5jIGdldEN1cnJlbnRQcm9maWxlUGljdHVyZSgpOiBQcm9taXNlPHN0cmluZz4ge1xyXG4gICAgICAgIGxldCBwaWN0dXJlYjY0ID0gYXdhaXQgZmlyc3RWYWx1ZUZyb20odGhpcy5odHRwLmdldDxzdHJpbmc+KEdFVF9Vc2VyUHJvZmlsZV9HZXRQcm9maWxlUGljdHVyZSwgbmV3IEh0dHBQYXJhbXMoKS5zZXQoJ2lkJywgdGhpcy5BY2NvdW50SWQpKSk7XHJcbiAgICAgICAgcmV0dXJuIHBpY3R1cmViNjQ7XHJcbiAgICB9XHJcblxyXG4gICAgcHVibGljIGFzeW5jIGRvVXBkYXRlUHJvZmlsZVBpY3R1cmUoaW1hZ2U6IEFwcEZpbGUpOiBQcm9taXNlPENhbGxSZXN1bHQ+IHtcclxuICAgICAgICBsZXQgZHRvUGljID0gbmV3IFVwZGF0ZVByb2ZpbGVQaWN0dXJlRHRvKHRoaXMuQWNjb3VudElkKTtcclxuICAgICAgICBsZXQgY3IgPSBhd2FpdCBmaXJzdFZhbHVlRnJvbSh0aGlzLmh0dHAucG9zdHdpdGhGaWxlczxDYWxsUmVzdWx0PihQT1NUX1VzZXJQcm9maWxlX1VwZGF0ZVByb2ZpbGVQaWN0dXJlLCBkdG9QaWMsIGltYWdlPy5uYXRpdmVmaWxlcyA/PyBbXSkpO1xyXG4gICAgICAgIGlmKGNyLnN1Y2Nlc3MpIHRoaXMuZG9SZWxvYWRQcm9maWxlUGljdHVyZSgpO1xyXG4gICAgICAgIHJldHVybiBjcjtcclxuICAgIH1cclxuXHJcbiAgICBwdWJsaWMgYXN5bmMgZG9VcGRhdGVSZWNvdmVyeVNldHRpbmdzKGVtYWlsOiBzdHJpbmcpOiBQcm9taXNlPENhbGxSZXN1bHQ+IHtcclxuICAgICAgICBsZXQgZHRvID0gbmV3IFVwZGF0ZUFjY291bnRSZWNvdmVyeVNldHRpbmdzRHRvKHRoaXMuQWNjb3VudElkLCBlbWFpbCk7XHJcbiAgICAgICAgbGV0IGNyID0gYXdhaXQgZmlyc3RWYWx1ZUZyb20odGhpcy5odHRwLnBvc3Q8Q2FsbFJlc3VsdD4oUE9TVF9Vc2VyUHJvZmlsZV9VcGRhdGVSZWNvdmVyeUluZm9zLCBkdG8pKTtcclxuICAgICAgICByZXR1cm4gY3I7XHJcbiAgICB9XHJcblxyXG4gICAgcHVibGljIGFzeW5jIGRvVXBkYXRlUGFzc3dvcmQob2xkUGFzc3dvcmQ6IHN0cmluZywgbmV3UGFzc3dvcmQ6IHN0cmluZywgbmV3UGFzc3dvcmRDb25maXJtOiBzdHJpbmcpOiBQcm9taXNlPENhbGxSZXN1bHQ+IHtcclxuICAgICAgICBsZXQgZHRvID0gbmV3IFVwZGF0ZVBhc3N3b3JkRHRvKHRoaXMuQWNjb3VudElkLCBvbGRQYXNzd29yZCwgbmV3UGFzc3dvcmQsIG5ld1Bhc3N3b3JkQ29uZmlybSk7XHJcbiAgICAgICAgbGV0IGNyID0gYXdhaXQgZmlyc3RWYWx1ZUZyb20odGhpcy5odHRwLnBvc3Q8Q2FsbFJlc3VsdD4oUE9TVF9Vc2VyUHJvZmlsZV9VcGRhdGVQYXNzd29yZCwgZHRvKSk7XHJcbiAgICAgICAgcmV0dXJuIGNyO1xyXG4gICAgfVxyXG5cclxuICAgIHB1YmxpYyBhc3luYyBkb0RlbGV0ZVByb2ZpbGVQaWN0dXJlKCk6IFByb21pc2U8Q2FsbFJlc3VsdD4ge1xyXG4gICAgICAgIGxldCBwYXJzID0gbmV3IEh0dHBQYXJhbXMoKS5zZXQoJ2lkJywgdGhpcy5BY2NvdW50SWQpO1xyXG4gICAgICAgIGxldCBjciA9IGF3YWl0IGZpcnN0VmFsdWVGcm9tKHRoaXMuaHR0cC5nZXQ8Q2FsbFJlc3VsdD4oR0VUX1VzZXJQcm9maWxlX0RlbGV0ZVByb2ZpbGVQaWN0dXJlLCBwYXJzKSk7XHJcbiAgICAgICAgaWYgKGNyLnN1Y2Nlc3MpIHRoaXMuUHJvZmlsZVBpY3R1cmUgPSBudWxsO1xyXG4gICAgICAgIHJldHVybiBjcjtcclxuICAgIH1cclxufSJdfQ==
74
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYXBwLnVzZXJwcmVmZXJlbmNlcy5iYXNlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvY29yZS9zZXJ2aWNlcy9zcmMvY2xhc3Nlcy9wcmVmZXJlbmNlcy91c2VyL2FwcC51c2VycHJlZmVyZW5jZXMuYmFzZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxVQUFVO0FBQ1YsT0FBTyxFQUFFLFlBQVksRUFBbUIsTUFBTSwyQkFBMkIsQ0FBQztBQUMxRSxPQUFPLEVBQUUsVUFBVSxFQUFZLE1BQU0sZUFBZSxDQUFDO0FBQ3JELE9BQU8sRUFBRSxVQUFVLEVBQUUsTUFBTSxzQkFBc0IsQ0FBQztBQUVsRCxLQUFLO0FBQ0wsT0FBTyxFQUFjLGNBQWMsRUFBRSxNQUFNLHNCQUFzQixDQUFDO0FBRWxFLE9BQU8sRUFBRSxXQUFXLEVBQUUsTUFBTSx1QkFBdUIsQ0FBQztBQUVwRCxpQkFBaUI7QUFDakIsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLHVCQUF1QixDQUFDO0FBQ3JELE9BQU8sRUFBRSxjQUFjLEVBQUUsTUFBTSxNQUFNLENBQUM7QUFDdEMsT0FBTyxFQUFFLGlCQUFpQixFQUFFLHVCQUF1QixFQUFFLGdDQUFnQyxFQUFlLE1BQU0sdUJBQXVCLENBQUM7O0FBRWxJLHlCQUF5QjtBQUN6QixNQUFNLGlDQUFpQyxHQUFXLG9DQUFvQyxDQUFDO0FBQ3ZGLE1BQU0scUNBQXFDLEdBQVcsdUNBQXVDLENBQUM7QUFDOUYsTUFBTSwyQ0FBMkMsR0FBVyw2Q0FBNkMsQ0FBQztBQUMxRyxNQUFNLHNDQUFzQyxHQUFXLHdDQUF3QyxDQUFDO0FBQ2hHLE1BQU0sb0NBQW9DLEdBQVcsdUNBQXVDLENBQUM7QUFDN0YsTUFBTSxnQ0FBZ0MsR0FBVyxtQ0FBbUMsQ0FBQztBQUdyRixNQUFNLE9BQU8sc0JBQXNCO0lBUS9CLFlBQW9CLFFBQWtCO1FBQWxCLGFBQVEsR0FBUixRQUFRLENBQVU7UUFDbEMs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SSxDQUFhLHNDQUFzQyxFQUFFLEdBQUcsQ0FBQyxDQUFDLENBQUM7UUFDdkcsT0FBTyxFQUFFLENBQUM7SUFDZCxDQUFDO0lBRU0sS0FBSyxDQUFDLHNCQUFzQjtRQUMvQixJQUFJLElBQUksR0FBRyxJQUFJLFVBQVUsRUFBRSxDQUFDLEdBQUcsQ0FBQyxXQUFXLEVBQUUsSUFBSSxDQUFDLFNBQVMsQ0FBQyxDQUFDO1FBQzdELElBQUksRUFBRSxHQUFHLE1BQU0sY0FBYyxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsR0FBRyxDQUFhLG9DQUFvQyxFQUFFLElBQUksQ0FBQyxDQUFDLENBQUM7UUFDckcsSUFBSSxFQUFFLENBQUMsT0FBTztZQUFFLElBQUksQ0FBQyxjQUFjLEdBQUcsSUFBSSxDQUFDO1FBQzNDLE9BQU8sRUFBRSxDQUFDO0lBQ2QsQ0FBQzs7bUhBM0RRLHNCQUFzQjt1SEFBdEIsc0JBQXNCOzJGQUF0QixzQkFBc0I7a0JBRGxDLFVBQVUiLCJzb3VyY2VzQ29udGVudCI6WyIvLyBBbmd1bGFyXHJcbmltcG9ydCB7IERvbVNhbml0aXplciwgU2FmZVJlc291cmNlVXJsIH0gZnJvbSBcIkBhbmd1bGFyL3BsYXRmb3JtLWJyb3dzZXJcIjtcclxuaW1wb3J0IHsgSW5qZWN0YWJsZSwgSW5qZWN0b3IgfSBmcm9tIFwiQGFuZ3VsYXIvY29yZVwiO1xyXG5pbXBvcnQgeyBIdHRwUGFyYW1zIH0gZnJvbSBcIkBhbmd1bGFyL2NvbW1vbi9odHRwXCI7XHJcblxyXG4vLyBFU1xyXG5pbXBvcnQgeyBDYWxsUmVzdWx0LCBNZXNzYWdlU2VydmljZSB9IGZyb20gXCJAZXNmYWVuemEvZXh0ZW5zaW9uc1wiO1xyXG5pbXBvcnQgeyBBcHBGaWxlIH0gZnJvbSBcIkBlc2ZhZW56YS9mb3Jtcy1hbmQtdmFsaWRhdGlvbnNcIjtcclxuaW1wb3J0IHsgSFRUUFNlcnZpY2UgfSBmcm9tIFwiQGVzZmFlbnphL2h0dHBzZXJ2aWNlXCI7XHJcblxyXG4vLyBDb25maWd1cmF6aW9uaVxyXG5pbXBvcnQgeyBUb2tlblNlcnZpY2UgfSBmcm9tIFwiLi4vLi4vYXBwLmFjY2Vzc3Rva2VuXCI7XHJcbmltcG9ydCB7IGZpcnN0VmFsdWVGcm9tIH0gZnJvbSBcInJ4anNcIjtcclxuaW1wb3J0IHsgVXBkYXRlUGFzc3dvcmREdG8sIFVwZGF0ZVByb2ZpbGVQaWN0dXJlRHRvLCBVcGRhdGVBY2NvdW50UmVjb3ZlcnlTZXR0aW5nc0R0bywgVXNlckFjY291bnQgfSBmcm9tIFwiQGVzZmFlbnphL2NvcmUvZG9tYWluXCI7XHJcblxyXG4vLyBDaGlhbWF0ZSBhaSBSZXBvc2l0b3J5XHJcbmNvbnN0IEdFVF9Vc2VyUHJvZmlsZV9HZXRBY2NvdW50UGljdHVyZTogc3RyaW5nID0gXCIvYXBpL1VzZXJQcm9maWxlL0dldEFjY291bnRQaWN0dXJlXCI7XHJcbmNvbnN0IFBPU1RfVXNlclByb2ZpbGVfVXBkYXRlQWNjb3VudFBpY3R1cmU6IHN0cmluZyA9IFwiL2FwaS9Vc2VyUHJvZmlsZS9VcGRhdGVBY2NvdW50UGljdHVyZVwiO1xyXG5jb25zdCBQT1NUX1VzZXJQcm9maWxlX1VwZGF0ZUFjY291bnRSZWNvdmVyeUluZm9zOiBzdHJpbmcgPSBcIi9hcGkvVXNlclByb2ZpbGUvVXBkYXRlQWNjb3VudFJlY292ZXJ5SW5mb3NcIjtcclxuY29uc3QgUE9TVF9Vc2VyUHJvZmlsZV9VcGRhdGVBY2NvdW50UGFzc3dvcmQ6IHN0cmluZyA9IFwiL2FwaS9Vc2VyUHJvZmlsZS9VcGRhdGVBY2NvdW50UGFzc3dvcmRcIjtcclxuY29uc3QgR0VUX1VzZXJQcm9maWxlX0RlbGV0ZUFjY291bnRQaWN0dXJlOiBzdHJpbmcgPSBcIi9hcGkvVXNlclByb2ZpbGUvRGVsZXRlQWNjb3VudFBpY3R1cmVcIjtcclxuY29uc3QgR0VUX1VzZXJQcm9maWxlX0dldEVudGl0eUFjY291bnQ6IHN0cmluZyA9IFwiL2FwaS9Vc2VyUHJvZmlsZS9HZXRFbnRpdHlBY2NvdW50XCI7XHJcblxyXG5ASW5qZWN0YWJsZSgpXHJcbmV4cG9ydCBjbGFzcyBVc2VyUHJlZmVyZW5jZXNTZXJ2aWNlIHtcclxuICAgIHByaXZhdGUgQWNjb3VudElkOiBzdHJpbmc7XHJcbiAgICBwdWJsaWMgUHJvZmlsZVBpY3R1cmU6IFNhZmVSZXNvdXJjZVVybDtcclxuXHJcbiAgICBwdWJsaWMgc2FuaXRpemVyOiBEb21TYW5pdGl6ZXI7XHJcbiAgICBwdWJsaWMgaHR0cDogSFRUUFNlcnZpY2U7XHJcbiAgICBwdWJsaWMgbXNnRXh0czogTWVzc2FnZVNlcnZpY2U7XHJcblxyXG4gICAgY29uc3RydWN0b3IocHJpdmF0ZSBpbmplY3RvcjogSW5qZWN0b3IpIHtcclxuICAgICAgICBsZXQgdGtzID0gdGhpcy5pbmplY3Rvci5nZXQoVG9rZW5TZXJ2aWNlKTtcclxuICAgICAgICB0aGlzLnNhbml0aXplciA9IHRoaXMuaW5qZWN0b3IuZ2V0KERvbVNhbml0aXplcik7XHJcbiAgICAgICAgdGhpcy5odHRwID0gdGhpcy5pbmplY3Rvci5nZXQoSFRUUFNlcnZpY2UpO1xyXG4gICAgICAgIHRoaXMubXNnRXh0cyA9IHRoaXMuaW5qZWN0b3IuZ2V0KE1lc3NhZ2VTZXJ2aWNlKTtcclxuXHJcbiAgICAgICAgdGhpcy5BY2NvdW50SWQgPSB0a3MuZ2V0SmFjZUlkZW50aXR5KCkuSWRBY2NvdW50LnRvU3RyaW5nKCk7XHJcbiAgICAgICAgdGhpcy5kb1JlbG9hZFByb2ZpbGVQaWN0dXJlKCk7XHJcbiAgICB9XHJcblxyXG4gICAgcHVibGljIGFzeW5jIGdldEFjY291bnRQcm9maWxlKCk6IFByb21pc2U8VXNlckFjY291bnQ+IHtcclxuICAgICAgICBsZXQgcGFycyA9IG5ldyBIdHRwUGFyYW1zKCkuc2V0KFwiaWRBY2NvdW50XCIsIHRoaXMuQWNjb3VudElkKTtcclxuICAgICAgICBsZXQgcmV0ID0gYXdhaXQgZmlyc3RWYWx1ZUZyb20odGhpcy5odHRwLmdldDxVc2VyQWNjb3VudD4oR0VUX1VzZXJQcm9maWxlX0dldEVudGl0eUFjY291bnQsIHBhcnMpKTtcclxuICAgICAgICByZXR1cm4gcmV0O1xyXG4gICAgfVxyXG5cclxuICAgIHB1YmxpYyBhc3luYyBkb1JlbG9hZFByb2ZpbGVQaWN0dXJlKCkge1xyXG4gICAgICAgIHRoaXMuUHJvZmlsZVBpY3R1cmUgPSBudWxsO1xyXG4gICAgICAgIGxldCB0bXBQaWN0ID0gYXdhaXQgdGhpcy5nZXRDdXJyZW50UHJvZmlsZVBpY3R1cmUoKTtcclxuICAgICAgICB0aGlzLlByb2ZpbGVQaWN0dXJlID0gdGhpcy5zYW5pdGl6ZXIuYnlwYXNzU2VjdXJpdHlUcnVzdFJlc291cmNlVXJsKGBkYXRhOmltYWdlL3BuZztiYXNlNjQsJHt0bXBQaWN0fWApO1xyXG4gICAgfVxyXG5cclxuICAgIHB1YmxpYyBhc3luYyBnZXRDdXJyZW50UHJvZmlsZVBpY3R1cmUoKTogUHJvbWlzZTxzdHJpbmc+IHtcclxuICAgICAgICBsZXQgcGljdHVyZWI2NCA9IGF3YWl0IGZpcnN0VmFsdWVGcm9tKHRoaXMuaHR0cC5nZXQ8c3RyaW5nPihHRVRfVXNlclByb2ZpbGVfR2V0QWNjb3VudFBpY3R1cmUsIG5ldyBIdHRwUGFyYW1zKCkuc2V0KCdpZEFjY291bnQnLCB0aGlzLkFjY291bnRJZCkpKTtcclxuICAgICAgICByZXR1cm4gcGljdHVyZWI2NDtcclxuICAgIH1cclxuXHJcbiAgICBwdWJsaWMgYXN5bmMgZG9VcGRhdGVQcm9maWxlUGljdHVyZShpbWFnZTogQXBwRmlsZSk6IFByb21pc2U8Q2FsbFJlc3VsdD4ge1xyXG4gICAgICAgIGxldCBkdG9QaWMgPSBuZXcgVXBkYXRlUHJvZmlsZVBpY3R1cmVEdG8odGhpcy5BY2NvdW50SWQpO1xyXG4gICAgICAgIGxldCBjciA9IGF3YWl0IGZpcnN0VmFsdWVGcm9tKHRoaXMuaHR0cC5wb3N0d2l0aEZpbGVzPENhbGxSZXN1bHQ+KFBPU1RfVXNlclByb2ZpbGVfVXBkYXRlQWNjb3VudFBpY3R1cmUsIGR0b1BpYywgaW1hZ2U/Lm5hdGl2ZWZpbGVzID8/IFtdKSk7XHJcbiAgICAgICAgaWYoY3Iuc3VjY2VzcykgdGhpcy5kb1JlbG9hZFByb2ZpbGVQaWN0dXJlKCk7XHJcbiAgICAgICAgcmV0dXJuIGNyO1xyXG4gICAgfVxyXG5cclxuICAgIHB1YmxpYyBhc3luYyBkb1VwZGF0ZVJlY292ZXJ5U2V0dGluZ3MoZW1haWw6IHN0cmluZyk6IFByb21pc2U8Q2FsbFJlc3VsdD4ge1xyXG4gICAgICAgIGxldCBkdG8gPSBuZXcgVXBkYXRlQWNjb3VudFJlY292ZXJ5U2V0dGluZ3NEdG8odGhpcy5BY2NvdW50SWQsIGVtYWlsKTtcclxuICAgICAgICBsZXQgY3IgPSBhd2FpdCBmaXJzdFZhbHVlRnJvbSh0aGlzLmh0dHAucG9zdDxDYWxsUmVzdWx0PihQT1NUX1VzZXJQcm9maWxlX1VwZGF0ZUFjY291bnRSZWNvdmVyeUluZm9zLCBkdG8pKTtcclxuICAgICAgICByZXR1cm4gY3I7XHJcbiAgICB9XHJcblxyXG4gICAgcHVibGljIGFzeW5jIGRvVXBkYXRlUGFzc3dvcmQob2xkUGFzc3dvcmQ6IHN0cmluZywgbmV3UGFzc3dvcmQ6IHN0cmluZywgbmV3UGFzc3dvcmRDb25maXJtOiBzdHJpbmcpOiBQcm9taXNlPENhbGxSZXN1bHQ+IHtcclxuICAgICAgICBsZXQgZHRvID0gbmV3IFVwZGF0ZVBhc3N3b3JkRHRvKHRoaXMuQWNjb3VudElkLCBvbGRQYXNzd29yZCwgbmV3UGFzc3dvcmQsIG5ld1Bhc3N3b3JkQ29uZmlybSk7XHJcbiAgICAgICAgbGV0IGNyID0gYXdhaXQgZmlyc3RWYWx1ZUZyb20odGhpcy5odHRwLnBvc3Q8Q2FsbFJlc3VsdD4oUE9TVF9Vc2VyUHJvZmlsZV9VcGRhdGVBY2NvdW50UGFzc3dvcmQsIGR0bykpO1xyXG4gICAgICAgIHJldHVybiBjcjtcclxuICAgIH1cclxuXHJcbiAgICBwdWJsaWMgYXN5bmMgZG9EZWxldGVQcm9maWxlUGljdHVyZSgpOiBQcm9taXNlPENhbGxSZXN1bHQ+IHtcclxuICAgICAgICBsZXQgcGFycyA9IG5ldyBIdHRwUGFyYW1zKCkuc2V0KCdpZEFjY291bnQnLCB0aGlzLkFjY291bnRJZCk7XHJcbiAgICAgICAgbGV0IGNyID0gYXdhaXQgZmlyc3RWYWx1ZUZyb20odGhpcy5odHRwLmdldDxDYWxsUmVzdWx0PihHRVRfVXNlclByb2ZpbGVfRGVsZXRlQWNjb3VudFBpY3R1cmUsIHBhcnMpKTtcclxuICAgICAgICBpZiAoY3Iuc3VjY2VzcykgdGhpcy5Qcm9maWxlUGljdHVyZSA9IG51bGw7XHJcbiAgICAgICAgcmV0dXJuIGNyO1xyXG4gICAgfVxyXG59Il19
@@ -808,10 +808,10 @@ class PagesComponent {
808
808
  }
809
809
  }
810
810
  PagesComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.9", ngImport: i0, type: PagesComponent, deps: [{ token: i3.DomSanitizer }, { token: i1.AppState }, { token: i2.Location }, { token: i1$1.Router }], target: i0.ɵɵFactoryTarget.Component });
811
- PagesComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "15.2.9", type: PagesComponent, isStandalone: true, selector: "pages", host: { listeners: { "window:resize": "onResize($event)" } }, ngImport: i0, template: "<div class=\"pages-container\">\r\n <sidebar></sidebar>\r\n <div style=\"width: 100%;\">\r\n <navbar>\r\n <breadcrumb></breadcrumb>\r\n </navbar>\r\n <div class=\"main-wrapper\" [style.max-height.px]=\"maxHeight\" [ngClass]=\"{'menu-collapsed': isMenuCollapsed}\">\r\n <div class=\"az-overlay\" *ngIf=\"!isMenuCollapsed\" (click)=\"hideMenu()\"></div>\r\n <div class=\"main\">\r\n <router-outlet></router-outlet>\r\n </div>\r\n <back-top [position]=\"200\"></back-top>\r\n </div>\r\n </div>\r\n</div>", styles: [".main-wrapper{padding:20px 40px;position:relative;width:100%;height:100%;overflow:auto}.main{height:100%;min-height:650px}.az-overlay{position:fixed;inset:0;z-index:8;background:rgba(36,45,58,.2);width:100%;height:100%;display:none}.pages-container{height:100vh;width:100vw;display:flex}@media (max-width: 544px){.main-wrapper,.main-wrapper.menu-collapsed{margin-left:0;padding:30px 20px}.az-overlay{display:block}.footer .footer-main,.footer .created{float:none}}@media (min-width: 544px) and (max-width: 768px){.az-overlay{display:block}}\n"], dependencies: [{ kind: "component", type: Navbar, selector: "navbar" }, { kind: "component", type: Sidebar, selector: "sidebar" }, { kind: "directive", type: NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "component", type: Breadcrumb, selector: "breadcrumb" }, { kind: "directive", type: RouterOutlet, selector: "router-outlet", inputs: ["name"], outputs: ["activate", "deactivate", "attach", "detach"], exportAs: ["outlet"] }, { kind: "component", type: BackTop, selector: "back-top", inputs: ["position", "showSpeed", "moveSpeed"] }], encapsulation: i0.ViewEncapsulation.None });
811
+ PagesComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "15.2.9", type: PagesComponent, isStandalone: true, selector: "pages", host: { listeners: { "window:resize": "onResize($event)" } }, ngImport: i0, template: "<div class=\"pages-container\">\r\n <sidebar></sidebar>\r\n <div style=\"width: 100%;\">\r\n <navbar>\r\n <breadcrumb></breadcrumb>\r\n </navbar>\r\n <div class=\"main-wrapper\" [style.max-height.px]=\"maxHeight\" [ngClass]=\"{'menu-collapsed': isMenuCollapsed}\">\r\n <div class=\"az-overlay\" *ngIf=\"!isMenuCollapsed\" (click)=\"hideMenu()\"></div>\r\n <div class=\"main\">\r\n <router-outlet></router-outlet>\r\n </div>\r\n <back-top [position]=\"200\"></back-top>\r\n </div>\r\n </div>\r\n</div>", styles: [".main-wrapper{padding:20px 40px;position:relative;width:calc(100vw - 230px);height:100%;overflow:auto}.main{height:100%;min-height:650px}.az-overlay{position:fixed;inset:0;z-index:8;background:rgba(36,45,58,.2);width:100%;height:100%;display:none}.pages-container{height:100vh;width:100vw;display:flex}@media (max-width: 544px){.main-wrapper,.main-wrapper.menu-collapsed{margin-left:0;padding:30px 20px}.az-overlay{display:block}.footer .footer-main,.footer .created{float:none}}@media (min-width: 544px) and (max-width: 768px){.az-overlay{display:block}}\n"], dependencies: [{ kind: "component", type: Navbar, selector: "navbar" }, { kind: "component", type: Sidebar, selector: "sidebar" }, { kind: "directive", type: NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "component", type: Breadcrumb, selector: "breadcrumb" }, { kind: "directive", type: RouterOutlet, selector: "router-outlet", inputs: ["name"], outputs: ["activate", "deactivate", "attach", "detach"], exportAs: ["outlet"] }, { kind: "component", type: BackTop, selector: "back-top", inputs: ["position", "showSpeed", "moveSpeed"] }], encapsulation: i0.ViewEncapsulation.None });
812
812
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.9", ngImport: i0, type: PagesComponent, decorators: [{
813
813
  type: Component,
814
- args: [{ selector: "pages", encapsulation: ViewEncapsulation.None, standalone: true, imports: [Navbar, Sidebar, NgClass, NgIf, Breadcrumb, RouterOutlet, BackTop], template: "<div class=\"pages-container\">\r\n <sidebar></sidebar>\r\n <div style=\"width: 100%;\">\r\n <navbar>\r\n <breadcrumb></breadcrumb>\r\n </navbar>\r\n <div class=\"main-wrapper\" [style.max-height.px]=\"maxHeight\" [ngClass]=\"{'menu-collapsed': isMenuCollapsed}\">\r\n <div class=\"az-overlay\" *ngIf=\"!isMenuCollapsed\" (click)=\"hideMenu()\"></div>\r\n <div class=\"main\">\r\n <router-outlet></router-outlet>\r\n </div>\r\n <back-top [position]=\"200\"></back-top>\r\n </div>\r\n </div>\r\n</div>", styles: [".main-wrapper{padding:20px 40px;position:relative;width:100%;height:100%;overflow:auto}.main{height:100%;min-height:650px}.az-overlay{position:fixed;inset:0;z-index:8;background:rgba(36,45,58,.2);width:100%;height:100%;display:none}.pages-container{height:100vh;width:100vw;display:flex}@media (max-width: 544px){.main-wrapper,.main-wrapper.menu-collapsed{margin-left:0;padding:30px 20px}.az-overlay{display:block}.footer .footer-main,.footer .created{float:none}}@media (min-width: 544px) and (max-width: 768px){.az-overlay{display:block}}\n"] }]
814
+ args: [{ selector: "pages", encapsulation: ViewEncapsulation.None, standalone: true, imports: [Navbar, Sidebar, NgClass, NgIf, Breadcrumb, RouterOutlet, BackTop], template: "<div class=\"pages-container\">\r\n <sidebar></sidebar>\r\n <div style=\"width: 100%;\">\r\n <navbar>\r\n <breadcrumb></breadcrumb>\r\n </navbar>\r\n <div class=\"main-wrapper\" [style.max-height.px]=\"maxHeight\" [ngClass]=\"{'menu-collapsed': isMenuCollapsed}\">\r\n <div class=\"az-overlay\" *ngIf=\"!isMenuCollapsed\" (click)=\"hideMenu()\"></div>\r\n <div class=\"main\">\r\n <router-outlet></router-outlet>\r\n </div>\r\n <back-top [position]=\"200\"></back-top>\r\n </div>\r\n </div>\r\n</div>", styles: [".main-wrapper{padding:20px 40px;position:relative;width:calc(100vw - 230px);height:100%;overflow:auto}.main{height:100%;min-height:650px}.az-overlay{position:fixed;inset:0;z-index:8;background:rgba(36,45,58,.2);width:100%;height:100%;display:none}.pages-container{height:100vh;width:100vw;display:flex}@media (max-width: 544px){.main-wrapper,.main-wrapper.menu-collapsed{margin-left:0;padding:30px 20px}.az-overlay{display:block}.footer .footer-main,.footer .created{float:none}}@media (min-width: 544px) and (max-width: 768px){.az-overlay{display:block}}\n"] }]
815
815
  }], ctorParameters: function () { return [{ type: i3.DomSanitizer }, { type: i1.AppState }, { type: i2.Location }, { type: i1$1.Router }]; }, propDecorators: { onResize: [{
816
816
  type: HostListener,
817
817
  args: ['window:resize', ['$event']]
@@ -1385,7 +1385,7 @@ class UserInfosComponent extends BaseComponent {
1385
1385
  }
1386
1386
  }
1387
1387
  UserInfosComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.9", ngImport: i0, type: UserInfosComponent, deps: [{ token: i0.Injector }, { token: i1.TokenService }, { token: i2$1.MessageService }, { token: i2$1.ExportService }, { token: i2$1.UtilityService }, { token: i1$2.LocalizationService }, { token: i1.AppState }, { token: i1.UserPreferencesService }], target: i0.ɵɵFactoryTarget.Component });
1388
- UserInfosComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "15.2.9", type: UserInfosComponent, isStandalone: true, selector: "user-infos", viewQueries: [{ propertyName: "dlgShowAccountRoles", first: true, predicate: ["dlgShowAccountRoles"], descendants: true }, { propertyName: "dlgUpdateProfilePicture", first: true, predicate: ["dlgUpdateProfilePicture"], descendants: true }, { propertyName: "dlgUpdateRecoverySettings", first: true, predicate: ["dlgUpdateRecoverySettings"], descendants: true }, { propertyName: "dlgUpdatePassword", first: true, predicate: ["dlgUpdatePassword"], descendants: true }], usesInheritance: true, ngImport: i0, template: "<div style=\"height: 100%; width: 100%; display: flex;\">\r\n <div style=\"margin: auto;\">\r\n <div class=\"user-img-container\">\r\n <img [src]=\"profile.ProfilePicture\" alt=\"user-img\" class=\"user-img\" />\r\n <div class=\"app-pointer user-img-btn\">\r\n <div class=\"app-opacity user-img-btn-body\" (click)=\"onUpdateProfilePicture();\">\r\n <i class=\"far fa-pen\"></i>\r\n </div>\r\n </div>\r\n </div>\r\n <div class=\"app-margin-top-15\" style=\"position: relative;\" *ngIf=\"AccountDetails\">\r\n <div class=\"card card-body app-no-margin app-padding-15\">\r\n <div class=\"row\">\r\n <div *ac=\"'R:Jace Admin'\" class=\"user-roles-btn\" [matTooltip]=\"'Visualizza Ruoli e Permessi'\" matTooltipPosition=\"above\" (click)=\"onShowAccountRoles();\">\r\n <i class=\"far fa-book-user\"></i>\r\n </div>\r\n <div class=\"col-md-6\"><labeled-span [Label]=\"'Utente' | localize : lc\" Display=\"Vertical\">{{AccountDetails.username}}</labeled-span></div>\r\n <div class=\"col-md-6\"><labeled-span [Label]=\"'Tenant' | localize : lc\" Display=\"Vertical\">{{AccountDetails.idtenant}}</labeled-span></div>\r\n <div class=\"col-md-6 app-margin-top-10\"><labeled-span [Label]=\"'Nome' | localize : lc\" Display=\"Vertical\">{{AccountDetails.firstname}}</labeled-span></div>\r\n <div class=\"col-md-6 app-margin-top-10\"><labeled-span [Label]=\"'Cognome' | localize : lc\" Display=\"Vertical\">{{AccountDetails.lastname}}</labeled-span> </div>\r\n <div class=\"col-md-12 app-margin-top-10\"><labeled-span [Label]=\"'Email' | localize : lc\" Display=\"Vertical\">{{AccountDetails.recoveryemail || 'Non disponibile'}}</labeled-span></div>\r\n </div>\r\n </div>\r\n </div>\r\n <div class=\"app-margin-top-10 row\">\r\n <div class=\"col-md-6\" style=\"padding-right: 5px;\">\r\n <button type=\"button\" style=\"width: 100%;\" class=\"btn btn-primary\" (click)=\"onUpdatePassword()\">Modifica Password</button>\r\n </div>\r\n <div class=\"col-md-6\" style=\"padding-left: 5px;\">\r\n <button type=\"button\" style=\"width: 100%;\" class=\"btn btn-primary\" (click)=\"onUpdateRecoverySettings()\">Modifica Email</button>\r\n </div>\r\n </div>\r\n </div>\r\n</div>\r\n\r\n<!--Update Password-->\r\n<es-modal #dlgUpdatePassword [Size]=\"'L'\">\r\n <es-modal-head (Close)=\"dlgUpdatePassword.hide();\">\r\n <h5 class=\"modal-title pull-left\">Modifica Password</h5>\r\n </es-modal-head>\r\n <form *ngIf=\"UpdatePasswordDTO\" #formUpdatePassword=\"ngForm\" (ngSubmit)=\"formUpdatePassword.valid && doUpdatePassword()\">\r\n <div class=\"modal-body lastfix\">\r\n <form-input [Password]=\"true\" [Label]=\"'Password' | localize: lc\" [(ngModel)]=\"UpdatePasswordDTO.oldpwd\" name=\"oldpw\" required></form-input>\r\n <form-input [Password]=\"true\" [Label]=\"'Nuova Password' | localize: lc\" [(ngModel)]=\"UpdatePasswordDTO.newpwd\" name=\"newpw\" required></form-input>\r\n <form-input [Password]=\"true\" [Label]=\"'Conferma Password' | localize: lc\" [(ngModel)]=\"UpdatePasswordDTO.confirmpwd\" name=\"confpw\" required></form-input>\r\n <!--Validazione Custom-->\r\n <div *ngIf=\"CustomError\" class=\"app-white-text app-margin-top-15 app-margin-bottom-0 card app-padding-10 card-danger\">\r\n <strong>{{'Error' | localize : lc}}:&nbsp;</strong>{{CustomError}}\r\n </div>\r\n </div>\r\n <div class=\"modal-footer\">\r\n <button type=\"button\" class=\"btn btn-secondary app-margin-right-10\" (click)=\"dlgUpdatePassword.hide();\">{{'Cancel' | localize : lc}}</button>\r\n <button type=\"submit\" class=\"btn btn-primary\">Conferma</button>\r\n </div>\r\n </form>\r\n</es-modal>\r\n\r\n<!--Update Extra Info-->\r\n<es-modal #dlgUpdateRecoverySettings [Size]=\"'L'\">\r\n <es-modal-head (Close)=\"dlgUpdateRecoverySettings.hide();\">\r\n <h5 class=\"modal-title pull-left\">{{'Modifica Email' | localize : lc}}</h5>\r\n </es-modal-head>\r\n <form *ngIf=\"UpdateRecoverySettingsDTO\" #formUpdateInfos=\"ngForm\" (ngSubmit)=\"formUpdateInfos.valid && doUpdateRecoverySettings()\">\r\n <div class=\"modal-body lastfix\">\r\n <form-input [LabelInputRatio]=\"'3 9'\" [Label]=\"'Email' | localize: lc\" [(ngModel)]=\"UpdateRecoverySettingsDTO.email\" name=\"email\"></form-input>\r\n </div>\r\n <div class=\"modal-footer\">\r\n <button type=\"button\" class=\"btn btn-secondary app-margin-right-10\" (click)=\"dlgUpdateRecoverySettings.hide();\">{{'Cancel' | localize : lc}}</button>\r\n <button type=\"submit\" class=\"btn btn-primary\">Conferma</button>\r\n </div>\r\n </form>\r\n</es-modal>\r\n\r\n<!--Upload Picture-->\r\n<es-modal #dlgUpdateProfilePicture [Size]=\"'M'\">\r\n <es-modal-head (Close)=\"dlgUpdateProfilePicture.hide();\">\r\n <h5 class=\"modal-title pull-left\">{{'Carica Avatar' | localize : lc}}</h5>\r\n </es-modal-head>\r\n <form *ngIf=\"UpdateProfilePictureDTO\" #formUpdateProfilePicture=\"ngForm\" (ngSubmit)=\"formUpdateProfilePicture && doUpdateProfilePicture();\">\r\n <div class=\"modal-body lastfix\">\r\n <form-file Label=\"File\" [FancyMode]=\"true\" [(ngModel)]=\"UpdateProfilePictureDTO.image\" name=\"up_file\"></form-file>\r\n </div>\r\n <div class=\"modal-footer\">\r\n <button type=\"button\" class=\"btn btn-danger\" style=\"margin-right: auto;\" (click)=\"onDeleteProfilePicture();\">{{'Rimuovi' | localize : lc}}</button>\r\n <button type=\"button\" class=\"btn btn-secondary app-margin-right-10\" (click)=\"dlgUpdateProfilePicture.hide();\">{{'Cancel' | localize : lc}}</button>\r\n <button type=\"submit\" class=\"btn btn-primary\">{{'Save' | localize : lc}}</button>\r\n </div>\r\n </form>\r\n</es-modal>\r\n\r\n<!--Ruoli e Permessi-->\r\n<es-modal #dlgShowAccountRoles [Size]=\"'L'\">\r\n <es-modal-head (Close)=\"dlgShowAccountRoles.hide();\">\r\n <h5 class=\"modal-title pull-left\">{{'Ruoli e Permessi' | localize : lc}}</h5>\r\n </es-modal-head>\r\n <div class=\"modal-body\" style=\"max-height: 600px; overflow-y: auto;\">\r\n <div class=\"row\">\r\n <div class=\"col-md-6\" *ngIf=\"AccountRoles\">\r\n <labeled-span [Label]=\"'Ruoli'\" Display=\"Vertical\">\r\n <div *ngFor=\"let r of AccountRoles;\">{{r}}</div>\r\n </labeled-span>\r\n </div>\r\n <div class=\"col-md-6\" *ngIf=\"AccountPermissions\">\r\n <labeled-span [Label]=\"'Permessi'\" Display=\"Vertical\">\r\n <div *ngFor=\"let p of AccountPermissions;\">{{p}}</div>\r\n </labeled-span>\r\n </div>\r\n </div>\r\n </div>\r\n <div class=\"modal-footer\">\r\n <button type=\"button\" class=\"btn btn-secondary\" (click)=\"dlgShowAccountRoles.hide();\">{{'Chiudi' | localize : lc}}</button>\r\n </div>\r\n</es-modal>", styles: [".app-wideplus{width:100%;text-align:center;border:1px solid #ccc;border-radius:5px;padding:5px}.btn-outline-main-modified{color:#242d3a;border-color:#242d3a;background:transparent}.btn-outline-main-modified:hover{color:#fff;background:#242D3A;border-color:#242d3a}.user-img-container{position:relative;width:200px;margin:auto}.user-img{object-fit:cover;max-height:200px;min-height:200px;min-width:200px;max-width:200px;border-radius:50%;box-shadow:0 8px 6px #1313130a,0 12px 16px #1313130d}.user-img-btn{position:absolute;right:0;width:40px;height:40px;margin-top:-50px}.user-img-btn-body{background-color:#0056b3;color:#fff;border-radius:50%;text-align:center;height:100%;font-size:1.2rem;line-height:2.5rem}.user-roles-btn{position:absolute;top:0;right:2px;font-size:1.2rem;padding:5px;z-index:1;color:#0056b3;cursor:pointer}\n"], dependencies: [{ kind: "ngmodule", type: FormsModule }, { kind: "directive", type: i6.ɵNgNoValidate, selector: "form:not([ngNoForm]):not([ngNativeValidate])" }, { kind: "directive", type: i6.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i6.NgControlStatusGroup, selector: "[formGroupName],[formArrayName],[ngModelGroup],[formGroup],form:not([ngNoForm]),[ngForm]" }, { kind: "directive", type: i6.RequiredValidator, selector: ":not([type=checkbox])[required][formControlName],:not([type=checkbox])[required][formControl],:not([type=checkbox])[required][ngModel]", inputs: ["required"] }, { kind: "directive", type: i6.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }, { kind: "directive", type: i6.NgForm, selector: "form:not([ngNoForm]):not([formGroup]),ng-form,[ngForm]", inputs: ["ngFormOptions"], outputs: ["ngSubmit"], exportAs: ["ngForm"] }, { kind: "ngmodule", type: FormsAndValidationsModule }, { kind: "component", type: i5$1.FormInputComponent, selector: "form-input", inputs: ["Password"], outputs: ["onSuffixAction", "onPrefixAction"] }, { kind: "component", type: i5$1.FormFileComponent, selector: "form-file", inputs: ["Multiple", "AllowDownload", "MaxSize", "FancyMode"] }, { kind: "directive", type: NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: NgFor, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "ngmodule", type: LocalizationModule }, { kind: "pipe", type: i1$2.LocalizePipe, name: "localize" }, { kind: "component", type: EsModalComponent, selector: "es-modal", inputs: ["Size", "IgnoreBackdrop", "Backdrop", "HasOverlap"], outputs: ["onShow", "onHide"] }, { kind: "component", type: EsModalHeadComponent, selector: "es-modal-head", outputs: ["Close"] }, { kind: "component", type: LabeledSpanComponent, selector: "labeled-span", inputs: ["First", "Label", "Display"] }, { kind: "ngmodule", type: ExtensionsModule }, { kind: "ngmodule", type: AccessControlModule }, { kind: "directive", type: i5.AccessControlDirective, selector: "[ac]", inputs: ["ac", "acAbsolute"] }, { kind: "ngmodule", type: MatTooltipModule }, { kind: "directive", type: i7$1.MatTooltip, selector: "[matTooltip]", exportAs: ["matTooltip"] }], viewProviders: [{ provide: LocalizationService, useClass: UserInfoComponentLoc }] });
1388
+ UserInfosComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "15.2.9", type: UserInfosComponent, isStandalone: true, selector: "user-infos", viewQueries: [{ propertyName: "dlgShowAccountRoles", first: true, predicate: ["dlgShowAccountRoles"], descendants: true }, { propertyName: "dlgUpdateProfilePicture", first: true, predicate: ["dlgUpdateProfilePicture"], descendants: true }, { propertyName: "dlgUpdateRecoverySettings", first: true, predicate: ["dlgUpdateRecoverySettings"], descendants: true }, { propertyName: "dlgUpdatePassword", first: true, predicate: ["dlgUpdatePassword"], descendants: true }], usesInheritance: true, ngImport: i0, template: "<div style=\"height: 100%; width: 100%; display: flex;\">\r\n <div style=\"margin: auto;\">\r\n <div class=\"user-img-container\">\r\n <img [src]=\"profile.ProfilePicture\" alt=\"user-img\" class=\"user-img\" />\r\n <div class=\"app-pointer user-img-btn\">\r\n <div class=\"app-opacity user-img-btn-body\" (click)=\"onUpdateProfilePicture();\">\r\n <i class=\"far fa-pen\"></i>\r\n </div>\r\n </div>\r\n </div>\r\n <div class=\"app-margin-top-15\" style=\"position: relative;\" *ngIf=\"AccountDetails\">\r\n <div class=\"card card-body app-no-margin app-padding-15\">\r\n <div class=\"row\">\r\n <div *ac=\"'R:Jace Admin'\" class=\"user-roles-btn\" [matTooltip]=\"'Visualizza Ruoli e Permessi'\" matTooltipPosition=\"above\" (click)=\"onShowAccountRoles();\">\r\n <i class=\"far fa-book-user\"></i>\r\n </div>\r\n <div class=\"col-md-6\"><labeled-span [Label]=\"'Utente' | localize : lc\" Display=\"Vertical\">{{AccountDetails.username}}</labeled-span></div>\r\n <div class=\"col-md-6\"><labeled-span [Label]=\"'Tenant' | localize : lc\" Display=\"Vertical\">{{AccountDetails.tenantid}}</labeled-span></div>\r\n <div class=\"col-md-6 app-margin-top-10\"><labeled-span [Label]=\"'Nome' | localize : lc\" Display=\"Vertical\">{{AccountDetails.firstname}}</labeled-span></div>\r\n <div class=\"col-md-6 app-margin-top-10\"><labeled-span [Label]=\"'Cognome' | localize : lc\" Display=\"Vertical\">{{AccountDetails.lastname}}</labeled-span> </div>\r\n <div class=\"col-md-12 app-margin-top-10\"><labeled-span [Label]=\"'Email' | localize : lc\" Display=\"Vertical\">{{AccountDetails.recoveryemail || 'Non disponibile'}}</labeled-span></div>\r\n </div>\r\n </div>\r\n </div>\r\n <div class=\"app-margin-top-10 row\">\r\n <div class=\"col-md-6\" style=\"padding-right: 5px;\">\r\n <button type=\"button\" style=\"width: 100%;\" class=\"btn btn-primary\" (click)=\"onUpdatePassword()\">Modifica Password</button>\r\n </div>\r\n <div class=\"col-md-6\" style=\"padding-left: 5px;\">\r\n <button type=\"button\" style=\"width: 100%;\" class=\"btn btn-primary\" (click)=\"onUpdateRecoverySettings()\">Modifica Email</button>\r\n </div>\r\n </div>\r\n </div>\r\n</div>\r\n\r\n<!--Update Password-->\r\n<es-modal #dlgUpdatePassword [Size]=\"'L'\">\r\n <es-modal-head (Close)=\"dlgUpdatePassword.hide();\">\r\n <h5 class=\"modal-title pull-left\">Modifica Password</h5>\r\n </es-modal-head>\r\n <form *ngIf=\"UpdatePasswordDTO\" #formUpdatePassword=\"ngForm\" (ngSubmit)=\"formUpdatePassword.valid && doUpdatePassword()\">\r\n <div class=\"modal-body lastfix\">\r\n <form-input [Password]=\"true\" [Label]=\"'Password' | localize: lc\" [(ngModel)]=\"UpdatePasswordDTO.oldpwd\" name=\"oldpw\" required></form-input>\r\n <form-input [Password]=\"true\" [Label]=\"'Nuova Password' | localize: lc\" [(ngModel)]=\"UpdatePasswordDTO.newpwd\" name=\"newpw\" required></form-input>\r\n <form-input [Password]=\"true\" [Label]=\"'Conferma Password' | localize: lc\" [(ngModel)]=\"UpdatePasswordDTO.confirmpwd\" name=\"confpw\" required></form-input>\r\n <!--Validazione Custom-->\r\n <div *ngIf=\"CustomError\" class=\"app-white-text app-margin-top-15 app-margin-bottom-0 card app-padding-10 card-danger\">\r\n <strong>{{'Error' | localize : lc}}:&nbsp;</strong>{{CustomError}}\r\n </div>\r\n </div>\r\n <div class=\"modal-footer\">\r\n <button type=\"button\" class=\"btn btn-secondary app-margin-right-10\" (click)=\"dlgUpdatePassword.hide();\">{{'Cancel' | localize : lc}}</button>\r\n <button type=\"submit\" class=\"btn btn-primary\">Conferma</button>\r\n </div>\r\n </form>\r\n</es-modal>\r\n\r\n<!--Update Extra Info-->\r\n<es-modal #dlgUpdateRecoverySettings [Size]=\"'L'\">\r\n <es-modal-head (Close)=\"dlgUpdateRecoverySettings.hide();\">\r\n <h5 class=\"modal-title pull-left\">{{'Modifica Email' | localize : lc}}</h5>\r\n </es-modal-head>\r\n <form *ngIf=\"UpdateRecoverySettingsDTO\" #formUpdateInfos=\"ngForm\" (ngSubmit)=\"formUpdateInfos.valid && doUpdateRecoverySettings()\">\r\n <div class=\"modal-body lastfix\">\r\n <form-input [LabelInputRatio]=\"'3 9'\" [Label]=\"'Email' | localize: lc\" [(ngModel)]=\"UpdateRecoverySettingsDTO.email\" name=\"email\"></form-input>\r\n </div>\r\n <div class=\"modal-footer\">\r\n <button type=\"button\" class=\"btn btn-secondary app-margin-right-10\" (click)=\"dlgUpdateRecoverySettings.hide();\">{{'Cancel' | localize : lc}}</button>\r\n <button type=\"submit\" class=\"btn btn-primary\">Conferma</button>\r\n </div>\r\n </form>\r\n</es-modal>\r\n\r\n<!--Upload Picture-->\r\n<es-modal #dlgUpdateProfilePicture [Size]=\"'M'\">\r\n <es-modal-head (Close)=\"dlgUpdateProfilePicture.hide();\">\r\n <h5 class=\"modal-title pull-left\">{{'Carica Avatar' | localize : lc}}</h5>\r\n </es-modal-head>\r\n <form *ngIf=\"UpdateProfilePictureDTO\" #formUpdateProfilePicture=\"ngForm\" (ngSubmit)=\"formUpdateProfilePicture && doUpdateProfilePicture();\">\r\n <div class=\"modal-body lastfix\">\r\n <form-file Label=\"File\" [FancyMode]=\"true\" [(ngModel)]=\"UpdateProfilePictureDTO.image\" name=\"up_file\"></form-file>\r\n </div>\r\n <div class=\"modal-footer\">\r\n <button type=\"button\" class=\"btn btn-danger\" style=\"margin-right: auto;\" (click)=\"onDeleteProfilePicture();\">{{'Rimuovi' | localize : lc}}</button>\r\n <button type=\"button\" class=\"btn btn-secondary app-margin-right-10\" (click)=\"dlgUpdateProfilePicture.hide();\">{{'Cancel' | localize : lc}}</button>\r\n <button type=\"submit\" class=\"btn btn-primary\">{{'Save' | localize : lc}}</button>\r\n </div>\r\n </form>\r\n</es-modal>\r\n\r\n<!--Ruoli e Permessi-->\r\n<es-modal #dlgShowAccountRoles [Size]=\"'L'\">\r\n <es-modal-head (Close)=\"dlgShowAccountRoles.hide();\">\r\n <h5 class=\"modal-title pull-left\">{{'Ruoli e Permessi' | localize : lc}}</h5>\r\n </es-modal-head>\r\n <div class=\"modal-body\" style=\"max-height: 600px; overflow-y: auto;\">\r\n <div class=\"row\">\r\n <div class=\"col-md-6\" *ngIf=\"AccountRoles\">\r\n <labeled-span [Label]=\"'Ruoli'\" Display=\"Vertical\">\r\n <div *ngFor=\"let r of AccountRoles;\">{{r}}</div>\r\n </labeled-span>\r\n </div>\r\n <div class=\"col-md-6\" *ngIf=\"AccountPermissions\">\r\n <labeled-span [Label]=\"'Permessi'\" Display=\"Vertical\">\r\n <div *ngFor=\"let p of AccountPermissions;\">{{p}}</div>\r\n </labeled-span>\r\n </div>\r\n </div>\r\n </div>\r\n <div class=\"modal-footer\">\r\n <button type=\"button\" class=\"btn btn-secondary\" (click)=\"dlgShowAccountRoles.hide();\">{{'Chiudi' | localize : lc}}</button>\r\n </div>\r\n</es-modal>", styles: [".app-wideplus{width:100%;text-align:center;border:1px solid #ccc;border-radius:5px;padding:5px}.btn-outline-main-modified{color:#242d3a;border-color:#242d3a;background:transparent}.btn-outline-main-modified:hover{color:#fff;background:#242D3A;border-color:#242d3a}.user-img-container{position:relative;width:200px;margin:auto}.user-img{object-fit:cover;max-height:200px;min-height:200px;min-width:200px;max-width:200px;border-radius:50%;box-shadow:0 8px 6px #1313130a,0 12px 16px #1313130d}.user-img-btn{position:absolute;right:0;width:40px;height:40px;margin-top:-50px}.user-img-btn-body{background-color:#0056b3;color:#fff;border-radius:50%;text-align:center;height:100%;font-size:1.2rem;line-height:2.5rem}.user-roles-btn{position:absolute;top:0;right:2px;font-size:1.2rem;padding:5px;z-index:1;color:#0056b3;cursor:pointer}\n"], dependencies: [{ kind: "ngmodule", type: FormsModule }, { kind: "directive", type: i6.ɵNgNoValidate, selector: "form:not([ngNoForm]):not([ngNativeValidate])" }, { kind: "directive", type: i6.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i6.NgControlStatusGroup, selector: "[formGroupName],[formArrayName],[ngModelGroup],[formGroup],form:not([ngNoForm]),[ngForm]" }, { kind: "directive", type: i6.RequiredValidator, selector: ":not([type=checkbox])[required][formControlName],:not([type=checkbox])[required][formControl],:not([type=checkbox])[required][ngModel]", inputs: ["required"] }, { kind: "directive", type: i6.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }, { kind: "directive", type: i6.NgForm, selector: "form:not([ngNoForm]):not([formGroup]),ng-form,[ngForm]", inputs: ["ngFormOptions"], outputs: ["ngSubmit"], exportAs: ["ngForm"] }, { kind: "ngmodule", type: FormsAndValidationsModule }, { kind: "component", type: i5$1.FormInputComponent, selector: "form-input", inputs: ["Password"], outputs: ["onSuffixAction", "onPrefixAction"] }, { kind: "component", type: i5$1.FormFileComponent, selector: "form-file", inputs: ["Multiple", "AllowDownload", "MaxSize", "FancyMode"] }, { kind: "directive", type: NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: NgFor, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "ngmodule", type: LocalizationModule }, { kind: "pipe", type: i1$2.LocalizePipe, name: "localize" }, { kind: "component", type: EsModalComponent, selector: "es-modal", inputs: ["Size", "IgnoreBackdrop", "Backdrop", "HasOverlap"], outputs: ["onShow", "onHide"] }, { kind: "component", type: EsModalHeadComponent, selector: "es-modal-head", outputs: ["Close"] }, { kind: "component", type: LabeledSpanComponent, selector: "labeled-span", inputs: ["First", "Label", "Display"] }, { kind: "ngmodule", type: ExtensionsModule }, { kind: "ngmodule", type: AccessControlModule }, { kind: "directive", type: i5.AccessControlDirective, selector: "[ac]", inputs: ["ac", "acAbsolute"] }, { kind: "ngmodule", type: MatTooltipModule }, { kind: "directive", type: i7$1.MatTooltip, selector: "[matTooltip]", exportAs: ["matTooltip"] }], viewProviders: [{ provide: LocalizationService, useClass: UserInfoComponentLoc }] });
1389
1389
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.9", ngImport: i0, type: UserInfosComponent, decorators: [{
1390
1390
  type: Component,
1391
1391
  args: [{ selector: "user-infos", viewProviders: [{ provide: LocalizationService, useClass: UserInfoComponentLoc }], standalone: true, imports: [
@@ -1400,7 +1400,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.9", ngImpor
1400
1400
  ExtensionsModule,
1401
1401
  AccessControlModule,
1402
1402
  MatTooltipModule
1403
- ], template: "<div style=\"height: 100%; width: 100%; display: flex;\">\r\n <div style=\"margin: auto;\">\r\n <div class=\"user-img-container\">\r\n <img [src]=\"profile.ProfilePicture\" alt=\"user-img\" class=\"user-img\" />\r\n <div class=\"app-pointer user-img-btn\">\r\n <div class=\"app-opacity user-img-btn-body\" (click)=\"onUpdateProfilePicture();\">\r\n <i class=\"far fa-pen\"></i>\r\n </div>\r\n </div>\r\n </div>\r\n <div class=\"app-margin-top-15\" style=\"position: relative;\" *ngIf=\"AccountDetails\">\r\n <div class=\"card card-body app-no-margin app-padding-15\">\r\n <div class=\"row\">\r\n <div *ac=\"'R:Jace Admin'\" class=\"user-roles-btn\" [matTooltip]=\"'Visualizza Ruoli e Permessi'\" matTooltipPosition=\"above\" (click)=\"onShowAccountRoles();\">\r\n <i class=\"far fa-book-user\"></i>\r\n </div>\r\n <div class=\"col-md-6\"><labeled-span [Label]=\"'Utente' | localize : lc\" Display=\"Vertical\">{{AccountDetails.username}}</labeled-span></div>\r\n <div class=\"col-md-6\"><labeled-span [Label]=\"'Tenant' | localize : lc\" Display=\"Vertical\">{{AccountDetails.idtenant}}</labeled-span></div>\r\n <div class=\"col-md-6 app-margin-top-10\"><labeled-span [Label]=\"'Nome' | localize : lc\" Display=\"Vertical\">{{AccountDetails.firstname}}</labeled-span></div>\r\n <div class=\"col-md-6 app-margin-top-10\"><labeled-span [Label]=\"'Cognome' | localize : lc\" Display=\"Vertical\">{{AccountDetails.lastname}}</labeled-span> </div>\r\n <div class=\"col-md-12 app-margin-top-10\"><labeled-span [Label]=\"'Email' | localize : lc\" Display=\"Vertical\">{{AccountDetails.recoveryemail || 'Non disponibile'}}</labeled-span></div>\r\n </div>\r\n </div>\r\n </div>\r\n <div class=\"app-margin-top-10 row\">\r\n <div class=\"col-md-6\" style=\"padding-right: 5px;\">\r\n <button type=\"button\" style=\"width: 100%;\" class=\"btn btn-primary\" (click)=\"onUpdatePassword()\">Modifica Password</button>\r\n </div>\r\n <div class=\"col-md-6\" style=\"padding-left: 5px;\">\r\n <button type=\"button\" style=\"width: 100%;\" class=\"btn btn-primary\" (click)=\"onUpdateRecoverySettings()\">Modifica Email</button>\r\n </div>\r\n </div>\r\n </div>\r\n</div>\r\n\r\n<!--Update Password-->\r\n<es-modal #dlgUpdatePassword [Size]=\"'L'\">\r\n <es-modal-head (Close)=\"dlgUpdatePassword.hide();\">\r\n <h5 class=\"modal-title pull-left\">Modifica Password</h5>\r\n </es-modal-head>\r\n <form *ngIf=\"UpdatePasswordDTO\" #formUpdatePassword=\"ngForm\" (ngSubmit)=\"formUpdatePassword.valid && doUpdatePassword()\">\r\n <div class=\"modal-body lastfix\">\r\n <form-input [Password]=\"true\" [Label]=\"'Password' | localize: lc\" [(ngModel)]=\"UpdatePasswordDTO.oldpwd\" name=\"oldpw\" required></form-input>\r\n <form-input [Password]=\"true\" [Label]=\"'Nuova Password' | localize: lc\" [(ngModel)]=\"UpdatePasswordDTO.newpwd\" name=\"newpw\" required></form-input>\r\n <form-input [Password]=\"true\" [Label]=\"'Conferma Password' | localize: lc\" [(ngModel)]=\"UpdatePasswordDTO.confirmpwd\" name=\"confpw\" required></form-input>\r\n <!--Validazione Custom-->\r\n <div *ngIf=\"CustomError\" class=\"app-white-text app-margin-top-15 app-margin-bottom-0 card app-padding-10 card-danger\">\r\n <strong>{{'Error' | localize : lc}}:&nbsp;</strong>{{CustomError}}\r\n </div>\r\n </div>\r\n <div class=\"modal-footer\">\r\n <button type=\"button\" class=\"btn btn-secondary app-margin-right-10\" (click)=\"dlgUpdatePassword.hide();\">{{'Cancel' | localize : lc}}</button>\r\n <button type=\"submit\" class=\"btn btn-primary\">Conferma</button>\r\n </div>\r\n </form>\r\n</es-modal>\r\n\r\n<!--Update Extra Info-->\r\n<es-modal #dlgUpdateRecoverySettings [Size]=\"'L'\">\r\n <es-modal-head (Close)=\"dlgUpdateRecoverySettings.hide();\">\r\n <h5 class=\"modal-title pull-left\">{{'Modifica Email' | localize : lc}}</h5>\r\n </es-modal-head>\r\n <form *ngIf=\"UpdateRecoverySettingsDTO\" #formUpdateInfos=\"ngForm\" (ngSubmit)=\"formUpdateInfos.valid && doUpdateRecoverySettings()\">\r\n <div class=\"modal-body lastfix\">\r\n <form-input [LabelInputRatio]=\"'3 9'\" [Label]=\"'Email' | localize: lc\" [(ngModel)]=\"UpdateRecoverySettingsDTO.email\" name=\"email\"></form-input>\r\n </div>\r\n <div class=\"modal-footer\">\r\n <button type=\"button\" class=\"btn btn-secondary app-margin-right-10\" (click)=\"dlgUpdateRecoverySettings.hide();\">{{'Cancel' | localize : lc}}</button>\r\n <button type=\"submit\" class=\"btn btn-primary\">Conferma</button>\r\n </div>\r\n </form>\r\n</es-modal>\r\n\r\n<!--Upload Picture-->\r\n<es-modal #dlgUpdateProfilePicture [Size]=\"'M'\">\r\n <es-modal-head (Close)=\"dlgUpdateProfilePicture.hide();\">\r\n <h5 class=\"modal-title pull-left\">{{'Carica Avatar' | localize : lc}}</h5>\r\n </es-modal-head>\r\n <form *ngIf=\"UpdateProfilePictureDTO\" #formUpdateProfilePicture=\"ngForm\" (ngSubmit)=\"formUpdateProfilePicture && doUpdateProfilePicture();\">\r\n <div class=\"modal-body lastfix\">\r\n <form-file Label=\"File\" [FancyMode]=\"true\" [(ngModel)]=\"UpdateProfilePictureDTO.image\" name=\"up_file\"></form-file>\r\n </div>\r\n <div class=\"modal-footer\">\r\n <button type=\"button\" class=\"btn btn-danger\" style=\"margin-right: auto;\" (click)=\"onDeleteProfilePicture();\">{{'Rimuovi' | localize : lc}}</button>\r\n <button type=\"button\" class=\"btn btn-secondary app-margin-right-10\" (click)=\"dlgUpdateProfilePicture.hide();\">{{'Cancel' | localize : lc}}</button>\r\n <button type=\"submit\" class=\"btn btn-primary\">{{'Save' | localize : lc}}</button>\r\n </div>\r\n </form>\r\n</es-modal>\r\n\r\n<!--Ruoli e Permessi-->\r\n<es-modal #dlgShowAccountRoles [Size]=\"'L'\">\r\n <es-modal-head (Close)=\"dlgShowAccountRoles.hide();\">\r\n <h5 class=\"modal-title pull-left\">{{'Ruoli e Permessi' | localize : lc}}</h5>\r\n </es-modal-head>\r\n <div class=\"modal-body\" style=\"max-height: 600px; overflow-y: auto;\">\r\n <div class=\"row\">\r\n <div class=\"col-md-6\" *ngIf=\"AccountRoles\">\r\n <labeled-span [Label]=\"'Ruoli'\" Display=\"Vertical\">\r\n <div *ngFor=\"let r of AccountRoles;\">{{r}}</div>\r\n </labeled-span>\r\n </div>\r\n <div class=\"col-md-6\" *ngIf=\"AccountPermissions\">\r\n <labeled-span [Label]=\"'Permessi'\" Display=\"Vertical\">\r\n <div *ngFor=\"let p of AccountPermissions;\">{{p}}</div>\r\n </labeled-span>\r\n </div>\r\n </div>\r\n </div>\r\n <div class=\"modal-footer\">\r\n <button type=\"button\" class=\"btn btn-secondary\" (click)=\"dlgShowAccountRoles.hide();\">{{'Chiudi' | localize : lc}}</button>\r\n </div>\r\n</es-modal>", styles: [".app-wideplus{width:100%;text-align:center;border:1px solid #ccc;border-radius:5px;padding:5px}.btn-outline-main-modified{color:#242d3a;border-color:#242d3a;background:transparent}.btn-outline-main-modified:hover{color:#fff;background:#242D3A;border-color:#242d3a}.user-img-container{position:relative;width:200px;margin:auto}.user-img{object-fit:cover;max-height:200px;min-height:200px;min-width:200px;max-width:200px;border-radius:50%;box-shadow:0 8px 6px #1313130a,0 12px 16px #1313130d}.user-img-btn{position:absolute;right:0;width:40px;height:40px;margin-top:-50px}.user-img-btn-body{background-color:#0056b3;color:#fff;border-radius:50%;text-align:center;height:100%;font-size:1.2rem;line-height:2.5rem}.user-roles-btn{position:absolute;top:0;right:2px;font-size:1.2rem;padding:5px;z-index:1;color:#0056b3;cursor:pointer}\n"] }]
1403
+ ], template: "<div style=\"height: 100%; width: 100%; display: flex;\">\r\n <div style=\"margin: auto;\">\r\n <div class=\"user-img-container\">\r\n <img [src]=\"profile.ProfilePicture\" alt=\"user-img\" class=\"user-img\" />\r\n <div class=\"app-pointer user-img-btn\">\r\n <div class=\"app-opacity user-img-btn-body\" (click)=\"onUpdateProfilePicture();\">\r\n <i class=\"far fa-pen\"></i>\r\n </div>\r\n </div>\r\n </div>\r\n <div class=\"app-margin-top-15\" style=\"position: relative;\" *ngIf=\"AccountDetails\">\r\n <div class=\"card card-body app-no-margin app-padding-15\">\r\n <div class=\"row\">\r\n <div *ac=\"'R:Jace Admin'\" class=\"user-roles-btn\" [matTooltip]=\"'Visualizza Ruoli e Permessi'\" matTooltipPosition=\"above\" (click)=\"onShowAccountRoles();\">\r\n <i class=\"far fa-book-user\"></i>\r\n </div>\r\n <div class=\"col-md-6\"><labeled-span [Label]=\"'Utente' | localize : lc\" Display=\"Vertical\">{{AccountDetails.username}}</labeled-span></div>\r\n <div class=\"col-md-6\"><labeled-span [Label]=\"'Tenant' | localize : lc\" Display=\"Vertical\">{{AccountDetails.tenantid}}</labeled-span></div>\r\n <div class=\"col-md-6 app-margin-top-10\"><labeled-span [Label]=\"'Nome' | localize : lc\" Display=\"Vertical\">{{AccountDetails.firstname}}</labeled-span></div>\r\n <div class=\"col-md-6 app-margin-top-10\"><labeled-span [Label]=\"'Cognome' | localize : lc\" Display=\"Vertical\">{{AccountDetails.lastname}}</labeled-span> </div>\r\n <div class=\"col-md-12 app-margin-top-10\"><labeled-span [Label]=\"'Email' | localize : lc\" Display=\"Vertical\">{{AccountDetails.recoveryemail || 'Non disponibile'}}</labeled-span></div>\r\n </div>\r\n </div>\r\n </div>\r\n <div class=\"app-margin-top-10 row\">\r\n <div class=\"col-md-6\" style=\"padding-right: 5px;\">\r\n <button type=\"button\" style=\"width: 100%;\" class=\"btn btn-primary\" (click)=\"onUpdatePassword()\">Modifica Password</button>\r\n </div>\r\n <div class=\"col-md-6\" style=\"padding-left: 5px;\">\r\n <button type=\"button\" style=\"width: 100%;\" class=\"btn btn-primary\" (click)=\"onUpdateRecoverySettings()\">Modifica Email</button>\r\n </div>\r\n </div>\r\n </div>\r\n</div>\r\n\r\n<!--Update Password-->\r\n<es-modal #dlgUpdatePassword [Size]=\"'L'\">\r\n <es-modal-head (Close)=\"dlgUpdatePassword.hide();\">\r\n <h5 class=\"modal-title pull-left\">Modifica Password</h5>\r\n </es-modal-head>\r\n <form *ngIf=\"UpdatePasswordDTO\" #formUpdatePassword=\"ngForm\" (ngSubmit)=\"formUpdatePassword.valid && doUpdatePassword()\">\r\n <div class=\"modal-body lastfix\">\r\n <form-input [Password]=\"true\" [Label]=\"'Password' | localize: lc\" [(ngModel)]=\"UpdatePasswordDTO.oldpwd\" name=\"oldpw\" required></form-input>\r\n <form-input [Password]=\"true\" [Label]=\"'Nuova Password' | localize: lc\" [(ngModel)]=\"UpdatePasswordDTO.newpwd\" name=\"newpw\" required></form-input>\r\n <form-input [Password]=\"true\" [Label]=\"'Conferma Password' | localize: lc\" [(ngModel)]=\"UpdatePasswordDTO.confirmpwd\" name=\"confpw\" required></form-input>\r\n <!--Validazione Custom-->\r\n <div *ngIf=\"CustomError\" class=\"app-white-text app-margin-top-15 app-margin-bottom-0 card app-padding-10 card-danger\">\r\n <strong>{{'Error' | localize : lc}}:&nbsp;</strong>{{CustomError}}\r\n </div>\r\n </div>\r\n <div class=\"modal-footer\">\r\n <button type=\"button\" class=\"btn btn-secondary app-margin-right-10\" (click)=\"dlgUpdatePassword.hide();\">{{'Cancel' | localize : lc}}</button>\r\n <button type=\"submit\" class=\"btn btn-primary\">Conferma</button>\r\n </div>\r\n </form>\r\n</es-modal>\r\n\r\n<!--Update Extra Info-->\r\n<es-modal #dlgUpdateRecoverySettings [Size]=\"'L'\">\r\n <es-modal-head (Close)=\"dlgUpdateRecoverySettings.hide();\">\r\n <h5 class=\"modal-title pull-left\">{{'Modifica Email' | localize : lc}}</h5>\r\n </es-modal-head>\r\n <form *ngIf=\"UpdateRecoverySettingsDTO\" #formUpdateInfos=\"ngForm\" (ngSubmit)=\"formUpdateInfos.valid && doUpdateRecoverySettings()\">\r\n <div class=\"modal-body lastfix\">\r\n <form-input [LabelInputRatio]=\"'3 9'\" [Label]=\"'Email' | localize: lc\" [(ngModel)]=\"UpdateRecoverySettingsDTO.email\" name=\"email\"></form-input>\r\n </div>\r\n <div class=\"modal-footer\">\r\n <button type=\"button\" class=\"btn btn-secondary app-margin-right-10\" (click)=\"dlgUpdateRecoverySettings.hide();\">{{'Cancel' | localize : lc}}</button>\r\n <button type=\"submit\" class=\"btn btn-primary\">Conferma</button>\r\n </div>\r\n </form>\r\n</es-modal>\r\n\r\n<!--Upload Picture-->\r\n<es-modal #dlgUpdateProfilePicture [Size]=\"'M'\">\r\n <es-modal-head (Close)=\"dlgUpdateProfilePicture.hide();\">\r\n <h5 class=\"modal-title pull-left\">{{'Carica Avatar' | localize : lc}}</h5>\r\n </es-modal-head>\r\n <form *ngIf=\"UpdateProfilePictureDTO\" #formUpdateProfilePicture=\"ngForm\" (ngSubmit)=\"formUpdateProfilePicture && doUpdateProfilePicture();\">\r\n <div class=\"modal-body lastfix\">\r\n <form-file Label=\"File\" [FancyMode]=\"true\" [(ngModel)]=\"UpdateProfilePictureDTO.image\" name=\"up_file\"></form-file>\r\n </div>\r\n <div class=\"modal-footer\">\r\n <button type=\"button\" class=\"btn btn-danger\" style=\"margin-right: auto;\" (click)=\"onDeleteProfilePicture();\">{{'Rimuovi' | localize : lc}}</button>\r\n <button type=\"button\" class=\"btn btn-secondary app-margin-right-10\" (click)=\"dlgUpdateProfilePicture.hide();\">{{'Cancel' | localize : lc}}</button>\r\n <button type=\"submit\" class=\"btn btn-primary\">{{'Save' | localize : lc}}</button>\r\n </div>\r\n </form>\r\n</es-modal>\r\n\r\n<!--Ruoli e Permessi-->\r\n<es-modal #dlgShowAccountRoles [Size]=\"'L'\">\r\n <es-modal-head (Close)=\"dlgShowAccountRoles.hide();\">\r\n <h5 class=\"modal-title pull-left\">{{'Ruoli e Permessi' | localize : lc}}</h5>\r\n </es-modal-head>\r\n <div class=\"modal-body\" style=\"max-height: 600px; overflow-y: auto;\">\r\n <div class=\"row\">\r\n <div class=\"col-md-6\" *ngIf=\"AccountRoles\">\r\n <labeled-span [Label]=\"'Ruoli'\" Display=\"Vertical\">\r\n <div *ngFor=\"let r of AccountRoles;\">{{r}}</div>\r\n </labeled-span>\r\n </div>\r\n <div class=\"col-md-6\" *ngIf=\"AccountPermissions\">\r\n <labeled-span [Label]=\"'Permessi'\" Display=\"Vertical\">\r\n <div *ngFor=\"let p of AccountPermissions;\">{{p}}</div>\r\n </labeled-span>\r\n </div>\r\n </div>\r\n </div>\r\n <div class=\"modal-footer\">\r\n <button type=\"button\" class=\"btn btn-secondary\" (click)=\"dlgShowAccountRoles.hide();\">{{'Chiudi' | localize : lc}}</button>\r\n </div>\r\n</es-modal>", styles: [".app-wideplus{width:100%;text-align:center;border:1px solid #ccc;border-radius:5px;padding:5px}.btn-outline-main-modified{color:#242d3a;border-color:#242d3a;background:transparent}.btn-outline-main-modified:hover{color:#fff;background:#242D3A;border-color:#242d3a}.user-img-container{position:relative;width:200px;margin:auto}.user-img{object-fit:cover;max-height:200px;min-height:200px;min-width:200px;max-width:200px;border-radius:50%;box-shadow:0 8px 6px #1313130a,0 12px 16px #1313130d}.user-img-btn{position:absolute;right:0;width:40px;height:40px;margin-top:-50px}.user-img-btn-body{background-color:#0056b3;color:#fff;border-radius:50%;text-align:center;height:100%;font-size:1.2rem;line-height:2.5rem}.user-roles-btn{position:absolute;top:0;right:2px;font-size:1.2rem;padding:5px;z-index:1;color:#0056b3;cursor:pointer}\n"] }]
1404
1404
  }], ctorParameters: function () { return [{ type: i0.Injector }, { type: i1.TokenService }, { type: i2$1.MessageService }, { type: i2$1.ExportService }, { type: i2$1.UtilityService }, { type: i1$2.LocalizationService }, { type: i1.AppState }, { type: i1.UserPreferencesService }]; }, propDecorators: { dlgShowAccountRoles: [{
1405
1405
  type: ViewChild,
1406
1406
  args: ["dlgShowAccountRoles"]