@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.
- package/README.md +3 -3
- package/abp-ng.account.d.ts +5 -5
- package/bundles/abp-ng.account-config.umd.js +78 -78
- package/bundles/abp-ng.account-config.umd.js.map +1 -1
- package/bundles/abp-ng.account.umd.js +893 -893
- package/bundles/abp-ng.account.umd.js.map +1 -1
- package/config/abp-ng.account-config.d.ts +5 -5
- package/config/account-config.module.d.ts +8 -8
- package/config/enums/index.d.ts +1 -1
- package/config/enums/route-names.d.ts +8 -8
- package/config/providers/index.d.ts +1 -1
- package/config/providers/route.provider.d.ts +8 -8
- package/config/public-api.d.ts +3 -3
- package/config/utils/factories.d.ts +2 -2
- package/esm2015/abp-ng.account.js +4 -4
- package/esm2015/config/abp-ng.account-config.js +4 -4
- package/esm2015/config/account-config.module.js +27 -27
- package/esm2015/config/enums/index.js +2 -2
- package/esm2015/config/enums/route-names.js +2 -2
- package/esm2015/config/providers/index.js +2 -2
- package/esm2015/config/providers/route.provider.js +50 -50
- package/esm2015/config/public-api.js +4 -4
- package/esm2015/config/utils/factories.js +11 -11
- package/esm2015/lib/account-routing.module.js +89 -89
- package/esm2015/lib/account.module.js +85 -85
- package/esm2015/lib/components/change-password/change-password.component.js +90 -90
- package/esm2015/lib/components/forgot-password/forgot-password.component.js +46 -46
- package/esm2015/lib/components/index.js +8 -8
- package/esm2015/lib/components/login/login.component.js +68 -68
- package/esm2015/lib/components/manage-profile/manage-profile.component.js +50 -50
- package/esm2015/lib/components/personal-settings/personal-settings.component.js +59 -59
- package/esm2015/lib/components/register/register.component.js +87 -87
- package/esm2015/lib/components/reset-password/reset-password.component.js +71 -71
- package/esm2015/lib/enums/components.js +2 -2
- package/esm2015/lib/enums/index.js +2 -2
- package/esm2015/lib/guards/authentication-flow.guard.js +21 -21
- package/esm2015/lib/guards/index.js +2 -2
- package/esm2015/lib/models/account.js +3 -3
- package/esm2015/lib/models/config-options.js +2 -2
- package/esm2015/lib/models/index.js +3 -3
- package/esm2015/lib/services/index.js +2 -2
- package/esm2015/lib/services/manage-profile.state.service.js +27 -27
- package/esm2015/lib/tokens/config-options.token.js +3 -3
- package/esm2015/lib/tokens/index.js +2 -2
- package/esm2015/lib/utils/auth-utils.js +8 -8
- package/esm2015/lib/utils/factory-utils.js +4 -4
- package/esm2015/public-api.js +8 -8
- package/fesm2015/abp-ng.account-config.js +75 -75
- package/fesm2015/abp-ng.account-config.js.map +1 -1
- package/fesm2015/abp-ng.account.js +545 -545
- package/fesm2015/abp-ng.account.js.map +1 -1
- package/lib/account-routing.module.d.ts +7 -7
- package/lib/account.module.d.ts +22 -22
- package/lib/components/change-password/change-password.component.d.ts +24 -24
- package/lib/components/forgot-password/forgot-password.component.d.ts +14 -14
- package/lib/components/index.d.ts +7 -7
- package/lib/components/login/login.component.d.ts +24 -24
- package/lib/components/manage-profile/manage-profile.component.d.ts +18 -18
- package/lib/components/personal-settings/personal-settings.component.d.ts +21 -21
- package/lib/components/register/register.component.d.ts +26 -26
- package/lib/components/reset-password/reset-password.component.d.ts +22 -22
- package/lib/enums/components.d.ts +11 -11
- package/lib/enums/index.d.ts +1 -1
- package/lib/guards/authentication-flow.guard.d.ts +10 -10
- package/lib/guards/index.d.ts +1 -1
- package/lib/models/account.d.ts +14 -14
- package/lib/models/config-options.d.ts +3 -3
- package/lib/models/index.d.ts +2 -2
- package/lib/services/index.d.ts +1 -1
- package/lib/services/manage-profile.state.service.d.ts +29 -29
- package/lib/tokens/config-options.token.d.ts +3 -3
- package/lib/tokens/index.d.ts +1 -1
- package/lib/utils/auth-utils.d.ts +2 -2
- package/lib/utils/factory-utils.d.ts +4 -4
- package/package.json +4 -4
- 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>\
|
|
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,
|
|
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()\">\
|
|
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,
|
|
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>\
|
|
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,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicmVnaXN0ZXIuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vcGFja2FnZXMvYWNjb3VudC9zcmMvbGliL2NvbXBvbmVudHMvcmVnaXN0ZXIvcmVnaXN0ZXIuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vLi4vcGFja2FnZXMvYWNjb3VudC9zcmMvbGliL2NvbXBvbmVudHMvcmVnaXN0ZXIvcmVnaXN0ZXIuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLGNBQWMsRUFBZSxNQUFNLDRCQUE0QixDQUFDO0FBQ3pFLE9BQU8sRUFBRSxXQUFXLEVBQUUsa0JBQWtCLEVBQUUsTUFBTSxjQUFjLENBQUM7QUFDL0QsT0FBTyxFQUFFLHFCQUFxQixFQUFFLGNBQWMsRUFBRSxNQUFNLHNCQUFzQixDQUFDO0FBQzdFLE9BQU8sRUFBRSxTQUFTLEVBQUUsUUFBUSxFQUFVLE1BQU0sZUFBZSxDQUFDO0FBQzVELE9BQU8sRUFBRSxXQUFXLEVBQWEsVUFBVSxFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFDcEUsT0FBTyxFQUFFLFVBQVUsRUFBRSxNQUFNLE1BQU0sQ0FBQztBQUNsQyxPQUFPLEVBQUUsVUFBVSxFQUFFLFFBQVEsRUFBRSxTQUFTLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUVqRSxPQUFPLEVBQUUsY0FBYyxFQUFFLE1BQU0sd0JBQXdCLENBQUM7Ozs7Ozs7OztBQUV4RCxNQUFNLEVBQUUsU0FBUyxFQUFFLFFBQVEsRUFBRSxLQUFLLEVBQUUsR0FBRyxVQUFVLENBQUM7QUFNbEQsTUFBTSxPQUFPLGlCQUFpQjtJQVM1QixZQUNZLEVBQWUsRUFDZixjQUE4QixFQUM5QixXQUErQixFQUMvQixjQUE4QixFQUM5QixXQUF3QixFQUN4QixRQUFrQjtRQUxsQixPQUFFLEdBQUYsRUFBRSxDQUFhO1FBQ2YsbUJBQWMsR0FBZCxjQUFjLENBQWdCO1FBQzlCLGdCQUFXLEdBQVgsV0FBVyxDQUFvQjtRQUMvQixtQkFBYyxHQUFkLGNBQWMsQ0FBZ0I7UUFDOUIsZ0JBQVcsR0FBWCxXQUFXLENBQWE7UUFDeEIsYUFBUSxHQUFSLFFBQVEsQ0FBVTtRQVY5Qiw4QkFBeUIsR0FBRyxJQUFJLENBQUM7UUFFakMsbUJBQWMsb0RBQWtDO0lBUzdDLENBQUM7SUFFSixRQUFRO1FBQ04sSUFBSSxDQUFDLElBQUksRUFBRSxDQUFDO1FBQ1osSUFBSSxDQUFDLFNBQVMsRUFBRSxDQUFDO0lBQ25CLENBQUM7SUFFUyxJQUFJO1FBQ1osSUFBSSxDQUFDLHlCQUF5QjtZQUM1QixDQUFDLElBQUksQ0FBQyxXQUFXLENBQUMsVUFBVSxDQUFDLHVDQUF1QyxDQUFDLElBQUksRUFBRSxDQUFDLENBQUMsV0FBVyxFQUFFO2dCQUMxRixPQUFPLENBQUM7UUFFVixJQUFJLENBQUMsSUFBSSxDQUFDLHlCQUF5QixFQUFFO1lBQ25DLElBQUksQ0FBQyxjQUFjLENBQUMsSUFBSSxDQUN0QjtnQkFDRSxHQUFHLEVBQUUsNkNBQTZDO2dCQUNsRCxZQUFZLEVBQUUsZ0NBQWdDO2FBQy9DLEVBQ0QsSUFBSSxFQUNKLEVBQUUsSUFBSSxFQUFFLEtBQUssRUFBRSxDQUNoQixDQUFDO1lBQ0YsT0FBTztTQUNSO0lBQ0gsQ0FBQztJQUVTLFNBQVM7UUFDakIsSUFBSSxDQUFDLElBQUksR0FBRyxJQUFJLENBQUMsRUFBRSxDQUFDLEtBQUssQ0FBQztZQUN4QixRQUFRLEVBQUUsQ0FBQyxFQUFFLEVBQUUsQ0FBQyxRQUFRLEVBQUUsU0FBUyxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUM7WUFDMUMsUUFBUSxFQUFFLENBQUMsRUFBRSxFQUFFLENBQUMsUUFBUSxFQUFFLEdBQUcscUJBQXFCLENBQUMsSUFBSSxDQUFDLFFBQVEsQ0FBQyxDQUFDLENBQUM7WUFDbkUsS0FBSyxFQUFFLENBQUMsRUFBRSxFQUFFLENBQUMsUUFBUSxFQUFFLEtBQUssQ0FBQyxDQUFDO1NBQy9CLENBQUMsQ0FBQztJQUNMLENBQUM7SUFFRCxRQUFRO1FBQ04sSUFBSSxJQUFJLENBQUMsSUFBSSxDQUFDLE9BQU87WUFBRSxPQUFPO1FBRTlCLElBQUksQ0FBQyxVQUFVLEdBQUcsSUFBSSxDQUFDO1FBRXZCLE1BQU0sT0FBTyxHQUFHO1lBQ2QsUUFBUSxFQUFFLElBQUksQ0FBQyxJQUFJLENBQUMsR0FBRyxDQUFDLFVBQVUsQ0FBQyxDQUFDLEtBQUs7WUFDekMsUUFBUSxFQUFFLElBQUksQ0FBQyxJQUFJLENBQUMsR0FBRyxDQUFDLFVBQVUsQ0FBQyxDQUFDLEtBQUs7WUFDekMsWUFBWSxFQUFFLElBQUksQ0FBQyxJQUFJLENBQUMsR0FBRyxDQUFDLE9BQU8sQ0FBQyxDQUFDLEtBQUs7WUFDMUMsT0FBTyxFQUFFLFNBQVM7U0FDSixDQUFDO1FBRWpCLElBQUksQ0FBQyxjQUFjO2FBQ2hCLFFBQVEsQ0FBQyxPQUFPLENBQUM7YUFDakIsSUFBSSxDQUNILFNBQVMsQ0FBQyxHQUFHLEVBQUUsQ0FDYixJQUFJLENBQUMsV0FBVyxDQUFDLEtBQUssQ0FBQztZQUNyQixRQUFRLEVBQUUsT0FBTyxDQUFDLFFBQVE7WUFDMUIsUUFBUSxFQUFFLE9BQU8sQ0FBQyxRQUFRO1lBQzFCLFdBQVcsRUFBRSxjQUFjLENBQUMsSUFBSSxDQUFDLFFBQVEsQ0FBQztTQUMzQyxDQUFDLENBQ0gsRUFDRCxVQUFVLENBQUMsR0FBRyxDQUFDLEVBQUU7O1lBQ2YsSUFBSSxDQUFDLGNBQWMsQ0FBQyxLQUFLLENBQ3ZCLENBQUEsTUFBQSxHQUFHLENBQUMsS0FBSywwQ0FBRSxpQkFBaUI7aUJBQzFCLE1BQUEsR0FBRyxDQUFDLEtBQUssMENBQUUsS0FBSyxDQUFDLE9BQU8sQ0FBQTtnQkFDeEIsaUNBQWlDLEVBQ25DLElBQUksRUFDSixFQUFFLElBQUksRUFBRSxJQUFJLEVBQUUsQ0FDZixDQUFDO1lBRUYsT0FBTyxVQUFVLENBQUMsR0FBRyxDQUFDLENBQUM7UUFDekIsQ0FBQyxDQUFDLEVBQ0YsUUFBUSxDQUFDLEdBQUcsRUFBRSxDQUFDLENBQUMsSUFBSSxDQUFDLFVBQVUsR0FBRyxLQUFLLENBQUMsQ0FBQyxDQUMxQzthQUNBLFNBQVMsRUFBRSxDQUFDO0lBQ2pCLENBQUM7OytHQXJGVSxpQkFBaUI7bUdBQWpCLGlCQUFpQixvRENoQjlCLDZ3REF5REE7NEZEekNhLGlCQUFpQjtrQkFKN0IsU0FBUzttQkFBQztvQkFDVCxRQUFRLEVBQUUsY0FBYztvQkFDeEIsV0FBVyxFQUFFLDJCQUEyQjtpQkFDekMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBBY2NvdW50U2VydmljZSwgUmVnaXN0ZXJEdG8gfSBmcm9tICdAYWJwL25nLmFjY291bnQuY29yZS9wcm94eSc7XHJcbmltcG9ydCB7IEF1dGhTZXJ2aWNlLCBDb25maWdTdGF0ZVNlcnZpY2UgfSBmcm9tICdAYWJwL25nLmNvcmUnO1xyXG5pbXBvcnQgeyBnZXRQYXNzd29yZFZhbGlkYXRvcnMsIFRvYXN0ZXJTZXJ2aWNlIH0gZnJvbSAnQGFicC9uZy50aGVtZS5zaGFyZWQnO1xyXG5pbXBvcnQgeyBDb21wb25lbnQsIEluamVjdG9yLCBPbkluaXQgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcclxuaW1wb3J0IHsgRm9ybUJ1aWxkZXIsIEZvcm1Hcm91cCwgVmFsaWRhdG9ycyB9IGZyb20gJ0Bhbmd1bGFyL2Zvcm1zJztcclxuaW1wb3J0IHsgdGhyb3dFcnJvciB9IGZyb20gJ3J4anMnO1xyXG5pbXBvcnQgeyBjYXRjaEVycm9yLCBmaW5hbGl6ZSwgc3dpdGNoTWFwIH0gZnJvbSAncnhqcy9vcGVyYXRvcnMnO1xyXG5pbXBvcnQgeyBlQWNjb3VudENvbXBvbmVudHMgfSBmcm9tICcuLi8uLi9lbnVtcy9jb21wb25lbnRzJztcclxuaW1wb3J0IHsgZ2V0UmVkaXJlY3RVcmwgfSBmcm9tICcuLi8uLi91dGlscy9hdXRoLXV0aWxzJztcclxuXHJcbmNvbnN0IHsgbWF4TGVuZ3RoLCByZXF1aXJlZCwgZW1haWwgfSA9IFZhbGlkYXRvcnM7XHJcblxyXG5AQ29tcG9uZW50KHtcclxuICBzZWxlY3RvcjogJ2FicC1yZWdpc3RlcicsXHJcbiAgdGVtcGxhdGVVcmw6ICcuL3JlZ2lzdGVyLmNvbXBvbmVudC5odG1sJyxcclxufSlcclxuZXhwb3J0IGNsYXNzIFJlZ2lzdGVyQ29tcG9uZW50IGltcGxlbWVudHMgT25Jbml0IHtcclxuICBmb3JtOiBGb3JtR3JvdXA7XHJcblxyXG4gIGluUHJvZ3Jlc3M6IGJvb2xlYW47XHJcblxyXG4gIGlzU2VsZlJlZ2lzdHJhdGlvbkVuYWJsZWQgPSB0cnVlO1xyXG5cclxuICBhdXRoV3JhcHBlcktleSA9IGVBY2NvdW50Q29tcG9uZW50cy5BdXRoV3JhcHBlcjtcclxuXHJcbiAgY29uc3RydWN0b3IoXHJcbiAgICBwcm90ZWN0ZWQgZmI6IEZvcm1CdWlsZGVyLFxyXG4gICAgcHJvdGVjdGVkIGFjY291bnRTZXJ2aWNlOiBBY2NvdW50U2VydmljZSxcclxuICAgIHByb3RlY3RlZCBjb25maWdTdGF0ZTogQ29uZmlnU3RhdGVTZXJ2aWNlLFxyXG4gICAgcHJvdGVjdGVkIHRvYXN0ZXJTZXJ2aWNlOiBUb2FzdGVyU2VydmljZSxcclxuICAgIHByb3RlY3RlZCBhdXRoU2VydmljZTogQXV0aFNlcnZpY2UsXHJcbiAgICBwcm90ZWN0ZWQgaW5qZWN0b3I6IEluamVjdG9yLFxyXG4gICkge31cclxuXHJcbiAgbmdPbkluaXQoKSB7XHJcbiAgICB0aGlzLmluaXQoKTtcclxuICAgIHRoaXMuYnVpbGRGb3JtKCk7XHJcbiAgfVxyXG5cclxuICBwcm90ZWN0ZWQgaW5pdCgpIHtcclxuICAgIHRoaXMuaXNTZWxmUmVnaXN0cmF0aW9uRW5hYmxlZCA9XHJcbiAgICAgICh0aGlzLmNvbmZpZ1N0YXRlLmdldFNldHRpbmcoJ0FicC5BY2NvdW50LklzU2VsZlJlZ2lzdHJhdGlvbkVuYWJsZWQnKSB8fCAnJykudG9Mb3dlckNhc2UoKSAhPT1cclxuICAgICAgJ2ZhbHNlJztcclxuXHJcbiAgICBpZiAoIXRoaXMuaXNTZWxmUmVnaXN0cmF0aW9uRW5hYmxlZCkge1xyXG4gICAgICB0aGlzLnRvYXN0ZXJTZXJ2aWNlLndhcm4oXHJcbiAgICAgICAge1xyXG4gICAgICAgICAga2V5OiAnQWJwQWNjb3VudDo6U2VsZlJlZ2lzdHJhdGlvbkRpc2FibGVkTWVzc2FnZScsXHJcbiAgICAgICAgICBkZWZhdWx0VmFsdWU6ICdTZWxmIHJlZ2lzdHJhdGlvbiBpcyBkaXNhYmxlZC4nLFxyXG4gICAgICAgIH0sXHJcbiAgICAgICAgbnVsbCxcclxuICAgICAgICB7IGxpZmU6IDEwMDAwIH0sXHJcbiAgICAgICk7XHJcbiAgICAgIHJldHVybjtcclxuICAgIH1cclxuICB9XHJcblxyXG4gIHByb3RlY3RlZCBidWlsZEZvcm0oKSB7XHJcbiAgICB0aGlzLmZvcm0gPSB0aGlzLmZiLmdyb3VwKHtcclxuICAgICAgdXNlcm5hbWU6IFsnJywgW3JlcXVpcmVkLCBtYXhMZW5ndGgoMjU1KV1dLFxyXG4gICAgICBwYXNzd29yZDogWycnLCBbcmVxdWlyZWQsIC4uLmdldFBhc3N3b3JkVmFsaWRhdG9ycyh0aGlzLmluamVjdG9yKV1dLFxyXG4gICAgICBlbWFpbDogWycnLCBbcmVxdWlyZWQsIGVtYWlsXV0sXHJcbiAgICB9KTtcclxuICB9XHJcblxyXG4gIG9uU3VibWl0KCkge1xyXG4gICAgaWYgKHRoaXMuZm9ybS5pbnZhbGlkKSByZXR1cm47XHJcblxyXG4gICAgdGhpcy5pblByb2dyZXNzID0gdHJ1ZTtcclxuXHJcbiAgICBjb25zdCBuZXdVc2VyID0ge1xyXG4gICAgICB1c2VyTmFtZTogdGhpcy5mb3JtLmdldCgndXNlcm5hbWUnKS52YWx1ZSxcclxuICAgICAgcGFzc3dvcmQ6IHRoaXMuZm9ybS5nZXQoJ3Bhc3N3b3JkJykudmFsdWUsXHJcbiAgICAgIGVtYWlsQWRkcmVzczogdGhpcy5mb3JtLmdldCgnZW1haWwnKS52YWx1ZSxcclxuICAgICAgYXBwTmFtZTogJ0FuZ3VsYXInLFxyXG4gICAgfSBhcyBSZWdpc3RlckR0bztcclxuXHJcbiAgICB0aGlzLmFjY291bnRTZXJ2aWNlXHJcbiAgICAgIC5yZWdpc3RlcihuZXdVc2VyKVxyXG4gICAgICAucGlwZShcclxuICAgICAgICBzd2l0Y2hNYXAoKCkgPT5cclxuICAgICAgICAgIHRoaXMuYXV0aFNlcnZpY2UubG9naW4oe1xyXG4gICAgICAgICAgICB1c2VybmFtZTogbmV3VXNlci51c2VyTmFtZSxcclxuICAgICAgICAgICAgcGFzc3dvcmQ6IG5ld1VzZXIucGFzc3dvcmQsXHJcbiAgICAgICAgICAgIHJlZGlyZWN0VXJsOiBnZXRSZWRpcmVjdFVybCh0aGlzLmluamVjdG9yKSxcclxuICAgICAgICAgIH0pLFxyXG4gICAgICAgICksXHJcbiAgICAgICAgY2F0Y2hFcnJvcihlcnIgPT4ge1xyXG4gICAgICAgICAgdGhpcy50b2FzdGVyU2VydmljZS5lcnJvcihcclxuICAgICAgICAgICAgZXJyLmVycm9yPy5lcnJvcl9kZXNjcmlwdGlvbiB8fFxyXG4gICAgICAgICAgICAgIGVyci5lcnJvcj8uZXJyb3IubWVzc2FnZSB8fFxyXG4gICAgICAgICAgICAgICdBYnBBY2NvdW50OjpEZWZhdWx0RXJyb3JNZXNzYWdlJyxcclxuICAgICAgICAgICAgbnVsbCxcclxuICAgICAgICAgICAgeyBsaWZlOiA3MDAwIH0sXHJcbiAgICAgICAgICApO1xyXG5cclxuICAgICAgICAgIHJldHVybiB0aHJvd0Vycm9yKGVycik7XHJcbiAgICAgICAgfSksXHJcbiAgICAgICAgZmluYWxpemUoKCkgPT4gKHRoaXMuaW5Qcm9ncmVzcyA9IGZhbHNlKSksXHJcbiAgICAgIClcclxuICAgICAgLnN1YnNjcmliZSgpO1xyXG4gIH1cclxufVxyXG4iLCI8aDQ+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
|