@abp/ng.account 5.0.1 → 5.0.2

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 (76) hide show
  1. package/README.md +3 -3
  2. package/abp-ng.account.d.ts +5 -5
  3. package/bundles/abp-ng.account-config.umd.js +78 -78
  4. package/bundles/abp-ng.account-config.umd.js.map +1 -1
  5. package/bundles/abp-ng.account.umd.js +893 -893
  6. package/bundles/abp-ng.account.umd.js.map +1 -1
  7. package/config/abp-ng.account-config.d.ts +5 -5
  8. package/config/account-config.module.d.ts +8 -8
  9. package/config/enums/index.d.ts +1 -1
  10. package/config/enums/route-names.d.ts +8 -8
  11. package/config/providers/index.d.ts +1 -1
  12. package/config/providers/route.provider.d.ts +8 -8
  13. package/config/public-api.d.ts +3 -3
  14. package/config/utils/factories.d.ts +2 -2
  15. package/esm2015/abp-ng.account.js +4 -4
  16. package/esm2015/config/abp-ng.account-config.js +4 -4
  17. package/esm2015/config/account-config.module.js +27 -27
  18. package/esm2015/config/enums/index.js +2 -2
  19. package/esm2015/config/enums/route-names.js +2 -2
  20. package/esm2015/config/providers/index.js +2 -2
  21. package/esm2015/config/providers/route.provider.js +50 -50
  22. package/esm2015/config/public-api.js +4 -4
  23. package/esm2015/config/utils/factories.js +11 -11
  24. package/esm2015/lib/account-routing.module.js +89 -89
  25. package/esm2015/lib/account.module.js +85 -85
  26. package/esm2015/lib/components/change-password/change-password.component.js +90 -90
  27. package/esm2015/lib/components/forgot-password/forgot-password.component.js +46 -46
  28. package/esm2015/lib/components/index.js +8 -8
  29. package/esm2015/lib/components/login/login.component.js +68 -68
  30. package/esm2015/lib/components/manage-profile/manage-profile.component.js +50 -50
  31. package/esm2015/lib/components/personal-settings/personal-settings.component.js +59 -59
  32. package/esm2015/lib/components/register/register.component.js +87 -87
  33. package/esm2015/lib/components/reset-password/reset-password.component.js +71 -71
  34. package/esm2015/lib/enums/components.js +2 -2
  35. package/esm2015/lib/enums/index.js +2 -2
  36. package/esm2015/lib/guards/authentication-flow.guard.js +21 -21
  37. package/esm2015/lib/guards/index.js +2 -2
  38. package/esm2015/lib/models/account.js +3 -3
  39. package/esm2015/lib/models/config-options.js +2 -2
  40. package/esm2015/lib/models/index.js +3 -3
  41. package/esm2015/lib/services/index.js +2 -2
  42. package/esm2015/lib/services/manage-profile.state.service.js +27 -27
  43. package/esm2015/lib/tokens/config-options.token.js +3 -3
  44. package/esm2015/lib/tokens/index.js +2 -2
  45. package/esm2015/lib/utils/auth-utils.js +8 -8
  46. package/esm2015/lib/utils/factory-utils.js +4 -4
  47. package/esm2015/public-api.js +8 -8
  48. package/fesm2015/abp-ng.account-config.js +75 -75
  49. package/fesm2015/abp-ng.account-config.js.map +1 -1
  50. package/fesm2015/abp-ng.account.js +545 -545
  51. package/fesm2015/abp-ng.account.js.map +1 -1
  52. package/lib/account-routing.module.d.ts +7 -7
  53. package/lib/account.module.d.ts +22 -22
  54. package/lib/components/change-password/change-password.component.d.ts +24 -24
  55. package/lib/components/forgot-password/forgot-password.component.d.ts +14 -14
  56. package/lib/components/index.d.ts +7 -7
  57. package/lib/components/login/login.component.d.ts +24 -24
  58. package/lib/components/manage-profile/manage-profile.component.d.ts +18 -18
  59. package/lib/components/personal-settings/personal-settings.component.d.ts +21 -21
  60. package/lib/components/register/register.component.d.ts +26 -26
  61. package/lib/components/reset-password/reset-password.component.d.ts +22 -22
  62. package/lib/enums/components.d.ts +11 -11
  63. package/lib/enums/index.d.ts +1 -1
  64. package/lib/guards/authentication-flow.guard.d.ts +10 -10
  65. package/lib/guards/index.d.ts +1 -1
  66. package/lib/models/account.d.ts +14 -14
  67. package/lib/models/config-options.d.ts +3 -3
  68. package/lib/models/index.d.ts +2 -2
  69. package/lib/services/index.d.ts +1 -1
  70. package/lib/services/manage-profile.state.service.d.ts +29 -29
  71. package/lib/tokens/config-options.token.d.ts +3 -3
  72. package/lib/tokens/index.d.ts +1 -1
  73. package/lib/utils/auth-utils.d.ts +2 -2
  74. package/lib/utils/factory-utils.d.ts +4 -4
  75. package/package.json +4 -4
  76. package/public-api.d.ts +7 -7
@@ -1,50 +1,50 @@
1
- import { ProfileService } from '@abp/ng.account.core/proxy';
2
- import { fadeIn } from '@abp/ng.theme.shared';
3
- import { transition, trigger, useAnimation } from '@angular/animations';
4
- import { Component } from '@angular/core';
5
- import { ManageProfileStateService } from '../../services/manage-profile.state.service';
6
- import * as i0 from "@angular/core";
7
- import * as i1 from "@abp/ng.account.core/proxy";
8
- import * as i2 from "../../services/manage-profile.state.service";
9
- import * as i3 from "../change-password/change-password.component";
10
- import * as i4 from "../personal-settings/personal-settings.component";
11
- import * as i5 from "@abp/ng.theme.shared";
12
- import * as i6 from "@angular/common";
13
- import * as i7 from "@abp/ng.core";
14
- export class ManageProfileComponent {
15
- constructor(profileService, manageProfileState) {
16
- this.profileService = profileService;
17
- this.manageProfileState = manageProfileState;
18
- this.selectedTab = 0;
19
- this.changePasswordKey = "Account.ChangePasswordComponent" /* ChangePassword */;
20
- this.personalSettingsKey = "Account.PersonalSettingsComponent" /* PersonalSettings */;
21
- this.profile$ = this.manageProfileState.getProfile$();
22
- }
23
- ngOnInit() {
24
- this.profileService.get().subscribe(profile => {
25
- this.manageProfileState.setProfile(profile);
26
- if (profile.isExternal) {
27
- this.hideChangePasswordTab = true;
28
- this.selectedTab = 1;
29
- }
30
- });
31
- }
32
- }
33
- ManageProfileComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "12.2.13", ngImport: i0, type: ManageProfileComponent, deps: [{ token: i1.ProfileService }, { token: i2.ManageProfileStateService }], target: i0.ɵɵFactoryTarget.Component });
34
- ManageProfileComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "12.2.13", type: ManageProfileComponent, selector: "abp-manage-profile", ngImport: i0, template: "<div id=\"AbpContentToolbar\"></div>\r\n\r\n<div class=\"card border-0 shadow-sm min-h-400\" [abpLoading]=\"!(profile$ | async)?.userName\">\r\n <div class=\"card-body\">\r\n <div class=\"row\">\r\n <div class=\"col-12 col-md-3\">\r\n <ul class=\"nav flex-column nav-pills\" id=\"nav-tab\" role=\"tablist\">\r\n <li\r\n *ngIf=\"!hideChangePasswordTab && (profile$ | async)\"\r\n class=\"nav-item\"\r\n (click)=\"selectedTab = 0\"\r\n >\r\n <a\r\n class=\"nav-link\"\r\n [ngClass]=\"{ active: selectedTab === 0 }\"\r\n role=\"tab\"\r\n href=\"javascript:void(0)\"\r\n >{{ 'AbpUi::ChangePassword' | abpLocalization }}</a\r\n >\r\n </li>\r\n <li class=\"nav-item mb-2\" (click)=\"selectedTab = 1\">\r\n <a\r\n class=\"nav-link\"\r\n [ngClass]=\"{ active: selectedTab === 1 }\"\r\n role=\"tab\"\r\n href=\"javascript:void(0)\"\r\n >{{ 'AbpAccount::PersonalSettings' | abpLocalization }}</a\r\n >\r\n </li>\r\n </ul>\r\n </div>\r\n <div *ngIf=\"profile$ | async\" class=\"col-12 col-md-9\">\r\n <div class=\"tab-content\" *ngIf=\"selectedTab === 0\" [@fadeIn]>\r\n <div class=\"tab-pane active\" role=\"tabpanel\">\r\n <h4>\r\n {{ 'AbpIdentity::ChangePassword' | abpLocalization }}\r\n <hr />\r\n </h4>\r\n <abp-change-password-form\r\n *abpReplaceableTemplate=\"{\r\n componentKey: changePasswordKey\r\n }\"\r\n ></abp-change-password-form>\r\n </div>\r\n </div>\r\n <div class=\"tab-content\" *ngIf=\"selectedTab === 1\" [@fadeIn]>\r\n <div class=\"tab-pane active\" role=\"tabpanel\">\r\n <h4>\r\n {{ 'AbpIdentity::PersonalSettings' | abpLocalization }}\r\n <hr />\r\n </h4>\r\n <abp-personal-settings-form\r\n *abpReplaceableTemplate=\"{\r\n componentKey: personalSettingsKey\r\n }\"\r\n ></abp-personal-settings-form>\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n</div>\r\n", styles: ["\n .min-h-400 {\n min-height: 400px;\n }\n "], components: [{ type: i3.ChangePasswordComponent, selector: "abp-change-password-form", exportAs: ["abpChangePasswordForm"] }, { type: i4.PersonalSettingsComponent, selector: "abp-personal-settings-form", exportAs: ["abpPersonalSettingsForm"] }], directives: [{ type: i5.LoadingDirective, selector: "[abpLoading]", inputs: ["abpLoading", "abpLoadingTargetElement", "abpLoadingDelay"] }, { type: i6.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { type: i6.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { type: i7.ReplaceableTemplateDirective, selector: "[abpReplaceableTemplate]", inputs: ["abpReplaceableTemplate"] }], pipes: { "async": i6.AsyncPipe, "abpLocalization": i7.LocalizationPipe }, animations: [trigger('fadeIn', [transition(':enter', useAnimation(fadeIn))])] });
35
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.13", ngImport: i0, type: ManageProfileComponent, decorators: [{
36
- type: Component,
37
- args: [{
38
- selector: 'abp-manage-profile',
39
- templateUrl: './manage-profile.component.html',
40
- animations: [trigger('fadeIn', [transition(':enter', useAnimation(fadeIn))])],
41
- styles: [
42
- `
43
- .min-h-400 {
44
- min-height: 400px;
45
- }
46
- `,
47
- ],
48
- }]
49
- }], ctorParameters: function () { return [{ type: i1.ProfileService }, { type: i2.ManageProfileStateService }]; } });
50
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibWFuYWdlLXByb2ZpbGUuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vcGFja2FnZXMvYWNjb3VudC9zcmMvbGliL2NvbXBvbmVudHMvbWFuYWdlLXByb2ZpbGUvbWFuYWdlLXByb2ZpbGUuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vLi4vcGFja2FnZXMvYWNjb3VudC9zcmMvbGliL2NvbXBvbmVudHMvbWFuYWdlLXByb2ZpbGUvbWFuYWdlLXByb2ZpbGUuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLGNBQWMsRUFBRSxNQUFNLDRCQUE0QixDQUFDO0FBQzVELE9BQU8sRUFBRSxNQUFNLEVBQUUsTUFBTSxzQkFBc0IsQ0FBQztBQUM5QyxPQUFPLEVBQUUsVUFBVSxFQUFFLE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSxxQkFBcUIsQ0FBQztBQUN4RSxPQUFPLEVBQUUsU0FBUyxFQUFVLE1BQU0sZUFBZSxDQUFDO0FBRWxELE9BQU8sRUFBRSx5QkFBeUIsRUFBRSxNQUFNLDZDQUE2QyxDQUFDOzs7Ozs7Ozs7QUFjeEYsTUFBTSxPQUFPLHNCQUFzQjtJQVdqQyxZQUNZLGNBQThCLEVBQzlCLGtCQUE2QztRQUQ3QyxtQkFBYyxHQUFkLGNBQWMsQ0FBZ0I7UUFDOUIsdUJBQWtCLEdBQWxCLGtCQUFrQixDQUEyQjtRQVp6RCxnQkFBVyxHQUFHLENBQUMsQ0FBQztRQUVoQixzQkFBaUIsMERBQXFDO1FBRXRELHdCQUFtQiw4REFBdUM7UUFFMUQsYUFBUSxHQUFHLElBQUksQ0FBQyxrQkFBa0IsQ0FBQyxXQUFXLEVBQUUsQ0FBQztJQU85QyxDQUFDO0lBRUosUUFBUTtRQUNOLElBQUksQ0FBQyxjQUFjLENBQUMsR0FBRyxFQUFFLENBQUMsU0FBUyxDQUFDLE9BQU8sQ0FBQyxFQUFFO1lBQzVDLElBQUksQ0FBQyxrQkFBa0IsQ0FBQyxVQUFVLENBQUMsT0FBTyxDQUFDLENBQUM7WUFDNUMsSUFBSSxPQUFPLENBQUMsVUFBVSxFQUFFO2dCQUN0QixJQUFJLENBQUMscUJBQXFCLEdBQUcsSUFBSSxDQUFDO2dCQUNsQyxJQUFJLENBQUMsV0FBVyxHQUFHLENBQUMsQ0FBQzthQUN0QjtRQUNILENBQUMsQ0FBQyxDQUFDO0lBQ0wsQ0FBQzs7b0hBeEJVLHNCQUFzQjt3R0FBdEIsc0JBQXNCLDBEQ25CbkMsZzBFQThEQSx5ekJEcERjLENBQUMsT0FBTyxDQUFDLFFBQVEsRUFBRSxDQUFDLFVBQVUsQ0FBQyxRQUFRLEVBQUUsWUFBWSxDQUFDLE1BQU0sQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDOzRGQVNsRSxzQkFBc0I7a0JBWmxDLFNBQVM7bUJBQUM7b0JBQ1QsUUFBUSxFQUFFLG9CQUFvQjtvQkFDOUIsV0FBVyxFQUFFLGlDQUFpQztvQkFDOUMsVUFBVSxFQUFFLENBQUMsT0FBTyxDQUFDLFFBQVEsRUFBRSxDQUFDLFVBQVUsQ0FBQyxRQUFRLEVBQUUsWUFBWSxDQUFDLE1BQU0sQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDO29CQUM3RSxNQUFNLEVBQUU7d0JBQ047Ozs7S0FJQztxQkFDRjtpQkFDRiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IFByb2ZpbGVTZXJ2aWNlIH0gZnJvbSAnQGFicC9uZy5hY2NvdW50LmNvcmUvcHJveHknO1xyXG5pbXBvcnQgeyBmYWRlSW4gfSBmcm9tICdAYWJwL25nLnRoZW1lLnNoYXJlZCc7XHJcbmltcG9ydCB7IHRyYW5zaXRpb24sIHRyaWdnZXIsIHVzZUFuaW1hdGlvbiB9IGZyb20gJ0Bhbmd1bGFyL2FuaW1hdGlvbnMnO1xyXG5pbXBvcnQgeyBDb21wb25lbnQsIE9uSW5pdCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xyXG5pbXBvcnQgeyBlQWNjb3VudENvbXBvbmVudHMgfSBmcm9tICcuLi8uLi9lbnVtcy9jb21wb25lbnRzJztcclxuaW1wb3J0IHsgTWFuYWdlUHJvZmlsZVN0YXRlU2VydmljZSB9IGZyb20gJy4uLy4uL3NlcnZpY2VzL21hbmFnZS1wcm9maWxlLnN0YXRlLnNlcnZpY2UnO1xyXG5cclxuQENvbXBvbmVudCh7XHJcbiAgc2VsZWN0b3I6ICdhYnAtbWFuYWdlLXByb2ZpbGUnLFxyXG4gIHRlbXBsYXRlVXJsOiAnLi9tYW5hZ2UtcHJvZmlsZS5jb21wb25lbnQuaHRtbCcsXHJcbiAgYW5pbWF0aW9uczogW3RyaWdnZXIoJ2ZhZGVJbicsIFt0cmFuc2l0aW9uKCc6ZW50ZXInLCB1c2VBbmltYXRpb24oZmFkZUluKSldKV0sXHJcbiAgc3R5bGVzOiBbXHJcbiAgICBgXHJcbiAgICAgIC5taW4taC00MDAge1xyXG4gICAgICAgIG1pbi1oZWlnaHQ6IDQwMHB4O1xyXG4gICAgICB9XHJcbiAgICBgLFxyXG4gIF0sXHJcbn0pXHJcbmV4cG9ydCBjbGFzcyBNYW5hZ2VQcm9maWxlQ29tcG9uZW50IGltcGxlbWVudHMgT25Jbml0IHtcclxuICBzZWxlY3RlZFRhYiA9IDA7XHJcblxyXG4gIGNoYW5nZVBhc3N3b3JkS2V5ID0gZUFjY291bnRDb21wb25lbnRzLkNoYW5nZVBhc3N3b3JkO1xyXG5cclxuICBwZXJzb25hbFNldHRpbmdzS2V5ID0gZUFjY291bnRDb21wb25lbnRzLlBlcnNvbmFsU2V0dGluZ3M7XHJcblxyXG4gIHByb2ZpbGUkID0gdGhpcy5tYW5hZ2VQcm9maWxlU3RhdGUuZ2V0UHJvZmlsZSQoKTtcclxuXHJcbiAgaGlkZUNoYW5nZVBhc3N3b3JkVGFiOiBib29sZWFuO1xyXG5cclxuICBjb25zdHJ1Y3RvcihcclxuICAgIHByb3RlY3RlZCBwcm9maWxlU2VydmljZTogUHJvZmlsZVNlcnZpY2UsXHJcbiAgICBwcm90ZWN0ZWQgbWFuYWdlUHJvZmlsZVN0YXRlOiBNYW5hZ2VQcm9maWxlU3RhdGVTZXJ2aWNlLFxyXG4gICkge31cclxuXHJcbiAgbmdPbkluaXQoKSB7XHJcbiAgICB0aGlzLnByb2ZpbGVTZXJ2aWNlLmdldCgpLnN1YnNjcmliZShwcm9maWxlID0+IHtcclxuICAgICAgdGhpcy5tYW5hZ2VQcm9maWxlU3RhdGUuc2V0UHJvZmlsZShwcm9maWxlKTtcclxuICAgICAgaWYgKHByb2ZpbGUuaXNFeHRlcm5hbCkge1xyXG4gICAgICAgIHRoaXMuaGlkZUNoYW5nZVBhc3N3b3JkVGFiID0gdHJ1ZTtcclxuICAgICAgICB0aGlzLnNlbGVjdGVkVGFiID0gMTtcclxuICAgICAgfVxyXG4gICAgfSk7XHJcbiAgfVxyXG59XHJcbiIsIjxkaXYgaWQ9XCJBYnBDb250ZW50VG9vbGJhclwiPjwvZGl2PlxyXG5cclxuPGRpdiBjbGFzcz1cImNhcmQgYm9yZGVyLTAgc2hhZG93LXNtIG1pbi1oLTQwMFwiIFthYnBMb2FkaW5nXT1cIiEocHJvZmlsZSQgfCBhc3luYyk/LnVzZXJOYW1lXCI+XHJcbiAgPGRpdiBjbGFzcz1cImNhcmQtYm9keVwiPlxyXG4gICAgPGRpdiBjbGFzcz1cInJvd1wiPlxyXG4gICAgICA8ZGl2IGNsYXNzPVwiY29sLTEyIGNvbC1tZC0zXCI+XHJcbiAgICAgICAgPHVsIGNsYXNzPVwibmF2IGZsZXgtY29sdW1uIG5hdi1waWxsc1wiIGlkPVwibmF2LXRhYlwiIHJvbGU9XCJ0YWJsaXN0XCI+XHJcbiAgICAgICAgICA8bGlcclxuICAgICAgICAgICAgKm5nSWY9XCIhaGlkZUNoYW5nZVBhc3N3b3JkVGFiICYmIChwcm9maWxlJCB8IGFzeW5jKVwiXHJcbiAgICAgICAgICAgIGNsYXNzPVwibmF2LWl0ZW1cIlxyXG4gICAgICAgICAgICAoY2xpY2spPVwic2VsZWN0ZWRUYWIgPSAwXCJcclxuICAgICAgICAgID5cclxuICAgICAgICAgICAgPGFcclxuICAgICAgICAgICAgICBjbGFzcz1cIm5hdi1saW5rXCJcclxuICAgICAgICAgICAgICBbbmdDbGFzc109XCJ7IGFjdGl2ZTogc2VsZWN0ZWRUYWIgPT09IDAgfVwiXHJcbiAgICAgICAgICAgICAgcm9sZT1cInRhYlwiXHJcbiAgICAgICAgICAgICAgaHJlZj1cImphdmFzY3JpcHQ6dm9pZCgwKVwiXHJcbiAgICAgICAgICAgICAgPnt7ICdBYnBVaTo6Q2hhbmdlUGFzc3dvcmQnIHwgYWJwTG9jYWxpemF0aW9uIH19PC9hXHJcbiAgICAgICAgICAgID5cclxuICAgICAgICAgIDwvbGk+XHJcbiAgICAgICAgICA8bGkgY2xhc3M9XCJuYXYtaXRlbSBtYi0yXCIgKGNsaWNrKT1cInNlbGVjdGVkVGFiID0gMVwiPlxyXG4gICAgICAgICAgICA8YVxyXG4gICAgICAgICAgICAgIGNsYXNzPVwibmF2LWxpbmtcIlxyXG4gICAgICAgICAgICAgIFtuZ0NsYXNzXT1cInsgYWN0aXZlOiBzZWxlY3RlZFRhYiA9PT0gMSB9XCJcclxuICAgICAgICAgICAgICByb2xlPVwidGFiXCJcclxuICAgICAgICAgICAgICBocmVmPVwiamF2YXNjcmlwdDp2b2lkKDApXCJcclxuICAgICAgICAgICAgICA+e3sgJ0FicEFjY291bnQ6OlBlcnNvbmFsU2V0dGluZ3MnIHwgYWJwTG9jYWxpemF0aW9uIH19PC9hXHJcbiAgICAgICAgICAgID5cclxuICAgICAgICAgIDwvbGk+XHJcbiAgICAgICAgPC91bD5cclxuICAgICAgPC9kaXY+XHJcbiAgICAgIDxkaXYgKm5nSWY9XCJwcm9maWxlJCB8IGFzeW5jXCIgY2xhc3M9XCJjb2wtMTIgY29sLW1kLTlcIj5cclxuICAgICAgICA8ZGl2IGNsYXNzPVwidGFiLWNvbnRlbnRcIiAqbmdJZj1cInNlbGVjdGVkVGFiID09PSAwXCIgW0BmYWRlSW5dPlxyXG4gICAgICAgICAgPGRpdiBjbGFzcz1cInRhYi1wYW5lIGFjdGl2ZVwiIHJvbGU9XCJ0YWJwYW5lbFwiPlxyXG4gICAgICAgICAgICA8aDQ+XHJcbiAgICAgICAgICAgICAge3sgJ0FicElkZW50aXR5OjpDaGFuZ2VQYXNzd29yZCcgfCBhYnBMb2NhbGl6YXRpb24gfX1cclxuICAgICAgICAgICAgICA8aHIgLz5cclxuICAgICAgICAgICAgPC9oND5cclxuICAgICAgICAgICAgPGFicC1jaGFuZ2UtcGFzc3dvcmQtZm9ybVxyXG4gICAgICAgICAgICAgICphYnBSZXBsYWNlYWJsZVRlbXBsYXRlPVwie1xyXG4gICAgICAgICAgICAgICAgY29tcG9uZW50S2V5OiBjaGFuZ2VQYXNzd29yZEtleVxyXG4gICAgICAgICAgICAgIH1cIlxyXG4gICAgICAgICAgICA+PC9hYnAtY2hhbmdlLXBhc3N3b3JkLWZvcm0+XHJcbiAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICA8L2Rpdj5cclxuICAgICAgICA8ZGl2IGNsYXNzPVwidGFiLWNvbnRlbnRcIiAqbmdJZj1cInNlbGVjdGVkVGFiID09PSAxXCIgW0BmYWRlSW5dPlxyXG4gICAgICAgICAgPGRpdiBjbGFzcz1cInRhYi1wYW5lIGFjdGl2ZVwiIHJvbGU9XCJ0YWJwYW5lbFwiPlxyXG4gICAgICAgICAgICA8aDQ+XHJcbiAgICAgICAgICAgICAge3sgJ0FicElkZW50aXR5OjpQZXJzb25hbFNldHRpbmdzJyB8IGFicExvY2FsaXphdGlvbiB9fVxyXG4gICAgICAgICAgICAgIDxociAvPlxyXG4gICAgICAgICAgICA8L2g0PlxyXG4gICAgICAgICAgICA8YWJwLXBlcnNvbmFsLXNldHRpbmdzLWZvcm1cclxuICAgICAgICAgICAgICAqYWJwUmVwbGFjZWFibGVUZW1wbGF0ZT1cIntcclxuICAgICAgICAgICAgICAgIGNvbXBvbmVudEtleTogcGVyc29uYWxTZXR0aW5nc0tleVxyXG4gICAgICAgICAgICAgIH1cIlxyXG4gICAgICAgICAgICA+PC9hYnAtcGVyc29uYWwtc2V0dGluZ3MtZm9ybT5cclxuICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgIDwvZGl2PlxyXG4gICAgICA8L2Rpdj5cclxuICAgIDwvZGl2PlxyXG4gIDwvZGl2PlxyXG48L2Rpdj5cclxuIl19
1
+ import { ProfileService } from '@abp/ng.account.core/proxy';
2
+ import { fadeIn } from '@abp/ng.theme.shared';
3
+ import { transition, trigger, useAnimation } from '@angular/animations';
4
+ import { Component } from '@angular/core';
5
+ import { ManageProfileStateService } from '../../services/manage-profile.state.service';
6
+ import * as i0 from "@angular/core";
7
+ import * as i1 from "@abp/ng.account.core/proxy";
8
+ import * as i2 from "../../services/manage-profile.state.service";
9
+ import * as i3 from "../change-password/change-password.component";
10
+ import * as i4 from "../personal-settings/personal-settings.component";
11
+ import * as i5 from "@abp/ng.theme.shared";
12
+ import * as i6 from "@angular/common";
13
+ import * as i7 from "@abp/ng.core";
14
+ export class ManageProfileComponent {
15
+ constructor(profileService, manageProfileState) {
16
+ this.profileService = profileService;
17
+ this.manageProfileState = manageProfileState;
18
+ this.selectedTab = 0;
19
+ this.changePasswordKey = "Account.ChangePasswordComponent" /* ChangePassword */;
20
+ this.personalSettingsKey = "Account.PersonalSettingsComponent" /* PersonalSettings */;
21
+ this.profile$ = this.manageProfileState.getProfile$();
22
+ }
23
+ ngOnInit() {
24
+ this.profileService.get().subscribe(profile => {
25
+ this.manageProfileState.setProfile(profile);
26
+ if (profile.isExternal) {
27
+ this.hideChangePasswordTab = true;
28
+ this.selectedTab = 1;
29
+ }
30
+ });
31
+ }
32
+ }
33
+ ManageProfileComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "12.2.13", ngImport: i0, type: ManageProfileComponent, deps: [{ token: i1.ProfileService }, { token: i2.ManageProfileStateService }], target: i0.ɵɵFactoryTarget.Component });
34
+ ManageProfileComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "12.2.13", type: ManageProfileComponent, selector: "abp-manage-profile", ngImport: i0, template: "<div id=\"AbpContentToolbar\"></div>\n\n<div class=\"card border-0 shadow-sm min-h-400\" [abpLoading]=\"!(profile$ | async)?.userName\">\n <div class=\"card-body\">\n <div class=\"row\">\n <div class=\"col-12 col-md-3\">\n <ul class=\"nav flex-column nav-pills\" id=\"nav-tab\" role=\"tablist\">\n <li\n *ngIf=\"!hideChangePasswordTab && (profile$ | async)\"\n class=\"nav-item\"\n (click)=\"selectedTab = 0\"\n >\n <a\n class=\"nav-link\"\n [ngClass]=\"{ active: selectedTab === 0 }\"\n role=\"tab\"\n href=\"javascript:void(0)\"\n >{{ 'AbpUi::ChangePassword' | abpLocalization }}</a\n >\n </li>\n <li class=\"nav-item mb-2\" (click)=\"selectedTab = 1\">\n <a\n class=\"nav-link\"\n [ngClass]=\"{ active: selectedTab === 1 }\"\n role=\"tab\"\n href=\"javascript:void(0)\"\n >{{ 'AbpAccount::PersonalSettings' | abpLocalization }}</a\n >\n </li>\n </ul>\n </div>\n <div *ngIf=\"profile$ | async\" class=\"col-12 col-md-9\">\n <div class=\"tab-content\" *ngIf=\"selectedTab === 0\" [@fadeIn]>\n <div class=\"tab-pane active\" role=\"tabpanel\">\n <h4>\n {{ 'AbpIdentity::ChangePassword' | abpLocalization }}\n <hr />\n </h4>\n <abp-change-password-form\n *abpReplaceableTemplate=\"{\n componentKey: changePasswordKey\n }\"\n ></abp-change-password-form>\n </div>\n </div>\n <div class=\"tab-content\" *ngIf=\"selectedTab === 1\" [@fadeIn]>\n <div class=\"tab-pane active\" role=\"tabpanel\">\n <h4>\n {{ 'AbpIdentity::PersonalSettings' | abpLocalization }}\n <hr />\n </h4>\n <abp-personal-settings-form\n *abpReplaceableTemplate=\"{\n componentKey: personalSettingsKey\n }\"\n ></abp-personal-settings-form>\n </div>\n </div>\n </div>\n </div>\n </div>\n</div>\n", styles: ["\n .min-h-400 {\n min-height: 400px;\n }\n "], components: [{ type: i3.ChangePasswordComponent, selector: "abp-change-password-form", exportAs: ["abpChangePasswordForm"] }, { type: i4.PersonalSettingsComponent, selector: "abp-personal-settings-form", exportAs: ["abpPersonalSettingsForm"] }], directives: [{ type: i5.LoadingDirective, selector: "[abpLoading]", inputs: ["abpLoading", "abpLoadingTargetElement", "abpLoadingDelay"] }, { type: i6.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { type: i6.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { type: i7.ReplaceableTemplateDirective, selector: "[abpReplaceableTemplate]", inputs: ["abpReplaceableTemplate"] }], pipes: { "async": i6.AsyncPipe, "abpLocalization": i7.LocalizationPipe }, animations: [trigger('fadeIn', [transition(':enter', useAnimation(fadeIn))])] });
35
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.13", ngImport: i0, type: ManageProfileComponent, decorators: [{
36
+ type: Component,
37
+ args: [{
38
+ selector: 'abp-manage-profile',
39
+ templateUrl: './manage-profile.component.html',
40
+ animations: [trigger('fadeIn', [transition(':enter', useAnimation(fadeIn))])],
41
+ styles: [
42
+ `
43
+ .min-h-400 {
44
+ min-height: 400px;
45
+ }
46
+ `,
47
+ ],
48
+ }]
49
+ }], ctorParameters: function () { return [{ type: i1.ProfileService }, { type: i2.ManageProfileStateService }]; } });
50
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibWFuYWdlLXByb2ZpbGUuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vcGFja2FnZXMvYWNjb3VudC9zcmMvbGliL2NvbXBvbmVudHMvbWFuYWdlLXByb2ZpbGUvbWFuYWdlLXByb2ZpbGUuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vLi4vcGFja2FnZXMvYWNjb3VudC9zcmMvbGliL2NvbXBvbmVudHMvbWFuYWdlLXByb2ZpbGUvbWFuYWdlLXByb2ZpbGUuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLGNBQWMsRUFBRSxNQUFNLDRCQUE0QixDQUFDO0FBQzVELE9BQU8sRUFBRSxNQUFNLEVBQUUsTUFBTSxzQkFBc0IsQ0FBQztBQUM5QyxPQUFPLEVBQUUsVUFBVSxFQUFFLE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSxxQkFBcUIsQ0FBQztBQUN4RSxPQUFPLEVBQUUsU0FBUyxFQUFVLE1BQU0sZUFBZSxDQUFDO0FBRWxELE9BQU8sRUFBRSx5QkFBeUIsRUFBRSxNQUFNLDZDQUE2QyxDQUFDOzs7Ozs7Ozs7QUFjeEYsTUFBTSxPQUFPLHNCQUFzQjtJQVdqQyxZQUNZLGNBQThCLEVBQzlCLGtCQUE2QztRQUQ3QyxtQkFBYyxHQUFkLGNBQWMsQ0FBZ0I7UUFDOUIsdUJBQWtCLEdBQWxCLGtCQUFrQixDQUEyQjtRQVp6RCxnQkFBVyxHQUFHLENBQUMsQ0FBQztRQUVoQixzQkFBaUIsMERBQXFDO1FBRXRELHdCQUFtQiw4REFBdUM7UUFFMUQsYUFBUSxHQUFHLElBQUksQ0FBQyxrQkFBa0IsQ0FBQyxXQUFXLEVBQUUsQ0FBQztJQU85QyxDQUFDO0lBRUosUUFBUTtRQUNOLElBQUksQ0FBQyxjQUFjLENBQUMsR0FBRyxFQUFFLENBQUMsU0FBUyxDQUFDLE9BQU8sQ0FBQyxFQUFFO1lBQzVDLElBQUksQ0FBQyxrQkFBa0IsQ0FBQyxVQUFVLENBQUMsT0FBTyxDQUFDLENBQUM7WUFDNUMsSUFBSSxPQUFPLENBQUMsVUFBVSxFQUFFO2dCQUN0QixJQUFJLENBQUMscUJBQXFCLEdBQUcsSUFBSSxDQUFDO2dCQUNsQyxJQUFJLENBQUMsV0FBVyxHQUFHLENBQUMsQ0FBQzthQUN0QjtRQUNILENBQUMsQ0FBQyxDQUFDO0lBQ0wsQ0FBQzs7b0hBeEJVLHNCQUFzQjt3R0FBdEIsc0JBQXNCLDBEQ25CbkMsb3NFQThEQSx5ekJEcERjLENBQUMsT0FBTyxDQUFDLFFBQVEsRUFBRSxDQUFDLFVBQVUsQ0FBQyxRQUFRLEVBQUUsWUFBWSxDQUFDLE1BQU0sQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDOzRGQVNsRSxzQkFBc0I7a0JBWmxDLFNBQVM7bUJBQUM7b0JBQ1QsUUFBUSxFQUFFLG9CQUFvQjtvQkFDOUIsV0FBVyxFQUFFLGlDQUFpQztvQkFDOUMsVUFBVSxFQUFFLENBQUMsT0FBTyxDQUFDLFFBQVEsRUFBRSxDQUFDLFVBQVUsQ0FBQyxRQUFRLEVBQUUsWUFBWSxDQUFDLE1BQU0sQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDO29CQUM3RSxNQUFNLEVBQUU7d0JBQ047Ozs7S0FJQztxQkFDRjtpQkFDRiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IFByb2ZpbGVTZXJ2aWNlIH0gZnJvbSAnQGFicC9uZy5hY2NvdW50LmNvcmUvcHJveHknO1xuaW1wb3J0IHsgZmFkZUluIH0gZnJvbSAnQGFicC9uZy50aGVtZS5zaGFyZWQnO1xuaW1wb3J0IHsgdHJhbnNpdGlvbiwgdHJpZ2dlciwgdXNlQW5pbWF0aW9uIH0gZnJvbSAnQGFuZ3VsYXIvYW5pbWF0aW9ucyc7XG5pbXBvcnQgeyBDb21wb25lbnQsIE9uSW5pdCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgZUFjY291bnRDb21wb25lbnRzIH0gZnJvbSAnLi4vLi4vZW51bXMvY29tcG9uZW50cyc7XG5pbXBvcnQgeyBNYW5hZ2VQcm9maWxlU3RhdGVTZXJ2aWNlIH0gZnJvbSAnLi4vLi4vc2VydmljZXMvbWFuYWdlLXByb2ZpbGUuc3RhdGUuc2VydmljZSc7XG5cbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ2FicC1tYW5hZ2UtcHJvZmlsZScsXG4gIHRlbXBsYXRlVXJsOiAnLi9tYW5hZ2UtcHJvZmlsZS5jb21wb25lbnQuaHRtbCcsXG4gIGFuaW1hdGlvbnM6IFt0cmlnZ2VyKCdmYWRlSW4nLCBbdHJhbnNpdGlvbignOmVudGVyJywgdXNlQW5pbWF0aW9uKGZhZGVJbikpXSldLFxuICBzdHlsZXM6IFtcbiAgICBgXG4gICAgICAubWluLWgtNDAwIHtcbiAgICAgICAgbWluLWhlaWdodDogNDAwcHg7XG4gICAgICB9XG4gICAgYCxcbiAgXSxcbn0pXG5leHBvcnQgY2xhc3MgTWFuYWdlUHJvZmlsZUNvbXBvbmVudCBpbXBsZW1lbnRzIE9uSW5pdCB7XG4gIHNlbGVjdGVkVGFiID0gMDtcblxuICBjaGFuZ2VQYXNzd29yZEtleSA9IGVBY2NvdW50Q29tcG9uZW50cy5DaGFuZ2VQYXNzd29yZDtcblxuICBwZXJzb25hbFNldHRpbmdzS2V5ID0gZUFjY291bnRDb21wb25lbnRzLlBlcnNvbmFsU2V0dGluZ3M7XG5cbiAgcHJvZmlsZSQgPSB0aGlzLm1hbmFnZVByb2ZpbGVTdGF0ZS5nZXRQcm9maWxlJCgpO1xuXG4gIGhpZGVDaGFuZ2VQYXNzd29yZFRhYjogYm9vbGVhbjtcblxuICBjb25zdHJ1Y3RvcihcbiAgICBwcm90ZWN0ZWQgcHJvZmlsZVNlcnZpY2U6IFByb2ZpbGVTZXJ2aWNlLFxuICAgIHByb3RlY3RlZCBtYW5hZ2VQcm9maWxlU3RhdGU6IE1hbmFnZVByb2ZpbGVTdGF0ZVNlcnZpY2UsXG4gICkge31cblxuICBuZ09uSW5pdCgpIHtcbiAgICB0aGlzLnByb2ZpbGVTZXJ2aWNlLmdldCgpLnN1YnNjcmliZShwcm9maWxlID0+IHtcbiAgICAgIHRoaXMubWFuYWdlUHJvZmlsZVN0YXRlLnNldFByb2ZpbGUocHJvZmlsZSk7XG4gICAgICBpZiAocHJvZmlsZS5pc0V4dGVybmFsKSB7XG4gICAgICAgIHRoaXMuaGlkZUNoYW5nZVBhc3N3b3JkVGFiID0gdHJ1ZTtcbiAgICAgICAgdGhpcy5zZWxlY3RlZFRhYiA9IDE7XG4gICAgICB9XG4gICAgfSk7XG4gIH1cbn1cbiIsIjxkaXYgaWQ9XCJBYnBDb250ZW50VG9vbGJhclwiPjwvZGl2PlxuXG48ZGl2IGNsYXNzPVwiY2FyZCBib3JkZXItMCBzaGFkb3ctc20gbWluLWgtNDAwXCIgW2FicExvYWRpbmddPVwiIShwcm9maWxlJCB8IGFzeW5jKT8udXNlck5hbWVcIj5cbiAgPGRpdiBjbGFzcz1cImNhcmQtYm9keVwiPlxuICAgIDxkaXYgY2xhc3M9XCJyb3dcIj5cbiAgICAgIDxkaXYgY2xhc3M9XCJjb2wtMTIgY29sLW1kLTNcIj5cbiAgICAgICAgPHVsIGNsYXNzPVwibmF2IGZsZXgtY29sdW1uIG5hdi1waWxsc1wiIGlkPVwibmF2LXRhYlwiIHJvbGU9XCJ0YWJsaXN0XCI+XG4gICAgICAgICAgPGxpXG4gICAgICAgICAgICAqbmdJZj1cIiFoaWRlQ2hhbmdlUGFzc3dvcmRUYWIgJiYgKHByb2ZpbGUkIHwgYXN5bmMpXCJcbiAgICAgICAgICAgIGNsYXNzPVwibmF2LWl0ZW1cIlxuICAgICAgICAgICAgKGNsaWNrKT1cInNlbGVjdGVkVGFiID0gMFwiXG4gICAgICAgICAgPlxuICAgICAgICAgICAgPGFcbiAgICAgICAgICAgICAgY2xhc3M9XCJuYXYtbGlua1wiXG4gICAgICAgICAgICAgIFtuZ0NsYXNzXT1cInsgYWN0aXZlOiBzZWxlY3RlZFRhYiA9PT0gMCB9XCJcbiAgICAgICAgICAgICAgcm9sZT1cInRhYlwiXG4gICAgICAgICAgICAgIGhyZWY9XCJqYXZhc2NyaXB0OnZvaWQoMClcIlxuICAgICAgICAgICAgICA+e3sgJ0FicFVpOjpDaGFuZ2VQYXNzd29yZCcgfCBhYnBMb2NhbGl6YXRpb24gfX08L2FcbiAgICAgICAgICAgID5cbiAgICAgICAgICA8L2xpPlxuICAgICAgICAgIDxsaSBjbGFzcz1cIm5hdi1pdGVtIG1iLTJcIiAoY2xpY2spPVwic2VsZWN0ZWRUYWIgPSAxXCI+XG4gICAgICAgICAgICA8YVxuICAgICAgICAgICAgICBjbGFzcz1cIm5hdi1saW5rXCJcbiAgICAgICAgICAgICAgW25nQ2xhc3NdPVwieyBhY3RpdmU6IHNlbGVjdGVkVGFiID09PSAxIH1cIlxuICAgICAgICAgICAgICByb2xlPVwidGFiXCJcbiAgICAgICAgICAgICAgaHJlZj1cImphdmFzY3JpcHQ6dm9pZCgwKVwiXG4gICAgICAgICAgICAgID57eyAnQWJwQWNjb3VudDo6UGVyc29uYWxTZXR0aW5ncycgfCBhYnBMb2NhbGl6YXRpb24gfX08L2FcbiAgICAgICAgICAgID5cbiAgICAgICAgICA8L2xpPlxuICAgICAgICA8L3VsPlxuICAgICAgPC9kaXY+XG4gICAgICA8ZGl2ICpuZ0lmPVwicHJvZmlsZSQgfCBhc3luY1wiIGNsYXNzPVwiY29sLTEyIGNvbC1tZC05XCI+XG4gICAgICAgIDxkaXYgY2xhc3M9XCJ0YWItY29udGVudFwiICpuZ0lmPVwic2VsZWN0ZWRUYWIgPT09IDBcIiBbQGZhZGVJbl0+XG4gICAgICAgICAgPGRpdiBjbGFzcz1cInRhYi1wYW5lIGFjdGl2ZVwiIHJvbGU9XCJ0YWJwYW5lbFwiPlxuICAgICAgICAgICAgPGg0PlxuICAgICAgICAgICAgICB7eyAnQWJwSWRlbnRpdHk6OkNoYW5nZVBhc3N3b3JkJyB8IGFicExvY2FsaXphdGlvbiB9fVxuICAgICAgICAgICAgICA8aHIgLz5cbiAgICAgICAgICAgIDwvaDQ+XG4gICAgICAgICAgICA8YWJwLWNoYW5nZS1wYXNzd29yZC1mb3JtXG4gICAgICAgICAgICAgICphYnBSZXBsYWNlYWJsZVRlbXBsYXRlPVwie1xuICAgICAgICAgICAgICAgIGNvbXBvbmVudEtleTogY2hhbmdlUGFzc3dvcmRLZXlcbiAgICAgICAgICAgICAgfVwiXG4gICAgICAgICAgICA+PC9hYnAtY2hhbmdlLXBhc3N3b3JkLWZvcm0+XG4gICAgICAgICAgPC9kaXY+XG4gICAgICAgIDwvZGl2PlxuICAgICAgICA8ZGl2IGNsYXNzPVwidGFiLWNvbnRlbnRcIiAqbmdJZj1cInNlbGVjdGVkVGFiID09PSAxXCIgW0BmYWRlSW5dPlxuICAgICAgICAgIDxkaXYgY2xhc3M9XCJ0YWItcGFuZSBhY3RpdmVcIiByb2xlPVwidGFicGFuZWxcIj5cbiAgICAgICAgICAgIDxoND5cbiAgICAgICAgICAgICAge3sgJ0FicElkZW50aXR5OjpQZXJzb25hbFNldHRpbmdzJyB8IGFicExvY2FsaXphdGlvbiB9fVxuICAgICAgICAgICAgICA8aHIgLz5cbiAgICAgICAgICAgIDwvaDQ+XG4gICAgICAgICAgICA8YWJwLXBlcnNvbmFsLXNldHRpbmdzLWZvcm1cbiAgICAgICAgICAgICAgKmFicFJlcGxhY2VhYmxlVGVtcGxhdGU9XCJ7XG4gICAgICAgICAgICAgICAgY29tcG9uZW50S2V5OiBwZXJzb25hbFNldHRpbmdzS2V5XG4gICAgICAgICAgICAgIH1cIlxuICAgICAgICAgICAgPjwvYWJwLXBlcnNvbmFsLXNldHRpbmdzLWZvcm0+XG4gICAgICAgICAgPC9kaXY+XG4gICAgICAgIDwvZGl2PlxuICAgICAgPC9kaXY+XG4gICAgPC9kaXY+XG4gIDwvZGl2PlxuPC9kaXY+XG4iXX0=
@@ -1,59 +1,59 @@
1
- import { ProfileService } from '@abp/ng.account.core/proxy';
2
- import { ToasterService } from '@abp/ng.theme.shared';
3
- import { Component } from '@angular/core';
4
- import { FormBuilder, Validators } from '@angular/forms';
5
- import { finalize } from 'rxjs/operators';
6
- import { ManageProfileStateService } from '../../services/manage-profile.state.service';
7
- import * as i0 from "@angular/core";
8
- import * as i1 from "@angular/forms";
9
- import * as i2 from "@abp/ng.theme.shared";
10
- import * as i3 from "@abp/ng.account.core/proxy";
11
- import * as i4 from "../../services/manage-profile.state.service";
12
- import * as i5 from "@angular/common";
13
- import * as i6 from "@abp/ng.core";
14
- import * as i7 from "@ngx-validate/core";
15
- const { maxLength, required, email } = Validators;
16
- export class PersonalSettingsComponent {
17
- constructor(fb, toasterService, profileService, manageProfileState) {
18
- this.fb = fb;
19
- this.toasterService = toasterService;
20
- this.profileService = profileService;
21
- this.manageProfileState = manageProfileState;
22
- }
23
- ngOnInit() {
24
- this.buildForm();
25
- }
26
- buildForm() {
27
- const profile = this.manageProfileState.getProfile();
28
- this.form = this.fb.group({
29
- userName: [profile.userName, [required, maxLength(256)]],
30
- email: [profile.email, [required, email, maxLength(256)]],
31
- name: [profile.name || '', [maxLength(64)]],
32
- surname: [profile.surname || '', [maxLength(64)]],
33
- phoneNumber: [profile.phoneNumber || '', [maxLength(16)]],
34
- });
35
- }
36
- submit() {
37
- if (this.form.invalid)
38
- return;
39
- this.inProgress = true;
40
- this.profileService
41
- .update(this.form.value)
42
- .pipe(finalize(() => (this.inProgress = false)))
43
- .subscribe(profile => {
44
- this.manageProfileState.setProfile(profile);
45
- this.toasterService.success('AbpAccount::PersonalSettingsSaved', 'Success', { life: 5000 });
46
- });
47
- }
48
- }
49
- PersonalSettingsComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "12.2.13", ngImport: i0, type: PersonalSettingsComponent, deps: [{ token: i1.FormBuilder }, { token: i2.ToasterService }, { token: i3.ProfileService }, { token: i4.ManageProfileStateService }], target: i0.ɵɵFactoryTarget.Component });
50
- PersonalSettingsComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "12.2.13", type: PersonalSettingsComponent, selector: "abp-personal-settings-form", exportAs: ["abpPersonalSettingsForm"], ngImport: i0, template: "<form validateOnSubmit *ngIf=\"form\" [formGroup]=\"form\" (ngSubmit)=\"submit()\">\r\n <div class=\"mb-3 form-group\">\r\n <label for=\"username\" class=\"form-label\">{{\r\n 'AbpIdentity::DisplayName:UserName' | abpLocalization\r\n }}</label\r\n ><span> * </span\r\n ><input\r\n type=\"text\"\r\n id=\"username\"\r\n class=\"form-control\"\r\n formControlName=\"userName\"\r\n autofocus\r\n (keydown.space)=\"$event.preventDefault()\"\r\n />\r\n </div>\r\n <div class=\"row\">\r\n <div class=\"col col-md-6\">\r\n <div class=\"mb-3 form-group\">\r\n <label for=\"name\" class=\"form-label\">{{\r\n 'AbpIdentity::DisplayName:Name' | abpLocalization\r\n }}</label\r\n ><input type=\"text\" id=\"name\" class=\"form-control\" formControlName=\"name\" />\r\n </div>\r\n </div>\r\n <div class=\"col col-md-6\">\r\n <div class=\"mb-3 form-group\">\r\n <label for=\"surname\" class=\"form-label\">{{\r\n 'AbpIdentity::DisplayName:Surname' | abpLocalization\r\n }}</label\r\n ><input type=\"text\" id=\"surname\" class=\"form-control\" formControlName=\"surname\" />\r\n </div>\r\n </div>\r\n </div>\r\n <div class=\"mb-3 form-group\">\r\n <label for=\"email-address\" class=\"form-label\">{{\r\n 'AbpIdentity::DisplayName:Email' | abpLocalization\r\n }}</label\r\n ><span> * </span\r\n ><input type=\"text\" id=\"email-address\" class=\"form-control\" formControlName=\"email\" />\r\n </div>\r\n <div class=\"mb-3 form-group\">\r\n <label for=\"phone-number\" class=\"form-label\">{{\r\n 'AbpIdentity::DisplayName:PhoneNumber' | abpLocalization\r\n }}</label\r\n ><input type=\"text\" id=\"phone-number\" class=\"form-control\" formControlName=\"phoneNumber\" />\r\n </div>\r\n <abp-button\r\n buttonType=\"submit\"\r\n iconClass=\"fa fa-check\"\r\n buttonClass=\"btn btn-primary color-white\"\r\n [loading]=\"inProgress\"\r\n [disabled]=\"form?.invalid\"\r\n >\r\n {{ 'AbpIdentity::Save' | abpLocalization }}</abp-button\r\n >\r\n</form>\r\n", components: [{ type: i2.ButtonComponent, selector: "abp-button", inputs: ["buttonId", "buttonClass", "buttonType", "iconClass", "loading", "disabled", "attributes"], outputs: ["click", "focus", "blur", "abpClick", "abpFocus", "abpBlur"] }], directives: [{ type: i5.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { type: i1.ɵNgNoValidate, selector: "form:not([ngNoForm]):not([ngNativeValidate])" }, { type: i1.NgControlStatusGroup, selector: "[formGroupName],[formArrayName],[ngModelGroup],[formGroup],form:not([ngNoForm]),[ngForm]" }, { type: i6.FormSubmitDirective, selector: "form[ngSubmit][formGroup]", inputs: ["debounce", "notValidateOnSubmit"], outputs: ["ngSubmit"] }, { type: i1.FormGroupDirective, selector: "[formGroup]", inputs: ["formGroup"], outputs: ["ngSubmit"], exportAs: ["ngForm"] }, { type: i7.ValidationGroupDirective, selector: "[formGroup],[formGroupName]", exportAs: ["validationGroup"] }, { type: i1.DefaultValueAccessor, selector: "input:not([type=checkbox])[formControlName],textarea[formControlName],input:not([type=checkbox])[formControl],textarea[formControl],input:not([type=checkbox])[ngModel],textarea[ngModel],[ngDefaultControl]" }, { type: i1.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { type: i1.FormControlName, selector: "[formControlName]", inputs: ["disabled", "formControlName", "ngModel"], outputs: ["ngModelChange"] }, { type: i7.ValidationDirective, selector: "[formControl],[formControlName]", exportAs: ["validationDirective"] }, { type: i6.AutofocusDirective, selector: "[autofocus]", inputs: ["autofocus"] }], pipes: { "abpLocalization": i6.LocalizationPipe } });
51
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.13", ngImport: i0, type: PersonalSettingsComponent, decorators: [{
52
- type: Component,
53
- args: [{
54
- selector: 'abp-personal-settings-form',
55
- templateUrl: './personal-settings.component.html',
56
- exportAs: 'abpPersonalSettingsForm',
57
- }]
58
- }], ctorParameters: function () { return [{ type: i1.FormBuilder }, { type: i2.ToasterService }, { type: i3.ProfileService }, { type: i4.ManageProfileStateService }]; } });
59
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicGVyc29uYWwtc2V0dGluZ3MuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vcGFja2FnZXMvYWNjb3VudC9zcmMvbGliL2NvbXBvbmVudHMvcGVyc29uYWwtc2V0dGluZ3MvcGVyc29uYWwtc2V0dGluZ3MuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vLi4vcGFja2FnZXMvYWNjb3VudC9zcmMvbGliL2NvbXBvbmVudHMvcGVyc29uYWwtc2V0dGluZ3MvcGVyc29uYWwtc2V0dGluZ3MuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLGNBQWMsRUFBRSxNQUFNLDRCQUE0QixDQUFDO0FBQzVELE9BQU8sRUFBRSxjQUFjLEVBQUUsTUFBTSxzQkFBc0IsQ0FBQztBQUN0RCxPQUFPLEVBQUUsU0FBUyxFQUFVLE1BQU0sZUFBZSxDQUFDO0FBQ2xELE9BQU8sRUFBRSxXQUFXLEVBQWEsVUFBVSxFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFDcEUsT0FBTyxFQUFFLFFBQVEsRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBRTFDLE9BQU8sRUFBRSx5QkFBeUIsRUFBRSxNQUFNLDZDQUE2QyxDQUFDOzs7Ozs7Ozs7QUFFeEYsTUFBTSxFQUFFLFNBQVMsRUFBRSxRQUFRLEVBQUUsS0FBSyxFQUFFLEdBQUcsVUFBVSxDQUFDO0FBT2xELE1BQU0sT0FBTyx5QkFBeUI7SUFVcEMsWUFDVSxFQUFlLEVBQ2YsY0FBOEIsRUFDOUIsY0FBOEIsRUFDOUIsa0JBQTZDO1FBSDdDLE9BQUUsR0FBRixFQUFFLENBQWE7UUFDZixtQkFBYyxHQUFkLGNBQWMsQ0FBZ0I7UUFDOUIsbUJBQWMsR0FBZCxjQUFjLENBQWdCO1FBQzlCLHVCQUFrQixHQUFsQixrQkFBa0IsQ0FBMkI7SUFDcEQsQ0FBQztJQUVKLFFBQVE7UUFDTixJQUFJLENBQUMsU0FBUyxFQUFFLENBQUM7SUFDbkIsQ0FBQztJQUVELFNBQVM7UUFDUCxNQUFNLE9BQU8sR0FBRyxJQUFJLENBQUMsa0JBQWtCLENBQUMsVUFBVSxFQUFFLENBQUM7UUFDckQsSUFBSSxDQUFDLElBQUksR0FBRyxJQUFJLENBQUMsRUFBRSxDQUFDLEtBQUssQ0FBQztZQUN4QixRQUFRLEVBQUUsQ0FBQyxPQUFPLENBQUMsUUFBUSxFQUFFLENBQUMsUUFBUSxFQUFFLFNBQVMsQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDO1lBQ3hELEtBQUssRUFBRSxDQUFDLE9BQU8sQ0FBQyxLQUFLLEVBQUUsQ0FBQyxRQUFRLEVBQUUsS0FBSyxFQUFFLFNBQVMsQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDO1lBQ3pELElBQUksRUFBRSxDQUFDLE9BQU8sQ0FBQyxJQUFJLElBQUksRUFBRSxFQUFFLENBQUMsU0FBUyxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUM7WUFDM0MsT0FBTyxFQUFFLENBQUMsT0FBTyxDQUFDLE9BQU8sSUFBSSxFQUFFLEVBQUUsQ0FBQyxTQUFTLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQztZQUNqRCxXQUFXLEVBQUUsQ0FBQyxPQUFPLENBQUMsV0FBVyxJQUFJLEVBQUUsRUFBRSxDQUFDLFNBQVMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDO1NBQzFELENBQUMsQ0FBQztJQUNMLENBQUM7SUFFRCxNQUFNO1FBQ0osSUFBSSxJQUFJLENBQUMsSUFBSSxDQUFDLE9BQU87WUFBRSxPQUFPO1FBQzlCLElBQUksQ0FBQyxVQUFVLEdBQUcsSUFBSSxDQUFDO1FBQ3ZCLElBQUksQ0FBQyxjQUFjO2FBQ2hCLE1BQU0sQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQzthQUN2QixJQUFJLENBQUMsUUFBUSxDQUFDLEdBQUcsRUFBRSxDQUFDLENBQUMsSUFBSSxDQUFDLFVBQVUsR0FBRyxLQUFLLENBQUMsQ0FBQyxDQUFDO2FBQy9DLFNBQVMsQ0FBQyxPQUFPLENBQUMsRUFBRTtZQUNuQixJQUFJLENBQUMsa0JBQWtCLENBQUMsVUFBVSxDQUFDLE9BQU8sQ0FBQyxDQUFDO1lBQzVDLElBQUksQ0FBQyxjQUFjLENBQUMsT0FBTyxDQUFDLG1DQUFtQyxFQUFFLFNBQVMsRUFBRSxFQUFFLElBQUksRUFBRSxJQUFJLEVBQUUsQ0FBQyxDQUFDO1FBQzlGLENBQUMsQ0FBQyxDQUFDO0lBQ1AsQ0FBQzs7dUhBMUNVLHlCQUF5QjsyR0FBekIseUJBQXlCLHlHQ2Z0Qyw2bEVBd0RBOzRGRHpDYSx5QkFBeUI7a0JBTHJDLFNBQVM7bUJBQUM7b0JBQ1QsUUFBUSxFQUFFLDRCQUE0QjtvQkFDdEMsV0FBVyxFQUFFLG9DQUFvQztvQkFDakQsUUFBUSxFQUFFLHlCQUF5QjtpQkFDcEMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBQcm9maWxlU2VydmljZSB9IGZyb20gJ0BhYnAvbmcuYWNjb3VudC5jb3JlL3Byb3h5JztcclxuaW1wb3J0IHsgVG9hc3RlclNlcnZpY2UgfSBmcm9tICdAYWJwL25nLnRoZW1lLnNoYXJlZCc7XHJcbmltcG9ydCB7IENvbXBvbmVudCwgT25Jbml0IH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XHJcbmltcG9ydCB7IEZvcm1CdWlsZGVyLCBGb3JtR3JvdXAsIFZhbGlkYXRvcnMgfSBmcm9tICdAYW5ndWxhci9mb3Jtcyc7XHJcbmltcG9ydCB7IGZpbmFsaXplIH0gZnJvbSAncnhqcy9vcGVyYXRvcnMnO1xyXG5pbXBvcnQgeyBBY2NvdW50IH0gZnJvbSAnLi4vLi4vbW9kZWxzL2FjY291bnQnO1xyXG5pbXBvcnQgeyBNYW5hZ2VQcm9maWxlU3RhdGVTZXJ2aWNlIH0gZnJvbSAnLi4vLi4vc2VydmljZXMvbWFuYWdlLXByb2ZpbGUuc3RhdGUuc2VydmljZSc7XHJcblxyXG5jb25zdCB7IG1heExlbmd0aCwgcmVxdWlyZWQsIGVtYWlsIH0gPSBWYWxpZGF0b3JzO1xyXG5cclxuQENvbXBvbmVudCh7XHJcbiAgc2VsZWN0b3I6ICdhYnAtcGVyc29uYWwtc2V0dGluZ3MtZm9ybScsXHJcbiAgdGVtcGxhdGVVcmw6ICcuL3BlcnNvbmFsLXNldHRpbmdzLmNvbXBvbmVudC5odG1sJyxcclxuICBleHBvcnRBczogJ2FicFBlcnNvbmFsU2V0dGluZ3NGb3JtJyxcclxufSlcclxuZXhwb3J0IGNsYXNzIFBlcnNvbmFsU2V0dGluZ3NDb21wb25lbnRcclxuICBpbXBsZW1lbnRzXHJcbiAgICBPbkluaXQsXHJcbiAgICBBY2NvdW50LlBlcnNvbmFsU2V0dGluZ3NDb21wb25lbnRJbnB1dHMsXHJcbiAgICBBY2NvdW50LlBlcnNvbmFsU2V0dGluZ3NDb21wb25lbnRPdXRwdXRzXHJcbntcclxuICBmb3JtOiBGb3JtR3JvdXA7XHJcblxyXG4gIGluUHJvZ3Jlc3M6IGJvb2xlYW47XHJcblxyXG4gIGNvbnN0cnVjdG9yKFxyXG4gICAgcHJpdmF0ZSBmYjogRm9ybUJ1aWxkZXIsXHJcbiAgICBwcml2YXRlIHRvYXN0ZXJTZXJ2aWNlOiBUb2FzdGVyU2VydmljZSxcclxuICAgIHByaXZhdGUgcHJvZmlsZVNlcnZpY2U6IFByb2ZpbGVTZXJ2aWNlLFxyXG4gICAgcHJpdmF0ZSBtYW5hZ2VQcm9maWxlU3RhdGU6IE1hbmFnZVByb2ZpbGVTdGF0ZVNlcnZpY2UsXHJcbiAgKSB7fVxyXG5cclxuICBuZ09uSW5pdCgpIHtcclxuICAgIHRoaXMuYnVpbGRGb3JtKCk7XHJcbiAgfVxyXG5cclxuICBidWlsZEZvcm0oKSB7XHJcbiAgICBjb25zdCBwcm9maWxlID0gdGhpcy5tYW5hZ2VQcm9maWxlU3RhdGUuZ2V0UHJvZmlsZSgpO1xyXG4gICAgdGhpcy5mb3JtID0gdGhpcy5mYi5ncm91cCh7XHJcbiAgICAgIHVzZXJOYW1lOiBbcHJvZmlsZS51c2VyTmFtZSwgW3JlcXVpcmVkLCBtYXhMZW5ndGgoMjU2KV1dLFxyXG4gICAgICBlbWFpbDogW3Byb2ZpbGUuZW1haWwsIFtyZXF1aXJlZCwgZW1haWwsIG1heExlbmd0aCgyNTYpXV0sXHJcbiAgICAgIG5hbWU6IFtwcm9maWxlLm5hbWUgfHwgJycsIFttYXhMZW5ndGgoNjQpXV0sXHJcbiAgICAgIHN1cm5hbWU6IFtwcm9maWxlLnN1cm5hbWUgfHwgJycsIFttYXhMZW5ndGgoNjQpXV0sXHJcbiAgICAgIHBob25lTnVtYmVyOiBbcHJvZmlsZS5waG9uZU51bWJlciB8fCAnJywgW21heExlbmd0aCgxNildXSxcclxuICAgIH0pO1xyXG4gIH1cclxuXHJcbiAgc3VibWl0KCkge1xyXG4gICAgaWYgKHRoaXMuZm9ybS5pbnZhbGlkKSByZXR1cm47XHJcbiAgICB0aGlzLmluUHJvZ3Jlc3MgPSB0cnVlO1xyXG4gICAgdGhpcy5wcm9maWxlU2VydmljZVxyXG4gICAgICAudXBkYXRlKHRoaXMuZm9ybS52YWx1ZSlcclxuICAgICAgLnBpcGUoZmluYWxpemUoKCkgPT4gKHRoaXMuaW5Qcm9ncmVzcyA9IGZhbHNlKSkpXHJcbiAgICAgIC5zdWJzY3JpYmUocHJvZmlsZSA9PiB7XHJcbiAgICAgICAgdGhpcy5tYW5hZ2VQcm9maWxlU3RhdGUuc2V0UHJvZmlsZShwcm9maWxlKTtcclxuICAgICAgICB0aGlzLnRvYXN0ZXJTZXJ2aWNlLnN1Y2Nlc3MoJ0FicEFjY291bnQ6OlBlcnNvbmFsU2V0dGluZ3NTYXZlZCcsICdTdWNjZXNzJywgeyBsaWZlOiA1MDAwIH0pO1xyXG4gICAgICB9KTtcclxuICB9XHJcbn1cclxuIiwiPGZvcm0gdmFsaWRhdGVPblN1Ym1pdCAqbmdJZj1cImZvcm1cIiBbZm9ybUdyb3VwXT1cImZvcm1cIiAobmdTdWJtaXQpPVwic3VibWl0KClcIj5cclxuICA8ZGl2IGNsYXNzPVwibWItMyBmb3JtLWdyb3VwXCI+XHJcbiAgICA8bGFiZWwgZm9yPVwidXNlcm5hbWVcIiBjbGFzcz1cImZvcm0tbGFiZWxcIj57e1xyXG4gICAgICAnQWJwSWRlbnRpdHk6OkRpc3BsYXlOYW1lOlVzZXJOYW1lJyB8IGFicExvY2FsaXphdGlvblxyXG4gICAgfX08L2xhYmVsXHJcbiAgICA+PHNwYW4+ICogPC9zcGFuXHJcbiAgICA+PGlucHV0XHJcbiAgICAgIHR5cGU9XCJ0ZXh0XCJcclxuICAgICAgaWQ9XCJ1c2VybmFtZVwiXHJcbiAgICAgIGNsYXNzPVwiZm9ybS1jb250cm9sXCJcclxuICAgICAgZm9ybUNvbnRyb2xOYW1lPVwidXNlck5hbWVcIlxyXG4gICAgICBhdXRvZm9jdXNcclxuICAgICAgKGtleWRvd24uc3BhY2UpPVwiJGV2ZW50LnByZXZlbnREZWZhdWx0KClcIlxyXG4gICAgLz5cclxuICA8L2Rpdj5cclxuICA8ZGl2IGNsYXNzPVwicm93XCI+XHJcbiAgICA8ZGl2IGNsYXNzPVwiY29sIGNvbC1tZC02XCI+XHJcbiAgICAgIDxkaXYgY2xhc3M9XCJtYi0zIGZvcm0tZ3JvdXBcIj5cclxuICAgICAgICA8bGFiZWwgZm9yPVwibmFtZVwiIGNsYXNzPVwiZm9ybS1sYWJlbFwiPnt7XHJcbiAgICAgICAgICAnQWJwSWRlbnRpdHk6OkRpc3BsYXlOYW1lOk5hbWUnIHwgYWJwTG9jYWxpemF0aW9uXHJcbiAgICAgICAgfX08L2xhYmVsXHJcbiAgICAgICAgPjxpbnB1dCB0eXBlPVwidGV4dFwiIGlkPVwibmFtZVwiIGNsYXNzPVwiZm9ybS1jb250cm9sXCIgZm9ybUNvbnRyb2xOYW1lPVwibmFtZVwiIC8+XHJcbiAgICAgIDwvZGl2PlxyXG4gICAgPC9kaXY+XHJcbiAgICA8ZGl2IGNsYXNzPVwiY29sIGNvbC1tZC02XCI+XHJcbiAgICAgIDxkaXYgY2xhc3M9XCJtYi0zIGZvcm0tZ3JvdXBcIj5cclxuICAgICAgICA8bGFiZWwgZm9yPVwic3VybmFtZVwiIGNsYXNzPVwiZm9ybS1sYWJlbFwiPnt7XHJcbiAgICAgICAgICAnQWJwSWRlbnRpdHk6OkRpc3BsYXlOYW1lOlN1cm5hbWUnIHwgYWJwTG9jYWxpemF0aW9uXHJcbiAgICAgICAgfX08L2xhYmVsXHJcbiAgICAgICAgPjxpbnB1dCB0eXBlPVwidGV4dFwiIGlkPVwic3VybmFtZVwiIGNsYXNzPVwiZm9ybS1jb250cm9sXCIgZm9ybUNvbnRyb2xOYW1lPVwic3VybmFtZVwiIC8+XHJcbiAgICAgIDwvZGl2PlxyXG4gICAgPC9kaXY+XHJcbiAgPC9kaXY+XHJcbiAgPGRpdiBjbGFzcz1cIm1iLTMgZm9ybS1ncm91cFwiPlxyXG4gICAgPGxhYmVsIGZvcj1cImVtYWlsLWFkZHJlc3NcIiBjbGFzcz1cImZvcm0tbGFiZWxcIj57e1xyXG4gICAgICAnQWJwSWRlbnRpdHk6OkRpc3BsYXlOYW1lOkVtYWlsJyB8IGFicExvY2FsaXphdGlvblxyXG4gICAgfX08L2xhYmVsXHJcbiAgICA+PHNwYW4+ICogPC9zcGFuXHJcbiAgICA+PGlucHV0IHR5cGU9XCJ0ZXh0XCIgaWQ9XCJlbWFpbC1hZGRyZXNzXCIgY2xhc3M9XCJmb3JtLWNvbnRyb2xcIiBmb3JtQ29udHJvbE5hbWU9XCJlbWFpbFwiIC8+XHJcbiAgPC9kaXY+XHJcbiAgPGRpdiBjbGFzcz1cIm1iLTMgZm9ybS1ncm91cFwiPlxyXG4gICAgPGxhYmVsIGZvcj1cInBob25lLW51bWJlclwiIGNsYXNzPVwiZm9ybS1sYWJlbFwiPnt7XHJcbiAgICAgICdBYnBJZGVudGl0eTo6RGlzcGxheU5hbWU6UGhvbmVOdW1iZXInIHwgYWJwTG9jYWxpemF0aW9uXHJcbiAgICB9fTwvbGFiZWxcclxuICAgID48aW5wdXQgdHlwZT1cInRleHRcIiBpZD1cInBob25lLW51bWJlclwiIGNsYXNzPVwiZm9ybS1jb250cm9sXCIgZm9ybUNvbnRyb2xOYW1lPVwicGhvbmVOdW1iZXJcIiAvPlxyXG4gIDwvZGl2PlxyXG4gIDxhYnAtYnV0dG9uXHJcbiAgICBidXR0b25UeXBlPVwic3VibWl0XCJcclxuICAgIGljb25DbGFzcz1cImZhIGZhLWNoZWNrXCJcclxuICAgIGJ1dHRvbkNsYXNzPVwiYnRuIGJ0bi1wcmltYXJ5IGNvbG9yLXdoaXRlXCJcclxuICAgIFtsb2FkaW5nXT1cImluUHJvZ3Jlc3NcIlxyXG4gICAgW2Rpc2FibGVkXT1cImZvcm0/LmludmFsaWRcIlxyXG4gID5cclxuICAgIHt7ICdBYnBJZGVudGl0eTo6U2F2ZScgfCBhYnBMb2NhbGl6YXRpb24gfX08L2FicC1idXR0b25cclxuICA+XHJcbjwvZm9ybT5cclxuIl19
1
+ import { ProfileService } from '@abp/ng.account.core/proxy';
2
+ import { ToasterService } from '@abp/ng.theme.shared';
3
+ import { Component } from '@angular/core';
4
+ import { FormBuilder, Validators } from '@angular/forms';
5
+ import { finalize } from 'rxjs/operators';
6
+ import { ManageProfileStateService } from '../../services/manage-profile.state.service';
7
+ import * as i0 from "@angular/core";
8
+ import * as i1 from "@angular/forms";
9
+ import * as i2 from "@abp/ng.theme.shared";
10
+ import * as i3 from "@abp/ng.account.core/proxy";
11
+ import * as i4 from "../../services/manage-profile.state.service";
12
+ import * as i5 from "@angular/common";
13
+ import * as i6 from "@abp/ng.core";
14
+ import * as i7 from "@ngx-validate/core";
15
+ const { maxLength, required, email } = Validators;
16
+ export class PersonalSettingsComponent {
17
+ constructor(fb, toasterService, profileService, manageProfileState) {
18
+ this.fb = fb;
19
+ this.toasterService = toasterService;
20
+ this.profileService = profileService;
21
+ this.manageProfileState = manageProfileState;
22
+ }
23
+ ngOnInit() {
24
+ this.buildForm();
25
+ }
26
+ buildForm() {
27
+ const profile = this.manageProfileState.getProfile();
28
+ this.form = this.fb.group({
29
+ userName: [profile.userName, [required, maxLength(256)]],
30
+ email: [profile.email, [required, email, maxLength(256)]],
31
+ name: [profile.name || '', [maxLength(64)]],
32
+ surname: [profile.surname || '', [maxLength(64)]],
33
+ phoneNumber: [profile.phoneNumber || '', [maxLength(16)]],
34
+ });
35
+ }
36
+ submit() {
37
+ if (this.form.invalid)
38
+ return;
39
+ this.inProgress = true;
40
+ this.profileService
41
+ .update(this.form.value)
42
+ .pipe(finalize(() => (this.inProgress = false)))
43
+ .subscribe(profile => {
44
+ this.manageProfileState.setProfile(profile);
45
+ this.toasterService.success('AbpAccount::PersonalSettingsSaved', 'Success', { life: 5000 });
46
+ });
47
+ }
48
+ }
49
+ PersonalSettingsComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "12.2.13", ngImport: i0, type: PersonalSettingsComponent, deps: [{ token: i1.FormBuilder }, { token: i2.ToasterService }, { token: i3.ProfileService }, { token: i4.ManageProfileStateService }], target: i0.ɵɵFactoryTarget.Component });
50
+ PersonalSettingsComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "12.2.13", type: PersonalSettingsComponent, selector: "abp-personal-settings-form", exportAs: ["abpPersonalSettingsForm"], ngImport: i0, template: "<form validateOnSubmit *ngIf=\"form\" [formGroup]=\"form\" (ngSubmit)=\"submit()\">\n <div class=\"mb-3 form-group\">\n <label for=\"username\" class=\"form-label\">{{\n 'AbpIdentity::DisplayName:UserName' | abpLocalization\n }}</label\n ><span> * </span\n ><input\n type=\"text\"\n id=\"username\"\n class=\"form-control\"\n formControlName=\"userName\"\n autofocus\n (keydown.space)=\"$event.preventDefault()\"\n />\n </div>\n <div class=\"row\">\n <div class=\"col col-md-6\">\n <div class=\"mb-3 form-group\">\n <label for=\"name\" class=\"form-label\">{{\n 'AbpIdentity::DisplayName:Name' | abpLocalization\n }}</label\n ><input type=\"text\" id=\"name\" class=\"form-control\" formControlName=\"name\" />\n </div>\n </div>\n <div class=\"col col-md-6\">\n <div class=\"mb-3 form-group\">\n <label for=\"surname\" class=\"form-label\">{{\n 'AbpIdentity::DisplayName:Surname' | abpLocalization\n }}</label\n ><input type=\"text\" id=\"surname\" class=\"form-control\" formControlName=\"surname\" />\n </div>\n </div>\n </div>\n <div class=\"mb-3 form-group\">\n <label for=\"email-address\" class=\"form-label\">{{\n 'AbpIdentity::DisplayName:Email' | abpLocalization\n }}</label\n ><span> * </span\n ><input type=\"text\" id=\"email-address\" class=\"form-control\" formControlName=\"email\" />\n </div>\n <div class=\"mb-3 form-group\">\n <label for=\"phone-number\" class=\"form-label\">{{\n 'AbpIdentity::DisplayName:PhoneNumber' | abpLocalization\n }}</label\n ><input type=\"text\" id=\"phone-number\" class=\"form-control\" formControlName=\"phoneNumber\" />\n </div>\n <abp-button\n buttonType=\"submit\"\n iconClass=\"fa fa-check\"\n buttonClass=\"btn btn-primary color-white\"\n [loading]=\"inProgress\"\n [disabled]=\"form?.invalid\"\n >\n {{ 'AbpIdentity::Save' | abpLocalization }}</abp-button\n >\n</form>\n", components: [{ type: i2.ButtonComponent, selector: "abp-button", inputs: ["buttonId", "buttonClass", "buttonType", "iconClass", "loading", "disabled", "attributes"], outputs: ["click", "focus", "blur", "abpClick", "abpFocus", "abpBlur"] }], directives: [{ type: i5.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { type: i1.ɵNgNoValidate, selector: "form:not([ngNoForm]):not([ngNativeValidate])" }, { type: i1.NgControlStatusGroup, selector: "[formGroupName],[formArrayName],[ngModelGroup],[formGroup],form:not([ngNoForm]),[ngForm]" }, { type: i6.FormSubmitDirective, selector: "form[ngSubmit][formGroup]", inputs: ["debounce", "notValidateOnSubmit"], outputs: ["ngSubmit"] }, { type: i1.FormGroupDirective, selector: "[formGroup]", inputs: ["formGroup"], outputs: ["ngSubmit"], exportAs: ["ngForm"] }, { type: i7.ValidationGroupDirective, selector: "[formGroup],[formGroupName]", exportAs: ["validationGroup"] }, { type: i1.DefaultValueAccessor, selector: "input:not([type=checkbox])[formControlName],textarea[formControlName],input:not([type=checkbox])[formControl],textarea[formControl],input:not([type=checkbox])[ngModel],textarea[ngModel],[ngDefaultControl]" }, { type: i1.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { type: i1.FormControlName, selector: "[formControlName]", inputs: ["disabled", "formControlName", "ngModel"], outputs: ["ngModelChange"] }, { type: i7.ValidationDirective, selector: "[formControl],[formControlName]", exportAs: ["validationDirective"] }, { type: i6.AutofocusDirective, selector: "[autofocus]", inputs: ["autofocus"] }], pipes: { "abpLocalization": i6.LocalizationPipe } });
51
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.13", ngImport: i0, type: PersonalSettingsComponent, decorators: [{
52
+ type: Component,
53
+ args: [{
54
+ selector: 'abp-personal-settings-form',
55
+ templateUrl: './personal-settings.component.html',
56
+ exportAs: 'abpPersonalSettingsForm',
57
+ }]
58
+ }], ctorParameters: function () { return [{ type: i1.FormBuilder }, { type: i2.ToasterService }, { type: i3.ProfileService }, { type: i4.ManageProfileStateService }]; } });
59
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicGVyc29uYWwtc2V0dGluZ3MuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vcGFja2FnZXMvYWNjb3VudC9zcmMvbGliL2NvbXBvbmVudHMvcGVyc29uYWwtc2V0dGluZ3MvcGVyc29uYWwtc2V0dGluZ3MuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vLi4vcGFja2FnZXMvYWNjb3VudC9zcmMvbGliL2NvbXBvbmVudHMvcGVyc29uYWwtc2V0dGluZ3MvcGVyc29uYWwtc2V0dGluZ3MuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLGNBQWMsRUFBRSxNQUFNLDRCQUE0QixDQUFDO0FBQzVELE9BQU8sRUFBRSxjQUFjLEVBQUUsTUFBTSxzQkFBc0IsQ0FBQztBQUN0RCxPQUFPLEVBQUUsU0FBUyxFQUFVLE1BQU0sZUFBZSxDQUFDO0FBQ2xELE9BQU8sRUFBRSxXQUFXLEVBQWEsVUFBVSxFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFDcEUsT0FBTyxFQUFFLFFBQVEsRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBRTFDLE9BQU8sRUFBRSx5QkFBeUIsRUFBRSxNQUFNLDZDQUE2QyxDQUFDOzs7Ozs7Ozs7QUFFeEYsTUFBTSxFQUFFLFNBQVMsRUFBRSxRQUFRLEVBQUUsS0FBSyxFQUFFLEdBQUcsVUFBVSxDQUFDO0FBT2xELE1BQU0sT0FBTyx5QkFBeUI7SUFVcEMsWUFDVSxFQUFlLEVBQ2YsY0FBOEIsRUFDOUIsY0FBOEIsRUFDOUIsa0JBQTZDO1FBSDdDLE9BQUUsR0FBRixFQUFFLENBQWE7UUFDZixtQkFBYyxHQUFkLGNBQWMsQ0FBZ0I7UUFDOUIsbUJBQWMsR0FBZCxjQUFjLENBQWdCO1FBQzlCLHVCQUFrQixHQUFsQixrQkFBa0IsQ0FBMkI7SUFDcEQsQ0FBQztJQUVKLFFBQVE7UUFDTixJQUFJLENBQUMsU0FBUyxFQUFFLENBQUM7SUFDbkIsQ0FBQztJQUVELFNBQVM7UUFDUCxNQUFNLE9BQU8sR0FBRyxJQUFJLENBQUMsa0JBQWtCLENBQUMsVUFBVSxFQUFFLENBQUM7UUFDckQsSUFBSSxDQUFDLElBQUksR0FBRyxJQUFJLENBQUMsRUFBRSxDQUFDLEtBQUssQ0FBQztZQUN4QixRQUFRLEVBQUUsQ0FBQyxPQUFPLENBQUMsUUFBUSxFQUFFLENBQUMsUUFBUSxFQUFFLFNBQVMsQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDO1lBQ3hELEtBQUssRUFBRSxDQUFDLE9BQU8sQ0FBQyxLQUFLLEVBQUUsQ0FBQyxRQUFRLEVBQUUsS0FBSyxFQUFFLFNBQVMsQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDO1lBQ3pELElBQUksRUFBRSxDQUFDLE9BQU8sQ0FBQyxJQUFJLElBQUksRUFBRSxFQUFFLENBQUMsU0FBUyxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUM7WUFDM0MsT0FBTyxFQUFFLENBQUMsT0FBTyxDQUFDLE9BQU8sSUFBSSxFQUFFLEVBQUUsQ0FBQyxTQUFTLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQztZQUNqRCxXQUFXLEVBQUUsQ0FBQyxPQUFPLENBQUMsV0FBVyxJQUFJLEVBQUUsRUFBRSxDQUFDLFNBQVMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDO1NBQzFELENBQUMsQ0FBQztJQUNMLENBQUM7SUFFRCxNQUFNO1FBQ0osSUFBSSxJQUFJLENBQUMsSUFBSSxDQUFDLE9BQU87WUFBRSxPQUFPO1FBQzlCLElBQUksQ0FBQyxVQUFVLEdBQUcsSUFBSSxDQUFDO1FBQ3ZCLElBQUksQ0FBQyxjQUFjO2FBQ2hCLE1BQU0sQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQzthQUN2QixJQUFJLENBQUMsUUFBUSxDQUFDLEdBQUcsRUFBRSxDQUFDLENBQUMsSUFBSSxDQUFDLFVBQVUsR0FBRyxLQUFLLENBQUMsQ0FBQyxDQUFDO2FBQy9DLFNBQVMsQ0FBQyxPQUFPLENBQUMsRUFBRTtZQUNuQixJQUFJLENBQUMsa0JBQWtCLENBQUMsVUFBVSxDQUFDLE9BQU8sQ0FBQyxDQUFDO1lBQzVDLElBQUksQ0FBQyxjQUFjLENBQUMsT0FBTyxDQUFDLG1DQUFtQyxFQUFFLFNBQVMsRUFBRSxFQUFFLElBQUksRUFBRSxJQUFJLEVBQUUsQ0FBQyxDQUFDO1FBQzlGLENBQUMsQ0FBQyxDQUFDO0lBQ1AsQ0FBQzs7dUhBMUNVLHlCQUF5QjsyR0FBekIseUJBQXlCLHlHQ2Z0Qyw2K0RBd0RBOzRGRHpDYSx5QkFBeUI7a0JBTHJDLFNBQVM7bUJBQUM7b0JBQ1QsUUFBUSxFQUFFLDRCQUE0QjtvQkFDdEMsV0FBVyxFQUFFLG9DQUFvQztvQkFDakQsUUFBUSxFQUFFLHlCQUF5QjtpQkFDcEMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBQcm9maWxlU2VydmljZSB9IGZyb20gJ0BhYnAvbmcuYWNjb3VudC5jb3JlL3Byb3h5JztcbmltcG9ydCB7IFRvYXN0ZXJTZXJ2aWNlIH0gZnJvbSAnQGFicC9uZy50aGVtZS5zaGFyZWQnO1xuaW1wb3J0IHsgQ29tcG9uZW50LCBPbkluaXQgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IEZvcm1CdWlsZGVyLCBGb3JtR3JvdXAsIFZhbGlkYXRvcnMgfSBmcm9tICdAYW5ndWxhci9mb3Jtcyc7XG5pbXBvcnQgeyBmaW5hbGl6ZSB9IGZyb20gJ3J4anMvb3BlcmF0b3JzJztcbmltcG9ydCB7IEFjY291bnQgfSBmcm9tICcuLi8uLi9tb2RlbHMvYWNjb3VudCc7XG5pbXBvcnQgeyBNYW5hZ2VQcm9maWxlU3RhdGVTZXJ2aWNlIH0gZnJvbSAnLi4vLi4vc2VydmljZXMvbWFuYWdlLXByb2ZpbGUuc3RhdGUuc2VydmljZSc7XG5cbmNvbnN0IHsgbWF4TGVuZ3RoLCByZXF1aXJlZCwgZW1haWwgfSA9IFZhbGlkYXRvcnM7XG5cbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ2FicC1wZXJzb25hbC1zZXR0aW5ncy1mb3JtJyxcbiAgdGVtcGxhdGVVcmw6ICcuL3BlcnNvbmFsLXNldHRpbmdzLmNvbXBvbmVudC5odG1sJyxcbiAgZXhwb3J0QXM6ICdhYnBQZXJzb25hbFNldHRpbmdzRm9ybScsXG59KVxuZXhwb3J0IGNsYXNzIFBlcnNvbmFsU2V0dGluZ3NDb21wb25lbnRcbiAgaW1wbGVtZW50c1xuICAgIE9uSW5pdCxcbiAgICBBY2NvdW50LlBlcnNvbmFsU2V0dGluZ3NDb21wb25lbnRJbnB1dHMsXG4gICAgQWNjb3VudC5QZXJzb25hbFNldHRpbmdzQ29tcG9uZW50T3V0cHV0c1xue1xuICBmb3JtOiBGb3JtR3JvdXA7XG5cbiAgaW5Qcm9ncmVzczogYm9vbGVhbjtcblxuICBjb25zdHJ1Y3RvcihcbiAgICBwcml2YXRlIGZiOiBGb3JtQnVpbGRlcixcbiAgICBwcml2YXRlIHRvYXN0ZXJTZXJ2aWNlOiBUb2FzdGVyU2VydmljZSxcbiAgICBwcml2YXRlIHByb2ZpbGVTZXJ2aWNlOiBQcm9maWxlU2VydmljZSxcbiAgICBwcml2YXRlIG1hbmFnZVByb2ZpbGVTdGF0ZTogTWFuYWdlUHJvZmlsZVN0YXRlU2VydmljZSxcbiAgKSB7fVxuXG4gIG5nT25Jbml0KCkge1xuICAgIHRoaXMuYnVpbGRGb3JtKCk7XG4gIH1cblxuICBidWlsZEZvcm0oKSB7XG4gICAgY29uc3QgcHJvZmlsZSA9IHRoaXMubWFuYWdlUHJvZmlsZVN0YXRlLmdldFByb2ZpbGUoKTtcbiAgICB0aGlzLmZvcm0gPSB0aGlzLmZiLmdyb3VwKHtcbiAgICAgIHVzZXJOYW1lOiBbcHJvZmlsZS51c2VyTmFtZSwgW3JlcXVpcmVkLCBtYXhMZW5ndGgoMjU2KV1dLFxuICAgICAgZW1haWw6IFtwcm9maWxlLmVtYWlsLCBbcmVxdWlyZWQsIGVtYWlsLCBtYXhMZW5ndGgoMjU2KV1dLFxuICAgICAgbmFtZTogW3Byb2ZpbGUubmFtZSB8fCAnJywgW21heExlbmd0aCg2NCldXSxcbiAgICAgIHN1cm5hbWU6IFtwcm9maWxlLnN1cm5hbWUgfHwgJycsIFttYXhMZW5ndGgoNjQpXV0sXG4gICAgICBwaG9uZU51bWJlcjogW3Byb2ZpbGUucGhvbmVOdW1iZXIgfHwgJycsIFttYXhMZW5ndGgoMTYpXV0sXG4gICAgfSk7XG4gIH1cblxuICBzdWJtaXQoKSB7XG4gICAgaWYgKHRoaXMuZm9ybS5pbnZhbGlkKSByZXR1cm47XG4gICAgdGhpcy5pblByb2dyZXNzID0gdHJ1ZTtcbiAgICB0aGlzLnByb2ZpbGVTZXJ2aWNlXG4gICAgICAudXBkYXRlKHRoaXMuZm9ybS52YWx1ZSlcbiAgICAgIC5waXBlKGZpbmFsaXplKCgpID0+ICh0aGlzLmluUHJvZ3Jlc3MgPSBmYWxzZSkpKVxuICAgICAgLnN1YnNjcmliZShwcm9maWxlID0+IHtcbiAgICAgICAgdGhpcy5tYW5hZ2VQcm9maWxlU3RhdGUuc2V0UHJvZmlsZShwcm9maWxlKTtcbiAgICAgICAgdGhpcy50b2FzdGVyU2VydmljZS5zdWNjZXNzKCdBYnBBY2NvdW50OjpQZXJzb25hbFNldHRpbmdzU2F2ZWQnLCAnU3VjY2VzcycsIHsgbGlmZTogNTAwMCB9KTtcbiAgICAgIH0pO1xuICB9XG59XG4iLCI8Zm9ybSB2YWxpZGF0ZU9uU3VibWl0ICpuZ0lmPVwiZm9ybVwiIFtmb3JtR3JvdXBdPVwiZm9ybVwiIChuZ1N1Ym1pdCk9XCJzdWJtaXQoKVwiPlxuICA8ZGl2IGNsYXNzPVwibWItMyBmb3JtLWdyb3VwXCI+XG4gICAgPGxhYmVsIGZvcj1cInVzZXJuYW1lXCIgY2xhc3M9XCJmb3JtLWxhYmVsXCI+e3tcbiAgICAgICdBYnBJZGVudGl0eTo6RGlzcGxheU5hbWU6VXNlck5hbWUnIHwgYWJwTG9jYWxpemF0aW9uXG4gICAgfX08L2xhYmVsXG4gICAgPjxzcGFuPiAqIDwvc3BhblxuICAgID48aW5wdXRcbiAgICAgIHR5cGU9XCJ0ZXh0XCJcbiAgICAgIGlkPVwidXNlcm5hbWVcIlxuICAgICAgY2xhc3M9XCJmb3JtLWNvbnRyb2xcIlxuICAgICAgZm9ybUNvbnRyb2xOYW1lPVwidXNlck5hbWVcIlxuICAgICAgYXV0b2ZvY3VzXG4gICAgICAoa2V5ZG93bi5zcGFjZSk9XCIkZXZlbnQucHJldmVudERlZmF1bHQoKVwiXG4gICAgLz5cbiAgPC9kaXY+XG4gIDxkaXYgY2xhc3M9XCJyb3dcIj5cbiAgICA8ZGl2IGNsYXNzPVwiY29sIGNvbC1tZC02XCI+XG4gICAgICA8ZGl2IGNsYXNzPVwibWItMyBmb3JtLWdyb3VwXCI+XG4gICAgICAgIDxsYWJlbCBmb3I9XCJuYW1lXCIgY2xhc3M9XCJmb3JtLWxhYmVsXCI+e3tcbiAgICAgICAgICAnQWJwSWRlbnRpdHk6OkRpc3BsYXlOYW1lOk5hbWUnIHwgYWJwTG9jYWxpemF0aW9uXG4gICAgICAgIH19PC9sYWJlbFxuICAgICAgICA+PGlucHV0IHR5cGU9XCJ0ZXh0XCIgaWQ9XCJuYW1lXCIgY2xhc3M9XCJmb3JtLWNvbnRyb2xcIiBmb3JtQ29udHJvbE5hbWU9XCJuYW1lXCIgLz5cbiAgICAgIDwvZGl2PlxuICAgIDwvZGl2PlxuICAgIDxkaXYgY2xhc3M9XCJjb2wgY29sLW1kLTZcIj5cbiAgICAgIDxkaXYgY2xhc3M9XCJtYi0zIGZvcm0tZ3JvdXBcIj5cbiAgICAgICAgPGxhYmVsIGZvcj1cInN1cm5hbWVcIiBjbGFzcz1cImZvcm0tbGFiZWxcIj57e1xuICAgICAgICAgICdBYnBJZGVudGl0eTo6RGlzcGxheU5hbWU6U3VybmFtZScgfCBhYnBMb2NhbGl6YXRpb25cbiAgICAgICAgfX08L2xhYmVsXG4gICAgICAgID48aW5wdXQgdHlwZT1cInRleHRcIiBpZD1cInN1cm5hbWVcIiBjbGFzcz1cImZvcm0tY29udHJvbFwiIGZvcm1Db250cm9sTmFtZT1cInN1cm5hbWVcIiAvPlxuICAgICAgPC9kaXY+XG4gICAgPC9kaXY+XG4gIDwvZGl2PlxuICA8ZGl2IGNsYXNzPVwibWItMyBmb3JtLWdyb3VwXCI+XG4gICAgPGxhYmVsIGZvcj1cImVtYWlsLWFkZHJlc3NcIiBjbGFzcz1cImZvcm0tbGFiZWxcIj57e1xuICAgICAgJ0FicElkZW50aXR5OjpEaXNwbGF5TmFtZTpFbWFpbCcgfCBhYnBMb2NhbGl6YXRpb25cbiAgICB9fTwvbGFiZWxcbiAgICA+PHNwYW4+ICogPC9zcGFuXG4gICAgPjxpbnB1dCB0eXBlPVwidGV4dFwiIGlkPVwiZW1haWwtYWRkcmVzc1wiIGNsYXNzPVwiZm9ybS1jb250cm9sXCIgZm9ybUNvbnRyb2xOYW1lPVwiZW1haWxcIiAvPlxuICA8L2Rpdj5cbiAgPGRpdiBjbGFzcz1cIm1iLTMgZm9ybS1ncm91cFwiPlxuICAgIDxsYWJlbCBmb3I9XCJwaG9uZS1udW1iZXJcIiBjbGFzcz1cImZvcm0tbGFiZWxcIj57e1xuICAgICAgJ0FicElkZW50aXR5OjpEaXNwbGF5TmFtZTpQaG9uZU51bWJlcicgfCBhYnBMb2NhbGl6YXRpb25cbiAgICB9fTwvbGFiZWxcbiAgICA+PGlucHV0IHR5cGU9XCJ0ZXh0XCIgaWQ9XCJwaG9uZS1udW1iZXJcIiBjbGFzcz1cImZvcm0tY29udHJvbFwiIGZvcm1Db250cm9sTmFtZT1cInBob25lTnVtYmVyXCIgLz5cbiAgPC9kaXY+XG4gIDxhYnAtYnV0dG9uXG4gICAgYnV0dG9uVHlwZT1cInN1Ym1pdFwiXG4gICAgaWNvbkNsYXNzPVwiZmEgZmEtY2hlY2tcIlxuICAgIGJ1dHRvbkNsYXNzPVwiYnRuIGJ0bi1wcmltYXJ5IGNvbG9yLXdoaXRlXCJcbiAgICBbbG9hZGluZ109XCJpblByb2dyZXNzXCJcbiAgICBbZGlzYWJsZWRdPVwiZm9ybT8uaW52YWxpZFwiXG4gID5cbiAgICB7eyAnQWJwSWRlbnRpdHk6OlNhdmUnIHwgYWJwTG9jYWxpemF0aW9uIH19PC9hYnAtYnV0dG9uXG4gID5cbjwvZm9ybT5cbiJdfQ==
@@ -1,87 +1,87 @@
1
- import { AccountService } from '@abp/ng.account.core/proxy';
2
- import { AuthService, ConfigStateService } from '@abp/ng.core';
3
- import { getPasswordValidators, ToasterService } from '@abp/ng.theme.shared';
4
- import { Component, Injector } from '@angular/core';
5
- import { FormBuilder, Validators } from '@angular/forms';
6
- import { throwError } from 'rxjs';
7
- import { catchError, finalize, switchMap } from 'rxjs/operators';
8
- import { getRedirectUrl } from '../../utils/auth-utils';
9
- import * as i0 from "@angular/core";
10
- import * as i1 from "@angular/forms";
11
- import * as i2 from "@abp/ng.account.core/proxy";
12
- import * as i3 from "@abp/ng.core";
13
- import * as i4 from "@abp/ng.theme.shared";
14
- import * as i5 from "@angular/router";
15
- import * as i6 from "@angular/common";
16
- import * as i7 from "@ngx-validate/core";
17
- const { maxLength, required, email } = Validators;
18
- export class RegisterComponent {
19
- constructor(fb, accountService, configState, toasterService, authService, injector) {
20
- this.fb = fb;
21
- this.accountService = accountService;
22
- this.configState = configState;
23
- this.toasterService = toasterService;
24
- this.authService = authService;
25
- this.injector = injector;
26
- this.isSelfRegistrationEnabled = true;
27
- this.authWrapperKey = "Account.AuthWrapperComponent" /* AuthWrapper */;
28
- }
29
- ngOnInit() {
30
- this.init();
31
- this.buildForm();
32
- }
33
- init() {
34
- this.isSelfRegistrationEnabled =
35
- (this.configState.getSetting('Abp.Account.IsSelfRegistrationEnabled') || '').toLowerCase() !==
36
- 'false';
37
- if (!this.isSelfRegistrationEnabled) {
38
- this.toasterService.warn({
39
- key: 'AbpAccount::SelfRegistrationDisabledMessage',
40
- defaultValue: 'Self registration is disabled.',
41
- }, null, { life: 10000 });
42
- return;
43
- }
44
- }
45
- buildForm() {
46
- this.form = this.fb.group({
47
- username: ['', [required, maxLength(255)]],
48
- password: ['', [required, ...getPasswordValidators(this.injector)]],
49
- email: ['', [required, email]],
50
- });
51
- }
52
- onSubmit() {
53
- if (this.form.invalid)
54
- return;
55
- this.inProgress = true;
56
- const newUser = {
57
- userName: this.form.get('username').value,
58
- password: this.form.get('password').value,
59
- emailAddress: this.form.get('email').value,
60
- appName: 'Angular',
61
- };
62
- this.accountService
63
- .register(newUser)
64
- .pipe(switchMap(() => this.authService.login({
65
- username: newUser.userName,
66
- password: newUser.password,
67
- redirectUrl: getRedirectUrl(this.injector),
68
- })), catchError(err => {
69
- var _a, _b;
70
- this.toasterService.error(((_a = err.error) === null || _a === void 0 ? void 0 : _a.error_description) ||
71
- ((_b = err.error) === null || _b === void 0 ? void 0 : _b.error.message) ||
72
- 'AbpAccount::DefaultErrorMessage', null, { life: 7000 });
73
- return throwError(err);
74
- }), finalize(() => (this.inProgress = false)))
75
- .subscribe();
76
- }
77
- }
78
- RegisterComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "12.2.13", ngImport: i0, type: RegisterComponent, deps: [{ token: i1.FormBuilder }, { token: i2.AccountService }, { token: i3.ConfigStateService }, { token: i4.ToasterService }, { token: i3.AuthService }, { token: i0.Injector }], target: i0.ɵɵFactoryTarget.Component });
79
- RegisterComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "12.2.13", type: RegisterComponent, selector: "abp-register", ngImport: i0, template: "<h4>{{ 'AbpAccount::Register' | abpLocalization }}</h4>\r\n<strong>\r\n {{ 'AbpAccount::AlreadyRegistered' | abpLocalization }}\r\n <a class=\"text-decoration-none\" routerLink=\"/account/login\">{{\r\n 'AbpAccount::Login' | abpLocalization\r\n }}</a>\r\n</strong>\r\n<form\r\n *ngIf=\"isSelfRegistrationEnabled\"\r\n [formGroup]=\"form\"\r\n (ngSubmit)=\"onSubmit()\"\r\n validateOnSubmit\r\n class=\"mt-4\"\r\n>\r\n <div class=\"mb-3 form-group\">\r\n <label for=\"input-user-name\" class=\"form-label\">{{\r\n 'AbpAccount::UserName' | abpLocalization\r\n }}</label\r\n ><span> * </span\r\n ><input\r\n autofocus\r\n type=\"text\"\r\n id=\"input-user-name\"\r\n class=\"form-control\"\r\n formControlName=\"username\"\r\n autocomplete=\"username\"\r\n />\r\n </div>\r\n <div class=\"mb-3 form-group\">\r\n <label for=\"input-email-address\" class=\"form-label\">{{\r\n 'AbpAccount::EmailAddress' | abpLocalization\r\n }}</label\r\n ><span> * </span\r\n ><input type=\"email\" id=\"input-email-address\" class=\"form-control\" formControlName=\"email\" />\r\n </div>\r\n <div class=\"mb-3 form-group\">\r\n <label for=\"input-password\" class=\"form-label\">{{\r\n 'AbpAccount::Password' | abpLocalization\r\n }}</label\r\n ><span> * </span\r\n ><input\r\n type=\"password\"\r\n id=\"input-password\"\r\n class=\"form-control\"\r\n formControlName=\"password\"\r\n autocomplete=\"current-password\"\r\n />\r\n </div>\r\n <abp-button\r\n [loading]=\"inProgress\"\r\n buttonType=\"submit\"\r\n name=\"Action\"\r\n buttonClass=\"btn-block btn-lg mt-3 btn btn-primary\"\r\n >\r\n {{ 'AbpAccount::Register' | abpLocalization }}\r\n </abp-button>\r\n</form>\r\n", components: [{ type: i4.ButtonComponent, selector: "abp-button", inputs: ["buttonId", "buttonClass", "buttonType", "iconClass", "loading", "disabled", "attributes"], outputs: ["click", "focus", "blur", "abpClick", "abpFocus", "abpBlur"] }], directives: [{ type: i5.RouterLinkWithHref, selector: "a[routerLink],area[routerLink]", inputs: ["routerLink", "target", "queryParams", "fragment", "queryParamsHandling", "preserveFragment", "skipLocationChange", "replaceUrl", "state", "relativeTo"] }, { type: i6.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { type: i1.ɵNgNoValidate, selector: "form:not([ngNoForm]):not([ngNativeValidate])" }, { type: i1.NgControlStatusGroup, selector: "[formGroupName],[formArrayName],[ngModelGroup],[formGroup],form:not([ngNoForm]),[ngForm]" }, { type: i3.FormSubmitDirective, selector: "form[ngSubmit][formGroup]", inputs: ["debounce", "notValidateOnSubmit"], outputs: ["ngSubmit"] }, { type: i1.FormGroupDirective, selector: "[formGroup]", inputs: ["formGroup"], outputs: ["ngSubmit"], exportAs: ["ngForm"] }, { type: i7.ValidationGroupDirective, selector: "[formGroup],[formGroupName]", exportAs: ["validationGroup"] }, { type: i1.DefaultValueAccessor, selector: "input:not([type=checkbox])[formControlName],textarea[formControlName],input:not([type=checkbox])[formControl],textarea[formControl],input:not([type=checkbox])[ngModel],textarea[ngModel],[ngDefaultControl]" }, { type: i3.AutofocusDirective, selector: "[autofocus]", inputs: ["autofocus"] }, { type: i1.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { type: i1.FormControlName, selector: "[formControlName]", inputs: ["disabled", "formControlName", "ngModel"], outputs: ["ngModelChange"] }, { type: i7.ValidationDirective, selector: "[formControl],[formControlName]", exportAs: ["validationDirective"] }], pipes: { "abpLocalization": i3.LocalizationPipe } });
80
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.13", ngImport: i0, type: RegisterComponent, decorators: [{
81
- type: Component,
82
- args: [{
83
- selector: 'abp-register',
84
- templateUrl: './register.component.html',
85
- }]
86
- }], ctorParameters: function () { return [{ type: i1.FormBuilder }, { type: i2.AccountService }, { type: i3.ConfigStateService }, { type: i4.ToasterService }, { type: i3.AuthService }, { type: i0.Injector }]; } });
87
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicmVnaXN0ZXIuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vcGFja2FnZXMvYWNjb3VudC9zcmMvbGliL2NvbXBvbmVudHMvcmVnaXN0ZXIvcmVnaXN0ZXIuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vLi4vcGFja2FnZXMvYWNjb3VudC9zcmMvbGliL2NvbXBvbmVudHMvcmVnaXN0ZXIvcmVnaXN0ZXIuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLGNBQWMsRUFBZSxNQUFNLDRCQUE0QixDQUFDO0FBQ3pFLE9BQU8sRUFBRSxXQUFXLEVBQUUsa0JBQWtCLEVBQUUsTUFBTSxjQUFjLENBQUM7QUFDL0QsT0FBTyxFQUFFLHFCQUFxQixFQUFFLGNBQWMsRUFBRSxNQUFNLHNCQUFzQixDQUFDO0FBQzdFLE9BQU8sRUFBRSxTQUFTLEVBQUUsUUFBUSxFQUFVLE1BQU0sZUFBZSxDQUFDO0FBQzVELE9BQU8sRUFBRSxXQUFXLEVBQWEsVUFBVSxFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFDcEUsT0FBTyxFQUFFLFVBQVUsRUFBRSxNQUFNLE1BQU0sQ0FBQztBQUNsQyxPQUFPLEVBQUUsVUFBVSxFQUFFLFFBQVEsRUFBRSxTQUFTLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUVqRSxPQUFPLEVBQUUsY0FBYyxFQUFFLE1BQU0sd0JBQXdCLENBQUM7Ozs7Ozs7OztBQUV4RCxNQUFNLEVBQUUsU0FBUyxFQUFFLFFBQVEsRUFBRSxLQUFLLEVBQUUsR0FBRyxVQUFVLENBQUM7QUFNbEQsTUFBTSxPQUFPLGlCQUFpQjtJQVM1QixZQUNZLEVBQWUsRUFDZixjQUE4QixFQUM5QixXQUErQixFQUMvQixjQUE4QixFQUM5QixXQUF3QixFQUN4QixRQUFrQjtRQUxsQixPQUFFLEdBQUYsRUFBRSxDQUFhO1FBQ2YsbUJBQWMsR0FBZCxjQUFjLENBQWdCO1FB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QUFDLFVBQVUsR0FBRyxLQUFLLENBQUMsQ0FBQyxDQUMxQzthQUNBLFNBQVMsRUFBRSxDQUFDO0lBQ2pCLENBQUM7OytHQXJGVSxpQkFBaUI7bUdBQWpCLGlCQUFpQixvRENoQjlCLDZ3REF5REE7NEZEekNhLGlCQUFpQjtrQkFKN0IsU0FBUzttQkFBQztvQkFDVCxRQUFRLEVBQUUsY0FBYztvQkFDeEIsV0FBVyxFQUFFLDJCQUEyQjtpQkFDekMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBBY2NvdW50U2VydmljZSwgUmVnaXN0ZXJEdG8gfSBmcm9tICdAYWJwL25nLmFjY291bnQuY29yZS9wcm94eSc7XHJcbmltcG9ydCB7IEF1dGhTZXJ2aWNlLCBDb25maWdTdGF0ZVNlcnZpY2UgfSBmcm9tICdAYWJwL25nLmNvcmUnO1xyXG5pbXBvcnQgeyBnZXRQYXNzd29yZFZhbGlkYXRvcnMsIFRvYXN0ZXJTZXJ2aWNlIH0gZnJvbSAnQGFicC9uZy50aGVtZS5zaGFyZWQnO1xyXG5pbXBvcnQgeyBDb21wb25lbnQsIEluamVjdG9yLCBPbkluaXQgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcclxuaW1wb3J0IHsgRm9ybUJ1aWxkZXIsIEZvcm1Hcm91cCwgVmFsaWRhdG9ycyB9IGZyb20gJ0Bhbmd1bGFyL2Zvcm1zJztcclxuaW1wb3J0IHsgdGhyb3dFcnJvciB9IGZyb20gJ3J4anMnO1xyXG5pbXBvcnQgeyBjYXRjaEVycm9yLCBmaW5hbGl6ZSwgc3dpdGNoTWFwIH0gZnJvbSAncnhqcy9vcGVyYXRvcnMnO1xyXG5pbXBvcnQgeyBlQWNjb3VudENvbXBvbmVudHMgfSBmcm9tICcuLi8uLi9lbnVtcy9jb21wb25lbnRzJztcclxuaW1wb3J0IHsgZ2V0UmVkaXJlY3RVcmwgfSBmcm9tICcuLi8uLi91dGlscy9hdXRoLXV0aWxzJztcclxuXHJcbmNvbnN0IHsgbWF4TGVuZ3RoLCByZXF1aXJlZCwgZW1haWwgfSA9IFZhbGlkYXRvcnM7XHJcblxyXG5AQ29tcG9uZW50KHtcclxuICBzZWxlY3RvcjogJ2FicC1yZWdpc3RlcicsXHJcbiAgdGVtcGxhdGVVcmw6ICcuL3JlZ2lzdGVyLmNvbXBvbmVudC5odG1sJyxcclxufSlcclxuZXhwb3J0IGNsYXNzIFJlZ2lzdGVyQ29tcG9uZW50IGltcGxlbWVudHMgT25Jbml0IHtcclxuICBmb3JtOiBGb3JtR3JvdXA7XHJcblxyXG4gIGluUHJvZ3Jlc3M6IGJvb2xlYW47XHJcblxyXG4gIGlzU2VsZlJlZ2lzdHJhdGlvbkVuYWJsZWQgPSB0cnVlO1xyXG5cclxuICBhdXRoV3JhcHBlcktleSA9IGVBY2NvdW50Q29tcG9uZW50cy5BdXRoV3JhcHBlcjtcclxuXHJcbiAgY29uc3RydWN0b3IoXHJcbiAgICBwcm90ZWN0ZWQgZmI6IEZvcm1CdWlsZGVyLFxyXG4gICAgcHJvdGVjdGVkIGFjY291bnRTZXJ2aWNlOiBBY2NvdW50U2VydmljZSxcclxuICAgIHByb3RlY3RlZCBjb25maWdTdGF0ZTogQ29uZmlnU3RhdGVTZXJ2aWNlLFxyXG4gICAgcHJvdGVjdGVkIHRvYXN0ZXJTZXJ2aWNlOiBUb2FzdGVyU2VydmljZSxcclxuICAgIHByb3RlY3RlZCBhdXRoU2VydmljZTogQXV0aFNlcnZpY2UsXHJcbiAgICBwcm90ZWN0ZWQgaW5qZWN0b3I6IEluamVjdG9yLFxyXG4gICkge31cclxuXHJcbiAgbmdPbkluaXQoKSB7XHJcbiAgICB0aGlzLmluaXQoKTtcclxuICAgIHRoaXMuYnVpbGRGb3JtKCk7XHJcbiAgfVxyXG5cclxuICBwcm90ZWN0ZWQgaW5pdCgpIHtcclxuICAgIHRoaXMuaXNTZWxmUmVnaXN0cmF0aW9uRW5hYmxlZCA9XHJcbiAgICAgICh0aGlzLmNvbmZpZ1N0YXRlLmdldFNldHRpbmcoJ0FicC5BY2NvdW50LklzU2VsZlJlZ2lzdHJhdGlvbkVuYWJsZWQnKSB8fCAnJykudG9Mb3dlckNhc2UoKSAhPT1cclxuICAgICAgJ2ZhbHNlJztcclxuXHJcbiAgICBpZiAoIXRoaXMuaXNTZWxmUmVnaXN0cmF0aW9uRW5hYmxlZCkge1xyXG4gICAgICB0aGlzLnRvYXN0ZXJTZXJ2aWNlLndhcm4oXHJcbiAgICAgICAge1xyXG4gICAgICAgICAga2V5OiAnQWJwQWNjb3VudDo6U2VsZlJlZ2lzdHJhdGlvbkRpc2FibGVkTWVzc2FnZScsXHJcbiAgICAgICAgICBkZWZhdWx0VmFsdWU6ICdTZWxmIHJlZ2lzdHJhdGlvbiBpcyBkaXNhYmxlZC4nLFxyXG4gICAgICAgIH0sXHJcbiAgICAgICAgbnVsbCxcclxuICAgICAgICB7IGxpZmU6IDEwMDAwIH0sXHJcbiAgICAgICk7XHJcbiAgICAgIHJldHVybjtcclxuICAgIH1cclxuICB9XHJcblxyXG4gIHByb3RlY3RlZCBidWlsZEZvcm0oKSB7XHJcbiAgICB0aGlzLmZvcm0gPSB0aGlzLmZiLmdyb3VwKHtcclxuICAgICAgdXNlcm5hbWU6IFsnJywgW3JlcXVpcmVkLCBtYXhMZW5ndGgoMjU1KV1dLFxyXG4gICAgICBwYXNzd29yZDogWycnLCBbcmVxdWlyZWQsIC4uLmdldFBhc3N3b3JkVmFsaWRhdG9ycyh0aGlzLmluamVjdG9yKV1dLFxyXG4gICAgICBlbWFpbDogWycnLCBbcmVxdWlyZWQsIGVtYWlsXV0sXHJcbiAgICB9KTtcclxuICB9XHJcblxyXG4gIG9uU3VibWl0KCkge1xyXG4gICAgaWYgKHRoaXMuZm9ybS5pbnZhbGlkKSByZXR1cm47XHJcblxyXG4gICAgdGhpcy5pblByb2dyZXNzID0gdHJ1ZTtcclxuXHJcbiAgICBjb25zdCBuZXdVc2VyID0ge1xyXG4gICAgICB1c2VyTmFtZTogdGhpcy5mb3JtLmdldCgndXNlcm5hbWUnKS52YWx1ZSxcclxuICAgICAgcGFzc3dvcmQ6IHRoaXMuZm9ybS5nZXQoJ3Bhc3N3b3JkJykudmFsdWUsXHJcbiAgICAgIGVtYWlsQWRkcmVzczogdGhpcy5mb3JtLmdldCgnZW1haWwnKS52YWx1ZSxcclxuICAgICAgYXBwTmFtZTogJ0FuZ3VsYXInLFxyXG4gICAgfSBhcyBSZWdpc3RlckR0bztcclxuXHJcbiAgICB0aGlzLmFjY291bnRTZXJ2aWNlXHJcbiAgICAgIC5yZWdpc3RlcihuZXdVc2VyKVxyXG4gICAgICAucGlwZShcclxuICAgICAgICBzd2l0Y2hNYXAoKCkgPT5cclxuICAgICAgICAgIHRoaXMuYXV0aFNlcnZpY2UubG9naW4oe1xyXG4gICAgICAgICAgICB1c2VybmFtZTogbmV3VXNlci51c2VyTmFtZSxcclxuICAgICAgICAgICAgcGFzc3dvcmQ6IG5ld1VzZXIucGFzc3dvcmQsXHJcbiAgICAgICAgICAgIHJlZGlyZWN0VXJsOiBnZXRSZWRpcmVjdFVybCh0aGlzLmluamVjdG9yKSxcclxuICAgICAgICAgIH0pLFxyXG4gICAgICAgICksXHJcbiAgICAgICAgY2F0Y2hFcnJvcihlcnIgPT4ge1xyXG4gICAgICAgICAgdGhpcy50b2FzdGVyU2VydmljZS5lcnJvcihcclxuICAgICAgICAgICAgZXJyLmVycm9yPy5lcnJvcl9kZXNjcmlwdGlvbiB8fFxyXG4gICAgICAgICAgICAgIGVyci5lcnJvcj8uZXJyb3IubWVzc2FnZSB8fFxyXG4gICAgICAgICAgICAgICdBYnBBY2NvdW50OjpEZWZhdWx0RXJyb3JNZXNzYWdlJyxcclxuICAgICAgICAgICAgbnVsbCxcclxuICAgICAgICAgICAgeyBsaWZlOiA3MDAwIH0sXHJcbiAgICAgICAgICApO1xyXG5cclxuICAgICAgICAgIHJldHVybiB0aHJvd0Vycm9yKGVycik7XHJcbiAgICAgICAgfSksXHJcbiAgICAgICAgZmluYWxpemUoKCkgPT4gKHRoaXMuaW5Qcm9ncmVzcyA9IGZhbHNlKSksXHJcbiAgICAgIClcclxuICAgICAgLnN1YnNjcmliZSgpO1xyXG4gIH1cclxufVxyXG4iLCI8aDQ+e3sgJ0FicEFjY291bnQ6OlJlZ2lzdGVyJyB8IGFicExvY2FsaXphdGlvbiB9fTwvaDQ+XHJcbjxzdHJvbmc+XHJcbiAge3sgJ0FicEFjY291bnQ6OkFscmVhZHlSZWdpc3RlcmVkJyB8IGFicExvY2FsaXphdGlvbiB9fVxyXG4gIDxhIGNsYXNzPVwidGV4dC1kZWNvcmF0aW9uLW5vbmVcIiByb3V0ZXJMaW5rPVwiL2FjY291bnQvbG9naW5cIj57e1xyXG4gICAgJ0FicEFjY291bnQ6OkxvZ2luJyB8IGFicExvY2FsaXphdGlvblxyXG4gIH19PC9hPlxyXG48L3N0cm9uZz5cclxuPGZvcm1cclxuICAqbmdJZj1cImlzU2VsZlJlZ2lzdHJhdGlvbkVuYWJsZWRcIlxyXG4gIFtmb3JtR3JvdXBdPVwiZm9ybVwiXHJcbiAgKG5nU3VibWl0KT1cIm9uU3VibWl0KClcIlxyXG4gIHZhbGlkYXRlT25TdWJtaXRcclxuICBjbGFzcz1cIm10LTRcIlxyXG4+XHJcbiAgPGRpdiBjbGFzcz1cIm1iLTMgZm9ybS1ncm91cFwiPlxyXG4gICAgPGxhYmVsIGZvcj1cImlucHV0LXVzZXItbmFtZVwiIGNsYXNzPVwiZm9ybS1sYWJlbFwiPnt7XHJcbiAgICAgICdBYnBBY2NvdW50OjpVc2VyTmFtZScgfCBhYnBMb2NhbGl6YXRpb25cclxuICAgIH19PC9sYWJlbFxyXG4gICAgPjxzcGFuPiAqIDwvc3BhblxyXG4gICAgPjxpbnB1dFxyXG4gICAgICBhdXRvZm9jdXNcclxuICAgICAgdHlwZT1cInRleHRcIlxyXG4gICAgICBpZD1cImlucHV0LXVzZXItbmFtZVwiXHJcbiAgICAgIGNsYXNzPVwiZm9ybS1jb250cm9sXCJcclxuICAgICAgZm9ybUNvbnRyb2xOYW1lPVwidXNlcm5hbWVcIlxyXG4gICAgICBhdXRvY29tcGxldGU9XCJ1c2VybmFtZVwiXHJcbiAgICAvPlxyXG4gIDwvZGl2PlxyXG4gIDxkaXYgY2xhc3M9XCJtYi0zIGZvcm0tZ3JvdXBcIj5cclxuICAgIDxsYWJlbCBmb3I9XCJpbnB1dC1lbWFpbC1hZGRyZXNzXCIgY2xhc3M9XCJmb3JtLWxhYmVsXCI+e3tcclxuICAgICAgJ0FicEFjY291bnQ6OkVtYWlsQWRkcmVzcycgfCBhYnBMb2NhbGl6YXRpb25cclxuICAgIH19PC9sYWJlbFxyXG4gICAgPjxzcGFuPiAqIDwvc3BhblxyXG4gICAgPjxpbnB1dCB0eXBlPVwiZW1haWxcIiBpZD1cImlucHV0LWVtYWlsLWFkZHJlc3NcIiBjbGFzcz1cImZvcm0tY29udHJvbFwiIGZvcm1Db250cm9sTmFtZT1cImVtYWlsXCIgLz5cclxuICA8L2Rpdj5cclxuICA8ZGl2IGNsYXNzPVwibWItMyBmb3JtLWdyb3VwXCI+XHJcbiAgICA8bGFiZWwgZm9yPVwiaW5wdXQtcGFzc3dvcmRcIiBjbGFzcz1cImZvcm0tbGFiZWxcIj57e1xyXG4gICAgICAnQWJwQWNjb3VudDo6UGFzc3dvcmQnIHwgYWJwTG9jYWxpemF0aW9uXHJcbiAgICB9fTwvbGFiZWxcclxuICAgID48c3Bhbj4gKiA8L3NwYW5cclxuICAgID48aW5wdXRcclxuICAgICAgdHlwZT1cInBhc3N3b3JkXCJcclxuICAgICAgaWQ9XCJpbnB1dC1wYXNzd29yZFwiXHJcbiAgICAgIGNsYXNzPVwiZm9ybS1jb250cm9sXCJcclxuICAgICAgZm9ybUNvbnRyb2xOYW1lPVwicGFzc3dvcmRcIlxyXG4gICAgICBhdXRvY29tcGxldGU9XCJjdXJyZW50LXBhc3N3b3JkXCJcclxuICAgIC8+XHJcbiAgPC9kaXY+XHJcbiAgPGFicC1idXR0b25cclxuICAgIFtsb2FkaW5nXT1cImluUHJvZ3Jlc3NcIlxyXG4gICAgYnV0dG9uVHlwZT1cInN1Ym1pdFwiXHJcbiAgICBuYW1lPVwiQWN0aW9uXCJcclxuICAgIGJ1dHRvbkNsYXNzPVwiYnRuLWJsb2NrIGJ0bi1sZyBtdC0zIGJ0biBidG4tcHJpbWFyeVwiXHJcbiAgPlxyXG4gICAge3sgJ0FicEFjY291bnQ6OlJlZ2lzdGVyJyB8IGFicExvY2FsaXphdGlvbiB9fVxyXG4gIDwvYWJwLWJ1dHRvbj5cclxuPC9mb3JtPlxyXG4iXX0=
1
+ import { AccountService } from '@abp/ng.account.core/proxy';
2
+ import { AuthService, ConfigStateService } from '@abp/ng.core';
3
+ import { getPasswordValidators, ToasterService } from '@abp/ng.theme.shared';
4
+ import { Component, Injector } from '@angular/core';
5
+ import { FormBuilder, Validators } from '@angular/forms';
6
+ import { throwError } from 'rxjs';
7
+ import { catchError, finalize, switchMap } from 'rxjs/operators';
8
+ import { getRedirectUrl } from '../../utils/auth-utils';
9
+ import * as i0 from "@angular/core";
10
+ import * as i1 from "@angular/forms";
11
+ import * as i2 from "@abp/ng.account.core/proxy";
12
+ import * as i3 from "@abp/ng.core";
13
+ import * as i4 from "@abp/ng.theme.shared";
14
+ import * as i5 from "@angular/router";
15
+ import * as i6 from "@angular/common";
16
+ import * as i7 from "@ngx-validate/core";
17
+ const { maxLength, required, email } = Validators;
18
+ export class RegisterComponent {
19
+ constructor(fb, accountService, configState, toasterService, authService, injector) {
20
+ this.fb = fb;
21
+ this.accountService = accountService;
22
+ this.configState = configState;
23
+ this.toasterService = toasterService;
24
+ this.authService = authService;
25
+ this.injector = injector;
26
+ this.isSelfRegistrationEnabled = true;
27
+ this.authWrapperKey = "Account.AuthWrapperComponent" /* AuthWrapper */;
28
+ }
29
+ ngOnInit() {
30
+ this.init();
31
+ this.buildForm();
32
+ }
33
+ init() {
34
+ this.isSelfRegistrationEnabled =
35
+ (this.configState.getSetting('Abp.Account.IsSelfRegistrationEnabled') || '').toLowerCase() !==
36
+ 'false';
37
+ if (!this.isSelfRegistrationEnabled) {
38
+ this.toasterService.warn({
39
+ key: 'AbpAccount::SelfRegistrationDisabledMessage',
40
+ defaultValue: 'Self registration is disabled.',
41
+ }, null, { life: 10000 });
42
+ return;
43
+ }
44
+ }
45
+ buildForm() {
46
+ this.form = this.fb.group({
47
+ username: ['', [required, maxLength(255)]],
48
+ password: ['', [required, ...getPasswordValidators(this.injector)]],
49
+ email: ['', [required, email]],
50
+ });
51
+ }
52
+ onSubmit() {
53
+ if (this.form.invalid)
54
+ return;
55
+ this.inProgress = true;
56
+ const newUser = {
57
+ userName: this.form.get('username').value,
58
+ password: this.form.get('password').value,
59
+ emailAddress: this.form.get('email').value,
60
+ appName: 'Angular',
61
+ };
62
+ this.accountService
63
+ .register(newUser)
64
+ .pipe(switchMap(() => this.authService.login({
65
+ username: newUser.userName,
66
+ password: newUser.password,
67
+ redirectUrl: getRedirectUrl(this.injector),
68
+ })), catchError(err => {
69
+ var _a, _b;
70
+ this.toasterService.error(((_a = err.error) === null || _a === void 0 ? void 0 : _a.error_description) ||
71
+ ((_b = err.error) === null || _b === void 0 ? void 0 : _b.error.message) ||
72
+ 'AbpAccount::DefaultErrorMessage', null, { life: 7000 });
73
+ return throwError(err);
74
+ }), finalize(() => (this.inProgress = false)))
75
+ .subscribe();
76
+ }
77
+ }
78
+ RegisterComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "12.2.13", ngImport: i0, type: RegisterComponent, deps: [{ token: i1.FormBuilder }, { token: i2.AccountService }, { token: i3.ConfigStateService }, { token: i4.ToasterService }, { token: i3.AuthService }, { token: i0.Injector }], target: i0.ɵɵFactoryTarget.Component });
79
+ RegisterComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "12.2.13", type: RegisterComponent, selector: "abp-register", ngImport: i0, template: "<h4>{{ 'AbpAccount::Register' | abpLocalization }}</h4>\n<strong>\n {{ 'AbpAccount::AlreadyRegistered' | abpLocalization }}\n <a class=\"text-decoration-none\" routerLink=\"/account/login\">{{\n 'AbpAccount::Login' | abpLocalization\n }}</a>\n</strong>\n<form\n *ngIf=\"isSelfRegistrationEnabled\"\n [formGroup]=\"form\"\n (ngSubmit)=\"onSubmit()\"\n validateOnSubmit\n class=\"mt-4\"\n>\n <div class=\"mb-3 form-group\">\n <label for=\"input-user-name\" class=\"form-label\">{{\n 'AbpAccount::UserName' | abpLocalization\n }}</label\n ><span> * </span\n ><input\n autofocus\n type=\"text\"\n id=\"input-user-name\"\n class=\"form-control\"\n formControlName=\"username\"\n autocomplete=\"username\"\n />\n </div>\n <div class=\"mb-3 form-group\">\n <label for=\"input-email-address\" class=\"form-label\">{{\n 'AbpAccount::EmailAddress' | abpLocalization\n }}</label\n ><span> * </span\n ><input type=\"email\" id=\"input-email-address\" class=\"form-control\" formControlName=\"email\" />\n </div>\n <div class=\"mb-3 form-group\">\n <label for=\"input-password\" class=\"form-label\">{{\n 'AbpAccount::Password' | abpLocalization\n }}</label\n ><span> * </span\n ><input\n type=\"password\"\n id=\"input-password\"\n class=\"form-control\"\n formControlName=\"password\"\n autocomplete=\"current-password\"\n />\n </div>\n <abp-button\n [loading]=\"inProgress\"\n buttonType=\"submit\"\n name=\"Action\"\n buttonClass=\"btn-block btn-lg mt-3 btn btn-primary\"\n >\n {{ 'AbpAccount::Register' | abpLocalization }}\n </abp-button>\n</form>\n", components: [{ type: i4.ButtonComponent, selector: "abp-button", inputs: ["buttonId", "buttonClass", "buttonType", "iconClass", "loading", "disabled", "attributes"], outputs: ["click", "focus", "blur", "abpClick", "abpFocus", "abpBlur"] }], directives: [{ type: i5.RouterLinkWithHref, selector: "a[routerLink],area[routerLink]", inputs: ["routerLink", "target", "queryParams", "fragment", "queryParamsHandling", "preserveFragment", "skipLocationChange", "replaceUrl", "state", "relativeTo"] }, { type: i6.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { type: i1.ɵNgNoValidate, selector: "form:not([ngNoForm]):not([ngNativeValidate])" }, { type: i1.NgControlStatusGroup, selector: "[formGroupName],[formArrayName],[ngModelGroup],[formGroup],form:not([ngNoForm]),[ngForm]" }, { type: i3.FormSubmitDirective, selector: "form[ngSubmit][formGroup]", inputs: ["debounce", "notValidateOnSubmit"], outputs: ["ngSubmit"] }, { type: i1.FormGroupDirective, selector: "[formGroup]", inputs: ["formGroup"], outputs: ["ngSubmit"], exportAs: ["ngForm"] }, { type: i7.ValidationGroupDirective, selector: "[formGroup],[formGroupName]", exportAs: ["validationGroup"] }, { type: i1.DefaultValueAccessor, selector: "input:not([type=checkbox])[formControlName],textarea[formControlName],input:not([type=checkbox])[formControl],textarea[formControl],input:not([type=checkbox])[ngModel],textarea[ngModel],[ngDefaultControl]" }, { type: i3.AutofocusDirective, selector: "[autofocus]", inputs: ["autofocus"] }, { type: i1.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { type: i1.FormControlName, selector: "[formControlName]", inputs: ["disabled", "formControlName", "ngModel"], outputs: ["ngModelChange"] }, { type: i7.ValidationDirective, selector: "[formControl],[formControlName]", exportAs: ["validationDirective"] }], pipes: { "abpLocalization": i3.LocalizationPipe } });
80
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.13", ngImport: i0, type: RegisterComponent, decorators: [{
81
+ type: Component,
82
+ args: [{
83
+ selector: 'abp-register',
84
+ templateUrl: './register.component.html',
85
+ }]
86
+ }], ctorParameters: function () { return [{ type: i1.FormBuilder }, { type: i2.AccountService }, { type: i3.ConfigStateService }, { type: i4.ToasterService }, { type: i3.AuthService }, { type: i0.Injector }]; } });
87
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicmVnaXN0ZXIuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vcGFja2FnZXMvYWNjb3VudC9zcmMvbGliL2NvbXBvbmVudHMvcmVnaXN0ZXIvcmVnaXN0ZXIuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vLi4vcGFja2FnZXMvYWNjb3VudC9zcmMvbGliL2NvbXBvbmVudHMvcmVnaXN0ZXIvcmVnaXN0ZXIuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLGNBQWMsRUFBZSxNQUFNLDRCQUE0QixDQUFDO0FBQ3pFLE9BQU8sRUFBRSxXQUFXLEVBQUUsa0JBQWtCLEVBQUUsTUFBTSxjQUFjLENBQUM7QUFDL0QsT0FBTyxFQUFFLHFCQUFxQixFQUFFLGNBQWMsRUFBRSxNQUFNLHNCQUFzQixDQUFDO0FBQzdFLE9BQU8sRUFBRSxTQUFTLEVBQUUsUUFBUSxFQUFVLE1BQU0sZUFBZSxDQUFDO0FBQzVELE9BQU8sRUFBRSxXQUFXLEVBQWEsVUFBVSxFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFDcEUsT0FBTyxFQUFFLFVBQVUsRUFBRSxNQUFNLE1BQU0sQ0FBQztBQUNsQyxPQUFPLEVBQUUsVUFBVSxFQUFFLFFBQVEsRUFBRSxTQUFTLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUVqRSxPQUFPLEVBQUUsY0FBYyxFQUFFLE1BQU0sd0JBQXdCLENBQUM7Ozs7Ozs7OztBQUV4RCxNQUFNLEVBQUUsU0FBUyxFQUFFLFFBQVEsRUFBRSxLQUFLLEVBQUUsR0FBRyxVQUFVLENBQUM7QUFNbEQsTUFBTSxPQUFPLGlCQUFpQjtJQVM1QixZQUNZLEVBQWUsRUFDZixjQUE4QixFQUM5QixXQUErQixFQUMvQixjQUE4QixFQUM5QixXQUF3QixFQUN4QixRQUFrQjtRQUxsQixPQUFFLEdBQUYsRUFBRSxDQUFhO1FBQ2YsbUJBQWMsR0FBZCxjQUFjLENBQWdCO1FB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QUFDLFVBQVUsR0FBRyxLQUFLLENBQUMsQ0FBQyxDQUMxQzthQUNBLFNBQVMsRUFBRSxDQUFDO0lBQ2pCLENBQUM7OytHQXJGVSxpQkFBaUI7bUdBQWpCLGlCQUFpQixvRENoQjlCLDJwREF5REE7NEZEekNhLGlCQUFpQjtrQkFKN0IsU0FBUzttQkFBQztvQkFDVCxRQUFRLEVBQUUsY0FBYztvQkFDeEIsV0FBVyxFQUFFLDJCQUEyQjtpQkFDekMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBBY2NvdW50U2VydmljZSwgUmVnaXN0ZXJEdG8gfSBmcm9tICdAYWJwL25nLmFjY291bnQuY29yZS9wcm94eSc7XG5pbXBvcnQgeyBBdXRoU2VydmljZSwgQ29uZmlnU3RhdGVTZXJ2aWNlIH0gZnJvbSAnQGFicC9uZy5jb3JlJztcbmltcG9ydCB7IGdldFBhc3N3b3JkVmFsaWRhdG9ycywgVG9hc3RlclNlcnZpY2UgfSBmcm9tICdAYWJwL25nLnRoZW1lLnNoYXJlZCc7XG5pbXBvcnQgeyBDb21wb25lbnQsIEluamVjdG9yLCBPbkluaXQgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IEZvcm1CdWlsZGVyLCBGb3JtR3JvdXAsIFZhbGlkYXRvcnMgfSBmcm9tICdAYW5ndWxhci9mb3Jtcyc7XG5pbXBvcnQgeyB0aHJvd0Vycm9yIH0gZnJvbSAncnhqcyc7XG5pbXBvcnQgeyBjYXRjaEVycm9yLCBmaW5hbGl6ZSwgc3dpdGNoTWFwIH0gZnJvbSAncnhqcy9vcGVyYXRvcnMnO1xuaW1wb3J0IHsgZUFjY291bnRDb21wb25lbnRzIH0gZnJvbSAnLi4vLi4vZW51bXMvY29tcG9uZW50cyc7XG5pbXBvcnQgeyBnZXRSZWRpcmVjdFVybCB9IGZyb20gJy4uLy4uL3V0aWxzL2F1dGgtdXRpbHMnO1xuXG5jb25zdCB7IG1heExlbmd0aCwgcmVxdWlyZWQsIGVtYWlsIH0gPSBWYWxpZGF0b3JzO1xuXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICdhYnAtcmVnaXN0ZXInLFxuICB0ZW1wbGF0ZVVybDogJy4vcmVnaXN0ZXIuY29tcG9uZW50Lmh0bWwnLFxufSlcbmV4cG9ydCBjbGFzcyBSZWdpc3RlckNvbXBvbmVudCBpbXBsZW1lbnRzIE9uSW5pdCB7XG4gIGZvcm06IEZvcm1Hcm91cDtcblxuICBpblByb2dyZXNzOiBib29sZWFuO1xuXG4gIGlzU2VsZlJlZ2lzdHJhdGlvbkVuYWJsZWQgPSB0cnVlO1xuXG4gIGF1dGhXcmFwcGVyS2V5ID0gZUFjY291bnRDb21wb25lbnRzLkF1dGhXcmFwcGVyO1xuXG4gIGNvbnN0cnVjdG9yKFxuICAgIHByb3RlY3RlZCBmYjogRm9ybUJ1aWxkZXIsXG4gICAgcHJvdGVjdGVkIGFjY291bnRTZXJ2aWNlOiBBY2NvdW50U2VydmljZSxcbiAgICBwcm90ZWN0ZWQgY29uZmlnU3RhdGU6IENvbmZpZ1N0YXRlU2VydmljZSxcbiAgICBwcm90ZWN0ZWQgdG9hc3RlclNlcnZpY2U6IFRvYXN0ZXJTZXJ2aWNlLFxuICAgIHByb3RlY3RlZCBhdXRoU2VydmljZTogQXV0aFNlcnZpY2UsXG4gICAgcHJvdGVjdGVkIGluamVjdG9yOiBJbmplY3RvcixcbiAgKSB7fVxuXG4gIG5nT25Jbml0KCkge1xuICAgIHRoaXMuaW5pdCgpO1xuICAgIHRoaXMuYnVpbGRGb3JtKCk7XG4gIH1cblxuICBwcm90ZWN0ZWQgaW5pdCgpIHtcbiAgICB0aGlzLmlzU2VsZlJlZ2lzdHJhdGlvbkVuYWJsZWQgPVxuICAgICAgKHRoaXMuY29uZmlnU3RhdGUuZ2V0U2V0dGluZygnQWJwLkFjY291bnQuSXNTZWxmUmVnaXN0cmF0aW9uRW5hYmxlZCcpIHx8ICcnKS50b0xvd2VyQ2FzZSgpICE9PVxuICAgICAgJ2ZhbHNlJztcblxuICAgIGlmICghdGhpcy5pc1NlbGZSZWdpc3RyYXRpb25FbmFibGVkKSB7XG4gICAgICB0aGlzLnRvYXN0ZXJTZXJ2aWNlLndhcm4oXG4gICAgICAgIHtcbiAgICAgICAgICBrZXk6ICdBYnBBY2NvdW50OjpTZWxmUmVnaXN0cmF0aW9uRGlzYWJsZWRNZXNzYWdlJyxcbiAgICAgICAgICBkZWZhdWx0VmFsdWU6ICdTZWxmIHJlZ2lzdHJhdGlvbiBpcyBkaXNhYmxlZC4nLFxuICAgICAgICB9LFxuICAgICAgICBudWxsLFxuICAgICAgICB7IGxpZmU6IDEwMDAwIH0sXG4gICAgICApO1xuICAgICAgcmV0dXJuO1xuICAgIH1cbiAgfVxuXG4gIHByb3RlY3RlZCBidWlsZEZvcm0oKSB7XG4gICAgdGhpcy5mb3JtID0gdGhpcy5mYi5ncm91cCh7XG4gICAgICB1c2VybmFtZTogWycnLCBbcmVxdWlyZWQsIG1heExlbmd0aCgyNTUpXV0sXG4gICAgICBwYXNzd29yZDogWycnLCBbcmVxdWlyZWQsIC4uLmdldFBhc3N3b3JkVmFsaWRhdG9ycyh0aGlzLmluamVjdG9yKV1dLFxuICAgICAgZW1haWw6IFsnJywgW3JlcXVpcmVkLCBlbWFpbF1dLFxuICAgIH0pO1xuICB9XG5cbiAgb25TdWJtaXQoKSB7XG4gICAgaWYgKHRoaXMuZm9ybS5pbnZhbGlkKSByZXR1cm47XG5cbiAgICB0aGlzLmluUHJvZ3Jlc3MgPSB0cnVlO1xuXG4gICAgY29uc3QgbmV3VXNlciA9IHtcbiAgICAgIHVzZXJOYW1lOiB0aGlzLmZvcm0uZ2V0KCd1c2VybmFtZScpLnZhbHVlLFxuICAgICAgcGFzc3dvcmQ6IHRoaXMuZm9ybS5nZXQoJ3Bhc3N3b3JkJykudmFsdWUsXG4gICAgICBlbWFpbEFkZHJlc3M6IHRoaXMuZm9ybS5nZXQoJ2VtYWlsJykudmFsdWUsXG4gICAgICBhcHBOYW1lOiAnQW5ndWxhcicsXG4gICAgfSBhcyBSZWdpc3RlckR0bztcblxuICAgIHRoaXMuYWNjb3VudFNlcnZpY2VcbiAgICAgIC5yZWdpc3RlcihuZXdVc2VyKVxuICAgICAgLnBpcGUoXG4gICAgICAgIHN3aXRjaE1hcCgoKSA9PlxuICAgICAgICAgIHRoaXMuYXV0aFNlcnZpY2UubG9naW4oe1xuICAgICAgICAgICAgdXNlcm5hbWU6IG5ld1VzZXIudXNlck5hbWUsXG4gICAgICAgICAgICBwYXNzd29yZDogbmV3VXNlci5wYXNzd29yZCxcbiAgICAgICAgICAgIHJlZGlyZWN0VXJsOiBnZXRSZWRpcmVjdFVybCh0aGlzLmluamVjdG9yKSxcbiAgICAgICAgICB9KSxcbiAgICAgICAgKSxcbiAgICAgICAgY2F0Y2hFcnJvcihlcnIgPT4ge1xuICAgICAgICAgIHRoaXMudG9hc3RlclNlcnZpY2UuZXJyb3IoXG4gICAgICAgICAgICBlcnIuZXJyb3I/LmVycm9yX2Rlc2NyaXB0aW9uIHx8XG4gICAgICAgICAgICAgIGVyci5lcnJvcj8uZXJyb3IubWVzc2FnZSB8fFxuICAgICAgICAgICAgICAnQWJwQWNjb3VudDo6RGVmYXVsdEVycm9yTWVzc2FnZScsXG4gICAgICAgICAgICBudWxsLFxuICAgICAgICAgICAgeyBsaWZlOiA3MDAwIH0sXG4gICAgICAgICAgKTtcblxuICAgICAgICAgIHJldHVybiB0aHJvd0Vycm9yKGVycik7XG4gICAgICAgIH0pLFxuICAgICAgICBmaW5hbGl6ZSgoKSA9PiAodGhpcy5pblByb2dyZXNzID0gZmFsc2UpKSxcbiAgICAgIClcbiAgICAgIC5zdWJzY3JpYmUoKTtcbiAgfVxufVxuIiwiPGg0Pnt7ICdBYnBBY2NvdW50OjpSZWdpc3RlcicgfCBhYnBMb2NhbGl6YXRpb24gfX08L2g0PlxuPHN0cm9uZz5cbiAge3sgJ0FicEFjY291bnQ6OkFscmVhZHlSZWdpc3RlcmVkJyB8IGFicExvY2FsaXphdGlvbiB9fVxuICA8YSBjbGFzcz1cInRleHQtZGVjb3JhdGlvbi1ub25lXCIgcm91dGVyTGluaz1cIi9hY2NvdW50L2xvZ2luXCI+e3tcbiAgICAnQWJwQWNjb3VudDo6TG9naW4nIHwgYWJwTG9jYWxpemF0aW9uXG4gIH19PC9hPlxuPC9zdHJvbmc+XG48Zm9ybVxuICAqbmdJZj1cImlzU2VsZlJlZ2lzdHJhdGlvbkVuYWJsZWRcIlxuICBbZm9ybUdyb3VwXT1cImZvcm1cIlxuICAobmdTdWJtaXQpPVwib25TdWJtaXQoKVwiXG4gIHZhbGlkYXRlT25TdWJtaXRcbiAgY2xhc3M9XCJtdC00XCJcbj5cbiAgPGRpdiBjbGFzcz1cIm1iLTMgZm9ybS1ncm91cFwiPlxuICAgIDxsYWJlbCBmb3I9XCJpbnB1dC11c2VyLW5hbWVcIiBjbGFzcz1cImZvcm0tbGFiZWxcIj57e1xuICAgICAgJ0FicEFjY291bnQ6OlVzZXJOYW1lJyB8IGFicExvY2FsaXphdGlvblxuICAgIH19PC9sYWJlbFxuICAgID48c3Bhbj4gKiA8L3NwYW5cbiAgICA+PGlucHV0XG4gICAgICBhdXRvZm9jdXNcbiAgICAgIHR5cGU9XCJ0ZXh0XCJcbiAgICAgIGlkPVwiaW5wdXQtdXNlci1uYW1lXCJcbiAgICAgIGNsYXNzPVwiZm9ybS1jb250cm9sXCJcbiAgICAgIGZvcm1Db250cm9sTmFtZT1cInVzZXJuYW1lXCJcbiAgICAgIGF1dG9jb21wbGV0ZT1cInVzZXJuYW1lXCJcbiAgICAvPlxuICA8L2Rpdj5cbiAgPGRpdiBjbGFzcz1cIm1iLTMgZm9ybS1ncm91cFwiPlxuICAgIDxsYWJlbCBmb3I9XCJpbnB1dC1lbWFpbC1hZGRyZXNzXCIgY2xhc3M9XCJmb3JtLWxhYmVsXCI+e3tcbiAgICAgICdBYnBBY2NvdW50OjpFbWFpbEFkZHJlc3MnIHwgYWJwTG9jYWxpemF0aW9uXG4gICAgfX08L2xhYmVsXG4gICAgPjxzcGFuPiAqIDwvc3BhblxuICAgID48aW5wdXQgdHlwZT1cImVtYWlsXCIgaWQ9XCJpbnB1dC1lbWFpbC1hZGRyZXNzXCIgY2xhc3M9XCJmb3JtLWNvbnRyb2xcIiBmb3JtQ29udHJvbE5hbWU9XCJlbWFpbFwiIC8+XG4gIDwvZGl2PlxuICA8ZGl2IGNsYXNzPVwibWItMyBmb3JtLWdyb3VwXCI+XG4gICAgPGxhYmVsIGZvcj1cImlucHV0LXBhc3N3b3JkXCIgY2xhc3M9XCJmb3JtLWxhYmVsXCI+e3tcbiAgICAgICdBYnBBY2NvdW50OjpQYXNzd29yZCcgfCBhYnBMb2NhbGl6YXRpb25cbiAgICB9fTwvbGFiZWxcbiAgICA+PHNwYW4+ICogPC9zcGFuXG4gICAgPjxpbnB1dFxuICAgICAgdHlwZT1cInBhc3N3b3JkXCJcbiAgICAgIGlkPVwiaW5wdXQtcGFzc3dvcmRcIlxuICAgICAgY2xhc3M9XCJmb3JtLWNvbnRyb2xcIlxuICAgICAgZm9ybUNvbnRyb2xOYW1lPVwicGFzc3dvcmRcIlxuICAgICAgYXV0b2NvbXBsZXRlPVwiY3VycmVudC1wYXNzd29yZFwiXG4gICAgLz5cbiAgPC9kaXY+XG4gIDxhYnAtYnV0dG9uXG4gICAgW2xvYWRpbmddPVwiaW5Qcm9ncmVzc1wiXG4gICAgYnV0dG9uVHlwZT1cInN1Ym1pdFwiXG4gICAgbmFtZT1cIkFjdGlvblwiXG4gICAgYnV0dG9uQ2xhc3M9XCJidG4tYmxvY2sgYnRuLWxnIG10LTMgYnRuIGJ0bi1wcmltYXJ5XCJcbiAgPlxuICAgIHt7ICdBYnBBY2NvdW50OjpSZWdpc3RlcicgfCBhYnBMb2NhbGl6YXRpb24gfX1cbiAgPC9hYnAtYnV0dG9uPlxuPC9mb3JtPlxuIl19