@abp/ng.account 5.3.3 → 5.3.5
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/esm2020/lib/account.module.mjs +6 -1
- package/esm2020/lib/components/personal-settings/personal-settings.component.mjs +51 -16
- package/esm2020/lib/models/config-options.mjs +1 -1
- package/esm2020/lib/tokens/index.mjs +2 -1
- package/esm2020/lib/tokens/re-login-confirmation.token.mjs +3 -0
- package/fesm2015/abp-ng.account.mjs +55 -13
- package/fesm2015/abp-ng.account.mjs.map +1 -1
- package/fesm2020/abp-ng.account.mjs +52 -13
- package/fesm2020/abp-ng.account.mjs.map +1 -1
- package/lib/components/personal-settings/personal-settings.component.d.ts +11 -2
- package/lib/models/config-options.d.ts +1 -0
- package/lib/tokens/index.d.ts +1 -0
- package/lib/tokens/re-login-confirmation.token.d.ts +2 -0
- package/lib/utils/factory-utils.d.ts +1 -0
- package/package.json +4 -4
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"abp-ng.account.mjs","sources":["../../../../packages/account/src/lib/components/forgot-password/forgot-password.component.ts","../../../../packages/account/src/lib/components/forgot-password/forgot-password.component.html","../../../../packages/account/src/lib/tokens/config-options.token.ts","../../../../packages/account/src/lib/utils/auth-utils.ts","../../../../packages/account/src/lib/components/login/login.component.ts","../../../../packages/account/src/lib/components/login/login.component.html","../../../../packages/account/src/lib/services/manage-profile.state.service.ts","../../../../packages/account/src/lib/components/change-password/change-password.component.ts","../../../../packages/account/src/lib/components/change-password/change-password.component.html","../../../../packages/account/src/lib/components/personal-settings/personal-settings.component.ts","../../../../packages/account/src/lib/components/personal-settings/personal-settings.component.html","../../../../packages/account/src/lib/components/manage-profile/manage-profile.component.ts","../../../../packages/account/src/lib/components/manage-profile/manage-profile.component.html","../../../../packages/account/src/lib/components/register/register.component.ts","../../../../packages/account/src/lib/components/register/register.component.html","../../../../packages/account/src/lib/components/reset-password/reset-password.component.ts","../../../../packages/account/src/lib/components/reset-password/reset-password.component.html","../../../../packages/account/src/lib/guards/authentication-flow.guard.ts","../../../../packages/account/src/lib/account-routing.module.ts","../../../../packages/account/src/lib/utils/factory-utils.ts","../../../../packages/account/src/lib/account.module.ts","../../../../packages/account/src/abp-ng.account.ts"],"sourcesContent":["import { AccountService } from '@abp/ng.account.core/proxy';\r\nimport { Component } from '@angular/core';\r\nimport { FormBuilder, FormGroup, Validators } from '@angular/forms';\r\nimport { finalize } from 'rxjs/operators';\r\n\r\n@Component({\r\n selector: 'abp-forgot-password',\r\n templateUrl: 'forgot-password.component.html',\r\n})\r\nexport class ForgotPasswordComponent {\r\n form: FormGroup;\r\n\r\n inProgress: boolean;\r\n\r\n isEmailSent = false;\r\n\r\n constructor(private fb: FormBuilder, private accountService: AccountService) {\r\n this.form = this.fb.group({\r\n email: ['', [Validators.required, Validators.email]],\r\n });\r\n }\r\n\r\n onSubmit() {\r\n if (this.form.invalid) return;\r\n\r\n this.inProgress = true;\r\n\r\n this.accountService\r\n .sendPasswordResetCode({\r\n email: this.form.get('email').value,\r\n appName: 'Angular',\r\n })\r\n .pipe(finalize(() => (this.inProgress = false)))\r\n .subscribe(() => {\r\n this.isEmailSent = true;\r\n });\r\n }\r\n}\r\n","<h4>{{ 'AbpAccount::ForgotPassword' | abpLocalization }}</h4>\r\n\r\n<form\r\n *ngIf=\"!isEmailSent; else emailSentTemplate\"\r\n [formGroup]=\"form\"\r\n (ngSubmit)=\"onSubmit()\"\r\n validateOnSubmit\r\n>\r\n <p>{{ 'AbpAccount::SendPasswordResetLink_Information' | abpLocalization }}</p>\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 <abp-button\r\n class=\"d-block\"\r\n buttonClass=\"mt-2 mb-3 btn btn-primary btn-block\"\r\n [loading]=\"inProgress\"\r\n buttonType=\"submit\"\r\n [disabled]=\"form?.invalid\"\r\n >\r\n {{ 'AbpAccount::Submit' | abpLocalization }}\r\n </abp-button>\r\n <a routerLink=\"/account/login\"\r\n ><i class=\"fa fa-long-arrow-left me-1\"></i>{{ 'AbpAccount::Login' | abpLocalization }}</a\r\n >\r\n</form>\r\n\r\n<ng-template #emailSentTemplate>\r\n <p>\r\n {{ 'AbpAccount::PasswordResetMailSentMessage' | abpLocalization }}\r\n </p>\r\n\r\n <a routerLink=\"/account/login\">\r\n <button class=\"d-block mt-2 mb-3 btn btn-primary btn-block\">\r\n <i class=\"fa fa-long-arrow-left me-1\"></i>\r\n {{ 'AbpAccount::BackToLogin' | abpLocalization }}\r\n </button>\r\n </a>\r\n</ng-template>\r\n","import { InjectionToken } from '@angular/core';\r\nimport { AccountConfigOptions } from '../models/config-options';\r\n\r\nexport const ACCOUNT_CONFIG_OPTIONS = new InjectionToken<AccountConfigOptions>(\r\n 'ACCOUNT_CONFIG_OPTIONS',\r\n);\r\n","import { Injector } from '@angular/core';\r\nimport { ActivatedRoute } from '@angular/router';\r\nimport { ACCOUNT_CONFIG_OPTIONS } from '../tokens/config-options.token';\r\n\r\nexport function getRedirectUrl(injector: Injector) {\r\n const route = injector.get(ActivatedRoute);\r\n const options = injector.get(ACCOUNT_CONFIG_OPTIONS);\r\n return route.snapshot.queryParams.returnUrl || options.redirectUrl || '/';\r\n}\r\n","import { AuthService, ConfigStateService } from '@abp/ng.core';\r\nimport { ToasterService } from '@abp/ng.theme.shared';\r\nimport { Component, Injector, OnInit } from '@angular/core';\r\nimport { FormBuilder, FormGroup, Validators } from '@angular/forms';\r\nimport { throwError } from 'rxjs';\r\nimport { catchError, finalize } from 'rxjs/operators';\r\nimport { eAccountComponents } from '../../enums/components';\r\nimport { getRedirectUrl } from '../../utils/auth-utils';\r\n\r\nconst { maxLength, required } = Validators;\r\n\r\n@Component({\r\n selector: 'abp-login',\r\n templateUrl: './login.component.html',\r\n})\r\nexport class LoginComponent implements OnInit {\r\n form: FormGroup;\r\n\r\n inProgress: boolean;\r\n\r\n isSelfRegistrationEnabled = true;\r\n\r\n authWrapperKey = eAccountComponents.AuthWrapper;\r\n\r\n constructor(\r\n protected injector: Injector,\r\n protected fb: FormBuilder,\r\n protected toasterService: ToasterService,\r\n protected authService: AuthService,\r\n protected configState: ConfigStateService,\r\n ) {}\r\n\r\n ngOnInit() {\r\n this.init();\r\n this.buildForm();\r\n }\r\n\r\n protected init() {\r\n this.isSelfRegistrationEnabled =\r\n (\r\n (this.configState.getSetting('Abp.Account.IsSelfRegistrationEnabled') as string) || ''\r\n ).toLowerCase() !== 'false';\r\n }\r\n\r\n protected buildForm() {\r\n this.form = this.fb.group({\r\n username: ['', [required, maxLength(255)]],\r\n password: ['', [required, maxLength(128)]],\r\n rememberMe: [false],\r\n });\r\n }\r\n\r\n onSubmit() {\r\n if (this.form.invalid) return;\r\n\r\n this.inProgress = true;\r\n\r\n const { username, password, rememberMe } = this.form.value;\r\n\r\n const redirectUrl = getRedirectUrl(this.injector);\r\n\r\n this.authService\r\n .login({ username, password, rememberMe, redirectUrl })\r\n .pipe(\r\n catchError(err => {\r\n this.toasterService.error(\r\n err.error?.error_description ||\r\n err.error?.error.message ||\r\n 'AbpAccount::DefaultErrorMessage',\r\n null,\r\n { life: 7000 },\r\n );\r\n return throwError(err);\r\n }),\r\n finalize(() => (this.inProgress = false)),\r\n )\r\n .subscribe();\r\n }\r\n}\r\n","<h4>{{ 'AbpAccount::Login' | abpLocalization }}</h4>\r\n<strong *ngIf=\"isSelfRegistrationEnabled\">\r\n {{ 'AbpAccount::AreYouANewUser' | abpLocalization }}\r\n <a class=\"text-decoration-none\" routerLink=\"/account/register\" queryParamsHandling=\"preserve\">{{\r\n 'AbpAccount::Register' | abpLocalization\r\n }}</a>\r\n</strong>\r\n<form [formGroup]=\"form\" (ngSubmit)=\"onSubmit()\" validateOnSubmit class=\"mt-4\">\r\n <div class=\"mb-3 form-group\">\r\n <label for=\"login-input-user-name-or-email-address\" class=\"form-label\">{{\r\n 'AbpAccount::UserNameOrEmailAddress' | abpLocalization\r\n }}</label>\r\n <input\r\n class=\"form-control\"\r\n type=\"text\"\r\n id=\"login-input-user-name-or-email-address\"\r\n formControlName=\"username\"\r\n autocomplete=\"username\"\r\n autofocus\r\n />\r\n </div>\r\n <div class=\"mb-3 form-group\">\r\n <label for=\"login-input-password\" class=\"form-label\">{{ 'AbpAccount::Password' | abpLocalization }}</label>\r\n <input\r\n class=\"form-control\"\r\n type=\"password\"\r\n id=\"login-input-password\"\r\n formControlName=\"password\"\r\n autocomplete=\"current-password\"\r\n />\r\n </div>\r\n\r\n <div class=\"row\">\r\n <div class=\"col\">\r\n <div class=\"form-check\">\r\n <label class=\"form-check-label mb-2\" for=\"login-input-remember-me\">\r\n <input\r\n class=\"form-check-input\"\r\n type=\"checkbox\"\r\n id=\"login-input-remember-me\"\r\n formControlName=\"rememberMe\"\r\n />\r\n {{ 'AbpAccount::RememberMe' | abpLocalization }}\r\n </label>\r\n </div>\r\n </div>\r\n <div class=\"text-end col\">\r\n <a routerLink=\"/account/forgot-password\">{{\r\n 'AbpAccount::ForgotPassword' | abpLocalization\r\n }}</a>\r\n </div>\r\n </div>\r\n\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::Login' | abpLocalization }}\r\n </abp-button>\r\n</form>\r\n","import { InternalStore } from '@abp/ng.core';\r\nimport { ProfileDto } from '@abp/ng.account.core/proxy';\r\nimport { Injectable } from '@angular/core';\r\nimport { Observable } from 'rxjs';\r\n\r\nexport interface ManageProfileState {\r\n profile: ProfileDto;\r\n}\r\n\r\n@Injectable({ providedIn: 'root' })\r\nexport class ManageProfileStateService {\r\n private readonly store = new InternalStore({} as ManageProfileState);\r\n\r\n get createOnUpdateStream() {\r\n return this.store.sliceUpdate;\r\n }\r\n\r\n getProfile$(): Observable<ProfileDto> {\r\n return this.store.sliceState(state => state.profile);\r\n }\r\n\r\n getProfile(): ProfileDto {\r\n return this.store.state.profile;\r\n }\r\n\r\n setProfile(profile: ProfileDto) {\r\n this.store.patch({ profile });\r\n }\r\n}\r\n","import { ProfileService } from '@abp/ng.account.core/proxy';\r\nimport { getPasswordValidators, ToasterService } from '@abp/ng.theme.shared';\r\nimport { Component, Injector, OnInit } from '@angular/core';\r\nimport { FormBuilder, FormControl, FormGroup, Validators } from '@angular/forms';\r\nimport { comparePasswords, Validation } from '@ngx-validate/core';\r\nimport { finalize } from 'rxjs/operators';\r\nimport { Account } from '../../models/account';\r\nimport { ManageProfileStateService } from '../../services/manage-profile.state.service';\r\n\r\nconst { required } = Validators;\r\n\r\nconst PASSWORD_FIELDS = ['newPassword', 'repeatNewPassword'];\r\n\r\n@Component({\r\n selector: 'abp-change-password-form',\r\n templateUrl: './change-password.component.html',\r\n exportAs: 'abpChangePasswordForm',\r\n})\r\nexport class ChangePasswordComponent\r\n implements OnInit, Account.ChangePasswordComponentInputs, Account.ChangePasswordComponentOutputs\r\n{\r\n form: FormGroup;\r\n\r\n inProgress: boolean;\r\n\r\n hideCurrentPassword: boolean;\r\n\r\n mapErrorsFn: Validation.MapErrorsFn = (errors, groupErrors, control) => {\r\n if (PASSWORD_FIELDS.indexOf(String(control.name)) < 0) return errors;\r\n\r\n return errors.concat(groupErrors.filter(({ key }) => key === 'passwordMismatch'));\r\n };\r\n\r\n constructor(\r\n private fb: FormBuilder,\r\n private injector: Injector,\r\n private toasterService: ToasterService,\r\n private profileService: ProfileService,\r\n private manageProfileState: ManageProfileStateService,\r\n ) {}\r\n\r\n ngOnInit(): void {\r\n this.hideCurrentPassword = !this.manageProfileState.getProfile()?.hasPassword;\r\n\r\n const passwordValidations = getPasswordValidators(this.injector);\r\n\r\n this.form = this.fb.group(\r\n {\r\n password: ['', required],\r\n newPassword: [\r\n '',\r\n {\r\n validators: [required, ...passwordValidations],\r\n },\r\n ],\r\n repeatNewPassword: [\r\n '',\r\n {\r\n validators: [required, ...passwordValidations],\r\n },\r\n ],\r\n },\r\n {\r\n validators: [comparePasswords(PASSWORD_FIELDS)],\r\n },\r\n );\r\n\r\n if (this.hideCurrentPassword) this.form.removeControl('password');\r\n }\r\n\r\n onSubmit() {\r\n if (this.form.invalid) return;\r\n this.inProgress = true;\r\n this.profileService\r\n .changePassword({\r\n ...(!this.hideCurrentPassword && { currentPassword: this.form.get('password').value }),\r\n newPassword: this.form.get('newPassword').value,\r\n })\r\n .pipe(finalize(() => (this.inProgress = false)))\r\n .subscribe({\r\n next: () => {\r\n this.form.reset();\r\n this.toasterService.success('AbpAccount::PasswordChangedMessage', '', {\r\n life: 5000,\r\n });\r\n\r\n if (this.hideCurrentPassword) {\r\n this.hideCurrentPassword = false;\r\n this.form.addControl('password', new FormControl('', [required]));\r\n }\r\n },\r\n error: err => {\r\n this.toasterService.error(err.error?.error?.message || 'AbpAccount::DefaultErrorMessage');\r\n },\r\n });\r\n }\r\n}\r\n","<form [formGroup]=\"form\" (ngSubmit)=\"onSubmit()\" [mapErrorsFn]=\"mapErrorsFn\" validateOnSubmit>\r\n <div *ngIf=\"!hideCurrentPassword\" class=\"mb-3 form-group\">\r\n <label for=\"current-password\" class=\"form-label\">{{\r\n 'AbpIdentity::DisplayName:CurrentPassword' | abpLocalization\r\n }}</label\r\n ><span> * </span\r\n ><input\r\n type=\"password\"\r\n id=\"current-password\"\r\n class=\"form-control\"\r\n formControlName=\"password\"\r\n autofocus\r\n autocomplete=\"current-password\"\r\n />\r\n </div>\r\n <div class=\"mb-3 form-group\">\r\n <label for=\"new-password\" class=\"form-label\">{{\r\n 'AbpIdentity::DisplayName:NewPassword' | abpLocalization\r\n }}</label\r\n ><span> * </span\r\n ><input\r\n type=\"password\"\r\n id=\"new-password\"\r\n class=\"form-control\"\r\n formControlName=\"newPassword\"\r\n autocomplete=\"new-password\"\r\n />\r\n </div>\r\n <div class=\"mb-3 form-group\">\r\n <label for=\"confirm-new-password\" class=\"form-label\">{{\r\n 'AbpIdentity::DisplayName:NewPasswordConfirm' | abpLocalization\r\n }}</label\r\n ><span> * </span\r\n ><input\r\n type=\"password\"\r\n id=\"confirm-new-password\"\r\n class=\"form-control\"\r\n formControlName=\"repeatNewPassword\"\r\n autocomplete=\"new-password\"\r\n />\r\n </div>\r\n <abp-button\r\n iconClass=\"fa fa-check\"\r\n buttonClass=\"btn btn-primary color-white\"\r\n buttonType=\"submit\"\r\n [loading]=\"inProgress\"\r\n [disabled]=\"form?.invalid\"\r\n >{{ 'AbpIdentity::Save' | abpLocalization }}</abp-button\r\n >\r\n</form>\r\n","import { ProfileService } from '@abp/ng.account.core/proxy';\r\nimport { ToasterService } from '@abp/ng.theme.shared';\r\nimport { Component, OnInit } from '@angular/core';\r\nimport { FormBuilder, FormGroup, Validators } from '@angular/forms';\r\nimport { finalize } from 'rxjs/operators';\r\nimport { Account } from '../../models/account';\r\nimport { ManageProfileStateService } from '../../services/manage-profile.state.service';\r\n\r\nconst { maxLength, required, email } = Validators;\r\n\r\n@Component({\r\n selector: 'abp-personal-settings-form',\r\n templateUrl: './personal-settings.component.html',\r\n exportAs: 'abpPersonalSettingsForm',\r\n})\r\nexport class PersonalSettingsComponent\r\n implements\r\n OnInit,\r\n Account.PersonalSettingsComponentInputs,\r\n Account.PersonalSettingsComponentOutputs\r\n{\r\n form: FormGroup;\r\n\r\n inProgress: boolean;\r\n\r\n constructor(\r\n private fb: FormBuilder,\r\n private toasterService: ToasterService,\r\n private profileService: ProfileService,\r\n private manageProfileState: ManageProfileStateService,\r\n ) {}\r\n\r\n ngOnInit() {\r\n this.buildForm();\r\n }\r\n\r\n buildForm() {\r\n const profile = this.manageProfileState.getProfile();\r\n this.form = this.fb.group({\r\n userName: [profile.userName, [required, maxLength(256)]],\r\n email: [profile.email, [required, email, maxLength(256)]],\r\n name: [profile.name || '', [maxLength(64)]],\r\n surname: [profile.surname || '', [maxLength(64)]],\r\n phoneNumber: [profile.phoneNumber || '', [maxLength(16)]],\r\n });\r\n }\r\n\r\n submit() {\r\n if (this.form.invalid) return;\r\n this.inProgress = true;\r\n this.profileService\r\n .update(this.form.value)\r\n .pipe(finalize(() => (this.inProgress = false)))\r\n .subscribe(profile => {\r\n this.manageProfileState.setProfile(profile);\r\n this.toasterService.success('AbpAccount::PersonalSettingsSaved', 'Success', { life: 5000 });\r\n });\r\n }\r\n}\r\n","<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","import { ProfileService } from '@abp/ng.account.core/proxy';\r\nimport { fadeIn } from '@abp/ng.theme.shared';\r\nimport { transition, trigger, useAnimation } from '@angular/animations';\r\nimport { Component, OnInit } from '@angular/core';\r\nimport { eAccountComponents } from '../../enums/components';\r\nimport { ManageProfileStateService } from '../../services/manage-profile.state.service';\r\n\r\n@Component({\r\n selector: 'abp-manage-profile',\r\n templateUrl: './manage-profile.component.html',\r\n animations: [trigger('fadeIn', [transition(':enter', useAnimation(fadeIn))])],\r\n styles: [\r\n `\r\n .min-h-400 {\r\n min-height: 400px;\r\n }\r\n `,\r\n ],\r\n})\r\nexport class ManageProfileComponent implements OnInit {\r\n selectedTab = 0;\r\n\r\n changePasswordKey = eAccountComponents.ChangePassword;\r\n\r\n personalSettingsKey = eAccountComponents.PersonalSettings;\r\n\r\n profile$ = this.manageProfileState.getProfile$();\r\n\r\n hideChangePasswordTab: boolean;\r\n\r\n constructor(\r\n protected profileService: ProfileService,\r\n protected manageProfileState: ManageProfileStateService,\r\n ) {}\r\n\r\n ngOnInit() {\r\n this.profileService.get().subscribe(profile => {\r\n this.manageProfileState.setProfile(profile);\r\n if (profile.isExternal) {\r\n this.hideChangePasswordTab = true;\r\n this.selectedTab = 1;\r\n }\r\n });\r\n }\r\n}\r\n","<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","import { AccountService, RegisterDto } from '@abp/ng.account.core/proxy';\r\nimport { AuthService, ConfigStateService } from '@abp/ng.core';\r\nimport { getPasswordValidators, ToasterService } from '@abp/ng.theme.shared';\r\nimport { Component, Injector, OnInit } from '@angular/core';\r\nimport { FormBuilder, FormGroup, Validators } from '@angular/forms';\r\nimport { throwError } from 'rxjs';\r\nimport { catchError, finalize, switchMap } from 'rxjs/operators';\r\nimport { eAccountComponents } from '../../enums/components';\r\nimport { getRedirectUrl } from '../../utils/auth-utils';\r\n\r\nconst { maxLength, required, email } = Validators;\r\n\r\n@Component({\r\n selector: 'abp-register',\r\n templateUrl: './register.component.html',\r\n})\r\nexport class RegisterComponent implements OnInit {\r\n form: FormGroup;\r\n\r\n inProgress: boolean;\r\n\r\n isSelfRegistrationEnabled = true;\r\n\r\n authWrapperKey = eAccountComponents.AuthWrapper;\r\n\r\n constructor(\r\n protected fb: FormBuilder,\r\n protected accountService: AccountService,\r\n protected configState: ConfigStateService,\r\n protected toasterService: ToasterService,\r\n protected authService: AuthService,\r\n protected injector: Injector,\r\n ) {}\r\n\r\n ngOnInit() {\r\n this.init();\r\n this.buildForm();\r\n }\r\n\r\n protected init() {\r\n this.isSelfRegistrationEnabled =\r\n (this.configState.getSetting('Abp.Account.IsSelfRegistrationEnabled') || '').toLowerCase() !==\r\n 'false';\r\n\r\n if (!this.isSelfRegistrationEnabled) {\r\n this.toasterService.warn(\r\n {\r\n key: 'AbpAccount::SelfRegistrationDisabledMessage',\r\n defaultValue: 'Self registration is disabled.',\r\n },\r\n null,\r\n { life: 10000 },\r\n );\r\n return;\r\n }\r\n }\r\n\r\n protected buildForm() {\r\n this.form = this.fb.group({\r\n username: ['', [required, maxLength(255)]],\r\n password: ['', [required, ...getPasswordValidators(this.injector)]],\r\n email: ['', [required, email]],\r\n });\r\n }\r\n\r\n onSubmit() {\r\n if (this.form.invalid) return;\r\n\r\n this.inProgress = true;\r\n\r\n const newUser = {\r\n userName: this.form.get('username').value,\r\n password: this.form.get('password').value,\r\n emailAddress: this.form.get('email').value,\r\n appName: 'Angular',\r\n } as RegisterDto;\r\n\r\n this.accountService\r\n .register(newUser)\r\n .pipe(\r\n switchMap(() =>\r\n this.authService.login({\r\n username: newUser.userName,\r\n password: newUser.password,\r\n redirectUrl: getRedirectUrl(this.injector),\r\n }),\r\n ),\r\n catchError(err => {\r\n this.toasterService.error(\r\n err.error?.error_description ||\r\n err.error?.error.message ||\r\n 'AbpAccount::DefaultErrorMessage',\r\n null,\r\n { life: 7000 },\r\n );\r\n\r\n return throwError(err);\r\n }),\r\n finalize(() => (this.inProgress = false)),\r\n )\r\n .subscribe();\r\n }\r\n}\r\n","<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","import { AccountService } from '@abp/ng.account.core/proxy';\r\nimport { getPasswordValidators } from '@abp/ng.theme.shared';\r\nimport { Component, Injector, OnInit } from '@angular/core';\r\nimport { FormBuilder, FormGroup, Validators } from '@angular/forms';\r\nimport { ActivatedRoute, Router } from '@angular/router';\r\nimport { comparePasswords, Validation } from '@ngx-validate/core';\r\nimport { finalize } from 'rxjs/operators';\r\n\r\nconst PASSWORD_FIELDS = ['password', 'confirmPassword'];\r\n\r\n@Component({\r\n selector: 'abp-reset-password',\r\n templateUrl: './reset-password.component.html',\r\n})\r\nexport class ResetPasswordComponent implements OnInit {\r\n form: FormGroup;\r\n\r\n inProgress = false;\r\n\r\n isPasswordReset = false;\r\n\r\n mapErrorsFn: Validation.MapErrorsFn = (errors, groupErrors, control) => {\r\n if (PASSWORD_FIELDS.indexOf(String(control.name)) < 0) return errors;\r\n\r\n return errors.concat(groupErrors.filter(({ key }) => key === 'passwordMismatch'));\r\n };\r\n\r\n constructor(\r\n private fb: FormBuilder,\r\n private accountService: AccountService,\r\n private route: ActivatedRoute,\r\n private router: Router,\r\n private injector: Injector,\r\n ) {}\r\n\r\n ngOnInit(): void {\r\n this.route.queryParams.subscribe(({ userId, resetToken }) => {\r\n if (!userId || !resetToken) this.router.navigateByUrl('/account/login');\r\n\r\n this.form = this.fb.group(\r\n {\r\n userId: [userId, [Validators.required]],\r\n resetToken: [resetToken, [Validators.required]],\r\n password: ['', [Validators.required, ...getPasswordValidators(this.injector)]],\r\n confirmPassword: ['', [Validators.required, ...getPasswordValidators(this.injector)]],\r\n },\r\n {\r\n validators: [comparePasswords(PASSWORD_FIELDS)],\r\n },\r\n );\r\n });\r\n }\r\n\r\n onSubmit() {\r\n if (this.form.invalid || this.inProgress) return;\r\n\r\n this.inProgress = true;\r\n\r\n this.accountService\r\n .resetPassword({\r\n userId: this.form.get('userId').value,\r\n resetToken: this.form.get('resetToken').value,\r\n password: this.form.get('password').value,\r\n })\r\n .pipe(finalize(() => (this.inProgress = false)))\r\n .subscribe(() => {\r\n this.isPasswordReset = true;\r\n });\r\n }\r\n}\r\n","<h4>{{ 'AbpAccount::ResetPassword' | abpLocalization }}</h4>\r\n\r\n<form\r\n *ngIf=\"!isPasswordReset; else passwordResetTemplate\"\r\n [formGroup]=\"form\"\r\n [mapErrorsFn]=\"mapErrorsFn\"\r\n (ngSubmit)=\"onSubmit()\"\r\n validateOnSubmit\r\n>\r\n <p>{{ 'AbpAccount::ResetPassword_Information' | abpLocalization }}</p>\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 type=\"password\" id=\"input-password\" class=\"form-control\" formControlName=\"password\" />\r\n </div>\r\n <div class=\"mb-3 form-group\">\r\n <label for=\"input-confirm-password\" class=\"form-label\">{{\r\n 'AbpAccount::ConfirmPassword' | abpLocalization\r\n }}</label\r\n ><span> * </span>\r\n <input\r\n type=\"password\"\r\n id=\"input-confirm-password\"\r\n class=\"form-control\"\r\n formControlName=\"confirmPassword\"\r\n />\r\n </div>\r\n <button class=\"me-2 btn btn-secondary\" type=\"button\" routerLink=\"/account/login\">\r\n {{ 'AbpAccount::Cancel' | abpLocalization }}\r\n </button>\r\n <abp-button\r\n buttonType=\"submit\"\r\n buttonClass=\"me-2 btn btn-primary\"\r\n [loading]=\"inProgress\"\r\n (click)=\"onSubmit()\"\r\n >\r\n {{ 'AbpAccount::Submit' | abpLocalization }}\r\n </abp-button>\r\n</form>\r\n\r\n<ng-template #passwordResetTemplate>\r\n <p>\r\n {{ 'AbpAccount::YourPasswordIsSuccessfullyReset' | abpLocalization }}\r\n </p>\r\n\r\n <a routerLink=\"/account/login\">\r\n <button class=\"d-block mt-2 mb-3 btn btn-primary\">\r\n {{ 'AbpAccount::BackToLogin' | abpLocalization }}\r\n </button>\r\n </a>\r\n</ng-template>\r\n","import { AuthService } from '@abp/ng.core';\r\nimport { Injectable } from '@angular/core';\r\nimport { CanActivate } from '@angular/router';\r\n\r\n@Injectable()\r\nexport class AuthenticationFlowGuard implements CanActivate {\r\n constructor(private authService: AuthService) {}\r\n\r\n canActivate() {\r\n if (this.authService.isInternalAuth) return true;\r\n\r\n this.authService.navigateToLogin();\r\n return false;\r\n }\r\n}\r\n","import {\r\n AuthGuard,\r\n ReplaceableComponents,\r\n ReplaceableRouteContainerComponent,\r\n RouterOutletComponent,\r\n} from '@abp/ng.core';\r\nimport { NgModule } from '@angular/core';\r\nimport { RouterModule, Routes } from '@angular/router';\r\nimport { ForgotPasswordComponent } from './components/forgot-password/forgot-password.component';\r\nimport { LoginComponent } from './components/login/login.component';\r\nimport { ManageProfileComponent } from './components/manage-profile/manage-profile.component';\r\nimport { RegisterComponent } from './components/register/register.component';\r\nimport { ResetPasswordComponent } from './components/reset-password/reset-password.component';\r\nimport { eAccountComponents } from './enums/components';\r\nimport { AuthenticationFlowGuard } from './guards/authentication-flow.guard';\r\n\r\nconst routes: Routes = [\r\n { path: '', pathMatch: 'full', redirectTo: 'login' },\r\n {\r\n path: '',\r\n component: RouterOutletComponent,\r\n children: [\r\n {\r\n path: 'login',\r\n component: ReplaceableRouteContainerComponent,\r\n canActivate: [AuthenticationFlowGuard],\r\n data: {\r\n replaceableComponent: {\r\n key: eAccountComponents.Login,\r\n defaultComponent: LoginComponent,\r\n } as ReplaceableComponents.RouteData<LoginComponent>,\r\n },\r\n },\r\n {\r\n path: 'register',\r\n component: ReplaceableRouteContainerComponent,\r\n canActivate: [AuthenticationFlowGuard],\r\n data: {\r\n replaceableComponent: {\r\n key: eAccountComponents.Register,\r\n defaultComponent: RegisterComponent,\r\n } as ReplaceableComponents.RouteData<RegisterComponent>,\r\n },\r\n },\r\n {\r\n path: 'forgot-password',\r\n component: ReplaceableRouteContainerComponent,\r\n canActivate: [AuthenticationFlowGuard],\r\n data: {\r\n replaceableComponent: {\r\n key: eAccountComponents.ForgotPassword,\r\n defaultComponent: ForgotPasswordComponent,\r\n } as ReplaceableComponents.RouteData<ForgotPasswordComponent>,\r\n },\r\n },\r\n {\r\n path: 'reset-password',\r\n component: ReplaceableRouteContainerComponent,\r\n canActivate: [],\r\n data: {\r\n tenantBoxVisible: false,\r\n replaceableComponent: {\r\n key: eAccountComponents.ResetPassword,\r\n defaultComponent: ResetPasswordComponent,\r\n } as ReplaceableComponents.RouteData<ResetPasswordComponent>,\r\n },\r\n },\r\n {\r\n path: 'manage',\r\n component: ReplaceableRouteContainerComponent,\r\n canActivate: [AuthGuard],\r\n data: {\r\n replaceableComponent: {\r\n key: eAccountComponents.ManageProfile,\r\n defaultComponent: ManageProfileComponent,\r\n } as ReplaceableComponents.RouteData<ManageProfileComponent>,\r\n },\r\n },\r\n ],\r\n },\r\n];\r\n\r\n@NgModule({\r\n imports: [RouterModule.forChild(routes)],\r\n exports: [RouterModule],\r\n})\r\nexport class AccountRoutingModule {}\r\n","import { AccountConfigOptions } from '../models/config-options';\r\n\r\nexport function accountConfigOptionsFactory(options: AccountConfigOptions) {\r\n return {\r\n redirectUrl: '/',\r\n ...options,\r\n };\r\n}\r\n","import { CoreModule, LazyModuleFactory } from '@abp/ng.core';\r\nimport { ThemeSharedModule } from '@abp/ng.theme.shared';\r\nimport { ModuleWithProviders, NgModule, NgModuleFactory } from '@angular/core';\r\nimport { NgbDropdownModule } from '@ng-bootstrap/ng-bootstrap';\r\nimport { NgxValidateCoreModule } from '@ngx-validate/core';\r\nimport { AccountRoutingModule } from './account-routing.module';\r\nimport { ChangePasswordComponent } from './components/change-password/change-password.component';\r\nimport { LoginComponent } from './components/login/login.component';\r\nimport { ManageProfileComponent } from './components/manage-profile/manage-profile.component';\r\nimport { PersonalSettingsComponent } from './components/personal-settings/personal-settings.component';\r\nimport { RegisterComponent } from './components/register/register.component';\r\nimport { AccountConfigOptions } from './models/config-options';\r\nimport { ACCOUNT_CONFIG_OPTIONS } from './tokens/config-options.token';\r\nimport { accountConfigOptionsFactory } from './utils/factory-utils';\r\nimport { AuthenticationFlowGuard } from './guards/authentication-flow.guard';\r\nimport { ForgotPasswordComponent } from './components/forgot-password/forgot-password.component';\r\nimport { ResetPasswordComponent } from './components/reset-password/reset-password.component';\r\n\r\nconst declarations = [\r\n LoginComponent,\r\n RegisterComponent,\r\n ChangePasswordComponent,\r\n ManageProfileComponent,\r\n PersonalSettingsComponent,\r\n ForgotPasswordComponent,\r\n ResetPasswordComponent,\r\n];\r\n\r\n@NgModule({\r\n declarations: [...declarations],\r\n imports: [\r\n CoreModule,\r\n AccountRoutingModule,\r\n ThemeSharedModule,\r\n NgbDropdownModule,\r\n NgxValidateCoreModule,\r\n ],\r\n exports: [...declarations],\r\n})\r\nexport class AccountModule {\r\n static forChild(options = {} as AccountConfigOptions): ModuleWithProviders<AccountModule> {\r\n return {\r\n ngModule: AccountModule,\r\n providers: [\r\n AuthenticationFlowGuard,\r\n { provide: ACCOUNT_CONFIG_OPTIONS, useValue: options },\r\n {\r\n provide: 'ACCOUNT_OPTIONS',\r\n useFactory: accountConfigOptionsFactory,\r\n deps: [ACCOUNT_CONFIG_OPTIONS],\r\n },\r\n ],\r\n };\r\n }\r\n\r\n static forLazy(options = {} as AccountConfigOptions): NgModuleFactory<AccountModule> {\r\n return new LazyModuleFactory(AccountModule.forChild(options));\r\n }\r\n}\r\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public-api';\n"],"names":["i3","i4","i5","i6","i7","maxLength","required","i2","PASSWORD_FIELDS","i4.ManageProfileStateService","email","i1","i2.ManageProfileStateService","i3.ChangePasswordComponent","i4.PersonalSettingsComponent"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"abp-ng.account.mjs","sources":["../../../../packages/account/src/lib/components/forgot-password/forgot-password.component.ts","../../../../packages/account/src/lib/components/forgot-password/forgot-password.component.html","../../../../packages/account/src/lib/tokens/config-options.token.ts","../../../../packages/account/src/lib/utils/auth-utils.ts","../../../../packages/account/src/lib/components/login/login.component.ts","../../../../packages/account/src/lib/components/login/login.component.html","../../../../packages/account/src/lib/services/manage-profile.state.service.ts","../../../../packages/account/src/lib/components/change-password/change-password.component.ts","../../../../packages/account/src/lib/components/change-password/change-password.component.html","../../../../packages/account/src/lib/tokens/re-login-confirmation.token.ts","../../../../packages/account/src/lib/components/personal-settings/personal-settings.component.ts","../../../../packages/account/src/lib/components/personal-settings/personal-settings.component.html","../../../../packages/account/src/lib/components/manage-profile/manage-profile.component.ts","../../../../packages/account/src/lib/components/manage-profile/manage-profile.component.html","../../../../packages/account/src/lib/components/register/register.component.ts","../../../../packages/account/src/lib/components/register/register.component.html","../../../../packages/account/src/lib/components/reset-password/reset-password.component.ts","../../../../packages/account/src/lib/components/reset-password/reset-password.component.html","../../../../packages/account/src/lib/guards/authentication-flow.guard.ts","../../../../packages/account/src/lib/account-routing.module.ts","../../../../packages/account/src/lib/utils/factory-utils.ts","../../../../packages/account/src/lib/account.module.ts","../../../../packages/account/src/abp-ng.account.ts"],"sourcesContent":["import { AccountService } from '@abp/ng.account.core/proxy';\r\nimport { Component } from '@angular/core';\r\nimport { FormBuilder, FormGroup, Validators } from '@angular/forms';\r\nimport { finalize } from 'rxjs/operators';\r\n\r\n@Component({\r\n selector: 'abp-forgot-password',\r\n templateUrl: 'forgot-password.component.html',\r\n})\r\nexport class ForgotPasswordComponent {\r\n form: FormGroup;\r\n\r\n inProgress: boolean;\r\n\r\n isEmailSent = false;\r\n\r\n constructor(private fb: FormBuilder, private accountService: AccountService) {\r\n this.form = this.fb.group({\r\n email: ['', [Validators.required, Validators.email]],\r\n });\r\n }\r\n\r\n onSubmit() {\r\n if (this.form.invalid) return;\r\n\r\n this.inProgress = true;\r\n\r\n this.accountService\r\n .sendPasswordResetCode({\r\n email: this.form.get('email').value,\r\n appName: 'Angular',\r\n })\r\n .pipe(finalize(() => (this.inProgress = false)))\r\n .subscribe(() => {\r\n this.isEmailSent = true;\r\n });\r\n }\r\n}\r\n","<h4>{{ 'AbpAccount::ForgotPassword' | abpLocalization }}</h4>\r\n\r\n<form\r\n *ngIf=\"!isEmailSent; else emailSentTemplate\"\r\n [formGroup]=\"form\"\r\n (ngSubmit)=\"onSubmit()\"\r\n validateOnSubmit\r\n>\r\n <p>{{ 'AbpAccount::SendPasswordResetLink_Information' | abpLocalization }}</p>\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 <abp-button\r\n class=\"d-block\"\r\n buttonClass=\"mt-2 mb-3 btn btn-primary btn-block\"\r\n [loading]=\"inProgress\"\r\n buttonType=\"submit\"\r\n [disabled]=\"form?.invalid\"\r\n >\r\n {{ 'AbpAccount::Submit' | abpLocalization }}\r\n </abp-button>\r\n <a routerLink=\"/account/login\"\r\n ><i class=\"fa fa-long-arrow-left me-1\"></i>{{ 'AbpAccount::Login' | abpLocalization }}</a\r\n >\r\n</form>\r\n\r\n<ng-template #emailSentTemplate>\r\n <p>\r\n {{ 'AbpAccount::PasswordResetMailSentMessage' | abpLocalization }}\r\n </p>\r\n\r\n <a routerLink=\"/account/login\">\r\n <button class=\"d-block mt-2 mb-3 btn btn-primary btn-block\">\r\n <i class=\"fa fa-long-arrow-left me-1\"></i>\r\n {{ 'AbpAccount::BackToLogin' | abpLocalization }}\r\n </button>\r\n </a>\r\n</ng-template>\r\n","import { InjectionToken } from '@angular/core';\r\nimport { AccountConfigOptions } from '../models/config-options';\r\n\r\nexport const ACCOUNT_CONFIG_OPTIONS = new InjectionToken<AccountConfigOptions>(\r\n 'ACCOUNT_CONFIG_OPTIONS',\r\n);\r\n","import { Injector } from '@angular/core';\r\nimport { ActivatedRoute } from '@angular/router';\r\nimport { ACCOUNT_CONFIG_OPTIONS } from '../tokens/config-options.token';\r\n\r\nexport function getRedirectUrl(injector: Injector) {\r\n const route = injector.get(ActivatedRoute);\r\n const options = injector.get(ACCOUNT_CONFIG_OPTIONS);\r\n return route.snapshot.queryParams.returnUrl || options.redirectUrl || '/';\r\n}\r\n","import { AuthService, ConfigStateService } from '@abp/ng.core';\r\nimport { ToasterService } from '@abp/ng.theme.shared';\r\nimport { Component, Injector, OnInit } from '@angular/core';\r\nimport { FormBuilder, FormGroup, Validators } from '@angular/forms';\r\nimport { throwError } from 'rxjs';\r\nimport { catchError, finalize } from 'rxjs/operators';\r\nimport { eAccountComponents } from '../../enums/components';\r\nimport { getRedirectUrl } from '../../utils/auth-utils';\r\n\r\nconst { maxLength, required } = Validators;\r\n\r\n@Component({\r\n selector: 'abp-login',\r\n templateUrl: './login.component.html',\r\n})\r\nexport class LoginComponent implements OnInit {\r\n form: FormGroup;\r\n\r\n inProgress: boolean;\r\n\r\n isSelfRegistrationEnabled = true;\r\n\r\n authWrapperKey = eAccountComponents.AuthWrapper;\r\n\r\n constructor(\r\n protected injector: Injector,\r\n protected fb: FormBuilder,\r\n protected toasterService: ToasterService,\r\n protected authService: AuthService,\r\n protected configState: ConfigStateService,\r\n ) {}\r\n\r\n ngOnInit() {\r\n this.init();\r\n this.buildForm();\r\n }\r\n\r\n protected init() {\r\n this.isSelfRegistrationEnabled =\r\n (\r\n (this.configState.getSetting('Abp.Account.IsSelfRegistrationEnabled') as string) || ''\r\n ).toLowerCase() !== 'false';\r\n }\r\n\r\n protected buildForm() {\r\n this.form = this.fb.group({\r\n username: ['', [required, maxLength(255)]],\r\n password: ['', [required, maxLength(128)]],\r\n rememberMe: [false],\r\n });\r\n }\r\n\r\n onSubmit() {\r\n if (this.form.invalid) return;\r\n\r\n this.inProgress = true;\r\n\r\n const { username, password, rememberMe } = this.form.value;\r\n\r\n const redirectUrl = getRedirectUrl(this.injector);\r\n\r\n this.authService\r\n .login({ username, password, rememberMe, redirectUrl })\r\n .pipe(\r\n catchError(err => {\r\n this.toasterService.error(\r\n err.error?.error_description ||\r\n err.error?.error.message ||\r\n 'AbpAccount::DefaultErrorMessage',\r\n null,\r\n { life: 7000 },\r\n );\r\n return throwError(err);\r\n }),\r\n finalize(() => (this.inProgress = false)),\r\n )\r\n .subscribe();\r\n }\r\n}\r\n","<h4>{{ 'AbpAccount::Login' | abpLocalization }}</h4>\r\n<strong *ngIf=\"isSelfRegistrationEnabled\">\r\n {{ 'AbpAccount::AreYouANewUser' | abpLocalization }}\r\n <a class=\"text-decoration-none\" routerLink=\"/account/register\" queryParamsHandling=\"preserve\">{{\r\n 'AbpAccount::Register' | abpLocalization\r\n }}</a>\r\n</strong>\r\n<form [formGroup]=\"form\" (ngSubmit)=\"onSubmit()\" validateOnSubmit class=\"mt-4\">\r\n <div class=\"mb-3 form-group\">\r\n <label for=\"login-input-user-name-or-email-address\" class=\"form-label\">{{\r\n 'AbpAccount::UserNameOrEmailAddress' | abpLocalization\r\n }}</label>\r\n <input\r\n class=\"form-control\"\r\n type=\"text\"\r\n id=\"login-input-user-name-or-email-address\"\r\n formControlName=\"username\"\r\n autocomplete=\"username\"\r\n autofocus\r\n />\r\n </div>\r\n <div class=\"mb-3 form-group\">\r\n <label for=\"login-input-password\" class=\"form-label\">{{ 'AbpAccount::Password' | abpLocalization }}</label>\r\n <input\r\n class=\"form-control\"\r\n type=\"password\"\r\n id=\"login-input-password\"\r\n formControlName=\"password\"\r\n autocomplete=\"current-password\"\r\n />\r\n </div>\r\n\r\n <div class=\"row\">\r\n <div class=\"col\">\r\n <div class=\"form-check\">\r\n <label class=\"form-check-label mb-2\" for=\"login-input-remember-me\">\r\n <input\r\n class=\"form-check-input\"\r\n type=\"checkbox\"\r\n id=\"login-input-remember-me\"\r\n formControlName=\"rememberMe\"\r\n />\r\n {{ 'AbpAccount::RememberMe' | abpLocalization }}\r\n </label>\r\n </div>\r\n </div>\r\n <div class=\"text-end col\">\r\n <a routerLink=\"/account/forgot-password\">{{\r\n 'AbpAccount::ForgotPassword' | abpLocalization\r\n }}</a>\r\n </div>\r\n </div>\r\n\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::Login' | abpLocalization }}\r\n </abp-button>\r\n</form>\r\n","import { InternalStore } from '@abp/ng.core';\r\nimport { ProfileDto } from '@abp/ng.account.core/proxy';\r\nimport { Injectable } from '@angular/core';\r\nimport { Observable } from 'rxjs';\r\n\r\nexport interface ManageProfileState {\r\n profile: ProfileDto;\r\n}\r\n\r\n@Injectable({ providedIn: 'root' })\r\nexport class ManageProfileStateService {\r\n private readonly store = new InternalStore({} as ManageProfileState);\r\n\r\n get createOnUpdateStream() {\r\n return this.store.sliceUpdate;\r\n }\r\n\r\n getProfile$(): Observable<ProfileDto> {\r\n return this.store.sliceState(state => state.profile);\r\n }\r\n\r\n getProfile(): ProfileDto {\r\n return this.store.state.profile;\r\n }\r\n\r\n setProfile(profile: ProfileDto) {\r\n this.store.patch({ profile });\r\n }\r\n}\r\n","import { ProfileService } from '@abp/ng.account.core/proxy';\r\nimport { getPasswordValidators, ToasterService } from '@abp/ng.theme.shared';\r\nimport { Component, Injector, OnInit } from '@angular/core';\r\nimport { FormBuilder, FormControl, FormGroup, Validators } from '@angular/forms';\r\nimport { comparePasswords, Validation } from '@ngx-validate/core';\r\nimport { finalize } from 'rxjs/operators';\r\nimport { Account } from '../../models/account';\r\nimport { ManageProfileStateService } from '../../services/manage-profile.state.service';\r\n\r\nconst { required } = Validators;\r\n\r\nconst PASSWORD_FIELDS = ['newPassword', 'repeatNewPassword'];\r\n\r\n@Component({\r\n selector: 'abp-change-password-form',\r\n templateUrl: './change-password.component.html',\r\n exportAs: 'abpChangePasswordForm',\r\n})\r\nexport class ChangePasswordComponent\r\n implements OnInit, Account.ChangePasswordComponentInputs, Account.ChangePasswordComponentOutputs\r\n{\r\n form: FormGroup;\r\n\r\n inProgress: boolean;\r\n\r\n hideCurrentPassword: boolean;\r\n\r\n mapErrorsFn: Validation.MapErrorsFn = (errors, groupErrors, control) => {\r\n if (PASSWORD_FIELDS.indexOf(String(control.name)) < 0) return errors;\r\n\r\n return errors.concat(groupErrors.filter(({ key }) => key === 'passwordMismatch'));\r\n };\r\n\r\n constructor(\r\n private fb: FormBuilder,\r\n private injector: Injector,\r\n private toasterService: ToasterService,\r\n private profileService: ProfileService,\r\n private manageProfileState: ManageProfileStateService,\r\n ) {}\r\n\r\n ngOnInit(): void {\r\n this.hideCurrentPassword = !this.manageProfileState.getProfile()?.hasPassword;\r\n\r\n const passwordValidations = getPasswordValidators(this.injector);\r\n\r\n this.form = this.fb.group(\r\n {\r\n password: ['', required],\r\n newPassword: [\r\n '',\r\n {\r\n validators: [required, ...passwordValidations],\r\n },\r\n ],\r\n repeatNewPassword: [\r\n '',\r\n {\r\n validators: [required, ...passwordValidations],\r\n },\r\n ],\r\n },\r\n {\r\n validators: [comparePasswords(PASSWORD_FIELDS)],\r\n },\r\n );\r\n\r\n if (this.hideCurrentPassword) this.form.removeControl('password');\r\n }\r\n\r\n onSubmit() {\r\n if (this.form.invalid) return;\r\n this.inProgress = true;\r\n this.profileService\r\n .changePassword({\r\n ...(!this.hideCurrentPassword && { currentPassword: this.form.get('password').value }),\r\n newPassword: this.form.get('newPassword').value,\r\n })\r\n .pipe(finalize(() => (this.inProgress = false)))\r\n .subscribe({\r\n next: () => {\r\n this.form.reset();\r\n this.toasterService.success('AbpAccount::PasswordChangedMessage', '', {\r\n life: 5000,\r\n });\r\n\r\n if (this.hideCurrentPassword) {\r\n this.hideCurrentPassword = false;\r\n this.form.addControl('password', new FormControl('', [required]));\r\n }\r\n },\r\n error: err => {\r\n this.toasterService.error(err.error?.error?.message || 'AbpAccount::DefaultErrorMessage');\r\n },\r\n });\r\n }\r\n}\r\n","<form [formGroup]=\"form\" (ngSubmit)=\"onSubmit()\" [mapErrorsFn]=\"mapErrorsFn\" validateOnSubmit>\r\n <div *ngIf=\"!hideCurrentPassword\" class=\"mb-3 form-group\">\r\n <label for=\"current-password\" class=\"form-label\">{{\r\n 'AbpIdentity::DisplayName:CurrentPassword' | abpLocalization\r\n }}</label\r\n ><span> * </span\r\n ><input\r\n type=\"password\"\r\n id=\"current-password\"\r\n class=\"form-control\"\r\n formControlName=\"password\"\r\n autofocus\r\n autocomplete=\"current-password\"\r\n />\r\n </div>\r\n <div class=\"mb-3 form-group\">\r\n <label for=\"new-password\" class=\"form-label\">{{\r\n 'AbpIdentity::DisplayName:NewPassword' | abpLocalization\r\n }}</label\r\n ><span> * </span\r\n ><input\r\n type=\"password\"\r\n id=\"new-password\"\r\n class=\"form-control\"\r\n formControlName=\"newPassword\"\r\n autocomplete=\"new-password\"\r\n />\r\n </div>\r\n <div class=\"mb-3 form-group\">\r\n <label for=\"confirm-new-password\" class=\"form-label\">{{\r\n 'AbpIdentity::DisplayName:NewPasswordConfirm' | abpLocalization\r\n }}</label\r\n ><span> * </span\r\n ><input\r\n type=\"password\"\r\n id=\"confirm-new-password\"\r\n class=\"form-control\"\r\n formControlName=\"repeatNewPassword\"\r\n autocomplete=\"new-password\"\r\n />\r\n </div>\r\n <abp-button\r\n iconClass=\"fa fa-check\"\r\n buttonClass=\"btn btn-primary color-white\"\r\n buttonType=\"submit\"\r\n [loading]=\"inProgress\"\r\n [disabled]=\"form?.invalid\"\r\n >{{ 'AbpIdentity::Save' | abpLocalization }}</abp-button\r\n >\r\n</form>\r\n","import { InjectionToken } from '@angular/core';\r\n\r\nexport const RE_LOGIN_CONFIRMATION_TOKEN = new InjectionToken<boolean>(\r\n 'RE_LOGIN_CONFIRMATION_TOKEN',\r\n);\r\n","import { ProfileDto, ProfileService } from '@abp/ng.account.core/proxy';\r\nimport { Confirmation, ConfirmationService, ToasterService } from '@abp/ng.theme.shared';\r\nimport { Component, Inject, OnInit } from '@angular/core';\r\nimport { FormBuilder, FormGroup, Validators } from '@angular/forms';\r\nimport { finalize, filter } from 'rxjs/operators';\r\nimport { Account } from '../../models/account';\r\nimport { ManageProfileStateService } from '../../services/manage-profile.state.service';\r\nimport { AuthService } from '@abp/ng.core';\r\nimport { RE_LOGIN_CONFIRMATION_TOKEN } from '../../tokens';\r\n\r\nconst { maxLength, required, email } = Validators;\r\n\r\n@Component({\r\n selector: 'abp-personal-settings-form',\r\n templateUrl: './personal-settings.component.html',\r\n exportAs: 'abpPersonalSettingsForm',\r\n})\r\nexport class PersonalSettingsComponent\r\n implements\r\n OnInit,\r\n Account.PersonalSettingsComponentInputs,\r\n Account.PersonalSettingsComponentOutputs\r\n{\r\n form: FormGroup;\r\n\r\n inProgress: boolean;\r\n private profile: ProfileDto;\r\n\r\n constructor(\r\n private fb: FormBuilder,\r\n private toasterService: ToasterService,\r\n private profileService: ProfileService,\r\n private manageProfileState: ManageProfileStateService,\r\n private readonly authService: AuthService,\r\n private confirmationService: ConfirmationService,\r\n @Inject(RE_LOGIN_CONFIRMATION_TOKEN)\r\n private isPersonalSettingsChangedConfirmationActive: boolean,\r\n ) {}\r\n\r\n ngOnInit() {\r\n this.buildForm();\r\n }\r\n\r\n buildForm() {\r\n this.profile = this.manageProfileState.getProfile();\r\n this.form = this.fb.group({\r\n userName: [this.profile.userName, [required, maxLength(256)]],\r\n email: [this.profile.email, [required, email, maxLength(256)]],\r\n name: [this.profile.name || '', [maxLength(64)]],\r\n surname: [this.profile.surname || '', [maxLength(64)]],\r\n phoneNumber: [this.profile.phoneNumber || '', [maxLength(16)]],\r\n });\r\n }\r\n\r\n submit() {\r\n if (this.form.invalid) return;\r\n const isLogOutConfirmMessageVisible = this.isLogoutConfirmMessageActive();\r\n this.inProgress = true;\r\n this.profileService\r\n .update(this.form.value)\r\n .pipe(finalize(() => (this.inProgress = false)))\r\n .subscribe(profile => {\r\n this.manageProfileState.setProfile(profile);\r\n this.toasterService.success('AbpAccount::PersonalSettingsSaved', 'Success', { life: 5000 });\r\n if (isLogOutConfirmMessageVisible) {\r\n this.showLogoutConfirmMessage();\r\n }\r\n });\r\n }\r\n\r\n isDataSame(oldValue, newValue) {\r\n return Object.entries(oldValue).some(([key, value]) => {\r\n if (key in newValue) {\r\n return value !== newValue[key];\r\n }\r\n return false;\r\n });\r\n }\r\n\r\n logoutConfirmation = () => {\r\n this.authService.logout().subscribe();\r\n };\r\n\r\n private isLogoutConfirmMessageActive() {\r\n if (!this.isPersonalSettingsChangedConfirmationActive) {\r\n return false;\r\n }\r\n return this.isDataSame(this.profile, this.form.value);\r\n }\r\n\r\n private showLogoutConfirmMessage() {\r\n this.confirmationService\r\n .info(\r\n 'AbpAccount::PersonalSettingsChangedConfirmationModalDescription',\r\n 'AbpAccount::PersonalSettingsChangedConfirmationModalTitle',\r\n )\r\n .pipe(filter(status => status === Confirmation.Status.confirm))\r\n .subscribe(this.logoutConfirmation);\r\n }\r\n}\r\n","<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","import { ProfileService } from '@abp/ng.account.core/proxy';\r\nimport { fadeIn } from '@abp/ng.theme.shared';\r\nimport { transition, trigger, useAnimation } from '@angular/animations';\r\nimport { Component, OnInit } from '@angular/core';\r\nimport { eAccountComponents } from '../../enums/components';\r\nimport { ManageProfileStateService } from '../../services/manage-profile.state.service';\r\n\r\n@Component({\r\n selector: 'abp-manage-profile',\r\n templateUrl: './manage-profile.component.html',\r\n animations: [trigger('fadeIn', [transition(':enter', useAnimation(fadeIn))])],\r\n styles: [\r\n `\r\n .min-h-400 {\r\n min-height: 400px;\r\n }\r\n `,\r\n ],\r\n})\r\nexport class ManageProfileComponent implements OnInit {\r\n selectedTab = 0;\r\n\r\n changePasswordKey = eAccountComponents.ChangePassword;\r\n\r\n personalSettingsKey = eAccountComponents.PersonalSettings;\r\n\r\n profile$ = this.manageProfileState.getProfile$();\r\n\r\n hideChangePasswordTab: boolean;\r\n\r\n constructor(\r\n protected profileService: ProfileService,\r\n protected manageProfileState: ManageProfileStateService,\r\n ) {}\r\n\r\n ngOnInit() {\r\n this.profileService.get().subscribe(profile => {\r\n this.manageProfileState.setProfile(profile);\r\n if (profile.isExternal) {\r\n this.hideChangePasswordTab = true;\r\n this.selectedTab = 1;\r\n }\r\n });\r\n }\r\n}\r\n","<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","import { AccountService, RegisterDto } from '@abp/ng.account.core/proxy';\r\nimport { AuthService, ConfigStateService } from '@abp/ng.core';\r\nimport { getPasswordValidators, ToasterService } from '@abp/ng.theme.shared';\r\nimport { Component, Injector, OnInit } from '@angular/core';\r\nimport { FormBuilder, FormGroup, Validators } from '@angular/forms';\r\nimport { throwError } from 'rxjs';\r\nimport { catchError, finalize, switchMap } from 'rxjs/operators';\r\nimport { eAccountComponents } from '../../enums/components';\r\nimport { getRedirectUrl } from '../../utils/auth-utils';\r\n\r\nconst { maxLength, required, email } = Validators;\r\n\r\n@Component({\r\n selector: 'abp-register',\r\n templateUrl: './register.component.html',\r\n})\r\nexport class RegisterComponent implements OnInit {\r\n form: FormGroup;\r\n\r\n inProgress: boolean;\r\n\r\n isSelfRegistrationEnabled = true;\r\n\r\n authWrapperKey = eAccountComponents.AuthWrapper;\r\n\r\n constructor(\r\n protected fb: FormBuilder,\r\n protected accountService: AccountService,\r\n protected configState: ConfigStateService,\r\n protected toasterService: ToasterService,\r\n protected authService: AuthService,\r\n protected injector: Injector,\r\n ) {}\r\n\r\n ngOnInit() {\r\n this.init();\r\n this.buildForm();\r\n }\r\n\r\n protected init() {\r\n this.isSelfRegistrationEnabled =\r\n (this.configState.getSetting('Abp.Account.IsSelfRegistrationEnabled') || '').toLowerCase() !==\r\n 'false';\r\n\r\n if (!this.isSelfRegistrationEnabled) {\r\n this.toasterService.warn(\r\n {\r\n key: 'AbpAccount::SelfRegistrationDisabledMessage',\r\n defaultValue: 'Self registration is disabled.',\r\n },\r\n null,\r\n { life: 10000 },\r\n );\r\n return;\r\n }\r\n }\r\n\r\n protected buildForm() {\r\n this.form = this.fb.group({\r\n username: ['', [required, maxLength(255)]],\r\n password: ['', [required, ...getPasswordValidators(this.injector)]],\r\n email: ['', [required, email]],\r\n });\r\n }\r\n\r\n onSubmit() {\r\n if (this.form.invalid) return;\r\n\r\n this.inProgress = true;\r\n\r\n const newUser = {\r\n userName: this.form.get('username').value,\r\n password: this.form.get('password').value,\r\n emailAddress: this.form.get('email').value,\r\n appName: 'Angular',\r\n } as RegisterDto;\r\n\r\n this.accountService\r\n .register(newUser)\r\n .pipe(\r\n switchMap(() =>\r\n this.authService.login({\r\n username: newUser.userName,\r\n password: newUser.password,\r\n redirectUrl: getRedirectUrl(this.injector),\r\n }),\r\n ),\r\n catchError(err => {\r\n this.toasterService.error(\r\n err.error?.error_description ||\r\n err.error?.error.message ||\r\n 'AbpAccount::DefaultErrorMessage',\r\n null,\r\n { life: 7000 },\r\n );\r\n\r\n return throwError(err);\r\n }),\r\n finalize(() => (this.inProgress = false)),\r\n )\r\n .subscribe();\r\n }\r\n}\r\n","<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","import { AccountService } from '@abp/ng.account.core/proxy';\r\nimport { getPasswordValidators } from '@abp/ng.theme.shared';\r\nimport { Component, Injector, OnInit } from '@angular/core';\r\nimport { FormBuilder, FormGroup, Validators } from '@angular/forms';\r\nimport { ActivatedRoute, Router } from '@angular/router';\r\nimport { comparePasswords, Validation } from '@ngx-validate/core';\r\nimport { finalize } from 'rxjs/operators';\r\n\r\nconst PASSWORD_FIELDS = ['password', 'confirmPassword'];\r\n\r\n@Component({\r\n selector: 'abp-reset-password',\r\n templateUrl: './reset-password.component.html',\r\n})\r\nexport class ResetPasswordComponent implements OnInit {\r\n form: FormGroup;\r\n\r\n inProgress = false;\r\n\r\n isPasswordReset = false;\r\n\r\n mapErrorsFn: Validation.MapErrorsFn = (errors, groupErrors, control) => {\r\n if (PASSWORD_FIELDS.indexOf(String(control.name)) < 0) return errors;\r\n\r\n return errors.concat(groupErrors.filter(({ key }) => key === 'passwordMismatch'));\r\n };\r\n\r\n constructor(\r\n private fb: FormBuilder,\r\n private accountService: AccountService,\r\n private route: ActivatedRoute,\r\n private router: Router,\r\n private injector: Injector,\r\n ) {}\r\n\r\n ngOnInit(): void {\r\n this.route.queryParams.subscribe(({ userId, resetToken }) => {\r\n if (!userId || !resetToken) this.router.navigateByUrl('/account/login');\r\n\r\n this.form = this.fb.group(\r\n {\r\n userId: [userId, [Validators.required]],\r\n resetToken: [resetToken, [Validators.required]],\r\n password: ['', [Validators.required, ...getPasswordValidators(this.injector)]],\r\n confirmPassword: ['', [Validators.required, ...getPasswordValidators(this.injector)]],\r\n },\r\n {\r\n validators: [comparePasswords(PASSWORD_FIELDS)],\r\n },\r\n );\r\n });\r\n }\r\n\r\n onSubmit() {\r\n if (this.form.invalid || this.inProgress) return;\r\n\r\n this.inProgress = true;\r\n\r\n this.accountService\r\n .resetPassword({\r\n userId: this.form.get('userId').value,\r\n resetToken: this.form.get('resetToken').value,\r\n password: this.form.get('password').value,\r\n })\r\n .pipe(finalize(() => (this.inProgress = false)))\r\n .subscribe(() => {\r\n this.isPasswordReset = true;\r\n });\r\n }\r\n}\r\n","<h4>{{ 'AbpAccount::ResetPassword' | abpLocalization }}</h4>\r\n\r\n<form\r\n *ngIf=\"!isPasswordReset; else passwordResetTemplate\"\r\n [formGroup]=\"form\"\r\n [mapErrorsFn]=\"mapErrorsFn\"\r\n (ngSubmit)=\"onSubmit()\"\r\n validateOnSubmit\r\n>\r\n <p>{{ 'AbpAccount::ResetPassword_Information' | abpLocalization }}</p>\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 type=\"password\" id=\"input-password\" class=\"form-control\" formControlName=\"password\" />\r\n </div>\r\n <div class=\"mb-3 form-group\">\r\n <label for=\"input-confirm-password\" class=\"form-label\">{{\r\n 'AbpAccount::ConfirmPassword' | abpLocalization\r\n }}</label\r\n ><span> * </span>\r\n <input\r\n type=\"password\"\r\n id=\"input-confirm-password\"\r\n class=\"form-control\"\r\n formControlName=\"confirmPassword\"\r\n />\r\n </div>\r\n <button class=\"me-2 btn btn-secondary\" type=\"button\" routerLink=\"/account/login\">\r\n {{ 'AbpAccount::Cancel' | abpLocalization }}\r\n </button>\r\n <abp-button\r\n buttonType=\"submit\"\r\n buttonClass=\"me-2 btn btn-primary\"\r\n [loading]=\"inProgress\"\r\n (click)=\"onSubmit()\"\r\n >\r\n {{ 'AbpAccount::Submit' | abpLocalization }}\r\n </abp-button>\r\n</form>\r\n\r\n<ng-template #passwordResetTemplate>\r\n <p>\r\n {{ 'AbpAccount::YourPasswordIsSuccessfullyReset' | abpLocalization }}\r\n </p>\r\n\r\n <a routerLink=\"/account/login\">\r\n <button class=\"d-block mt-2 mb-3 btn btn-primary\">\r\n {{ 'AbpAccount::BackToLogin' | abpLocalization }}\r\n </button>\r\n </a>\r\n</ng-template>\r\n","import { AuthService } from '@abp/ng.core';\r\nimport { Injectable } from '@angular/core';\r\nimport { CanActivate } from '@angular/router';\r\n\r\n@Injectable()\r\nexport class AuthenticationFlowGuard implements CanActivate {\r\n constructor(private authService: AuthService) {}\r\n\r\n canActivate() {\r\n if (this.authService.isInternalAuth) return true;\r\n\r\n this.authService.navigateToLogin();\r\n return false;\r\n }\r\n}\r\n","import {\r\n AuthGuard,\r\n ReplaceableComponents,\r\n ReplaceableRouteContainerComponent,\r\n RouterOutletComponent,\r\n} from '@abp/ng.core';\r\nimport { NgModule } from '@angular/core';\r\nimport { RouterModule, Routes } from '@angular/router';\r\nimport { ForgotPasswordComponent } from './components/forgot-password/forgot-password.component';\r\nimport { LoginComponent } from './components/login/login.component';\r\nimport { ManageProfileComponent } from './components/manage-profile/manage-profile.component';\r\nimport { RegisterComponent } from './components/register/register.component';\r\nimport { ResetPasswordComponent } from './components/reset-password/reset-password.component';\r\nimport { eAccountComponents } from './enums/components';\r\nimport { AuthenticationFlowGuard } from './guards/authentication-flow.guard';\r\n\r\nconst routes: Routes = [\r\n { path: '', pathMatch: 'full', redirectTo: 'login' },\r\n {\r\n path: '',\r\n component: RouterOutletComponent,\r\n children: [\r\n {\r\n path: 'login',\r\n component: ReplaceableRouteContainerComponent,\r\n canActivate: [AuthenticationFlowGuard],\r\n data: {\r\n replaceableComponent: {\r\n key: eAccountComponents.Login,\r\n defaultComponent: LoginComponent,\r\n } as ReplaceableComponents.RouteData<LoginComponent>,\r\n },\r\n },\r\n {\r\n path: 'register',\r\n component: ReplaceableRouteContainerComponent,\r\n canActivate: [AuthenticationFlowGuard],\r\n data: {\r\n replaceableComponent: {\r\n key: eAccountComponents.Register,\r\n defaultComponent: RegisterComponent,\r\n } as ReplaceableComponents.RouteData<RegisterComponent>,\r\n },\r\n },\r\n {\r\n path: 'forgot-password',\r\n component: ReplaceableRouteContainerComponent,\r\n canActivate: [AuthenticationFlowGuard],\r\n data: {\r\n replaceableComponent: {\r\n key: eAccountComponents.ForgotPassword,\r\n defaultComponent: ForgotPasswordComponent,\r\n } as ReplaceableComponents.RouteData<ForgotPasswordComponent>,\r\n },\r\n },\r\n {\r\n path: 'reset-password',\r\n component: ReplaceableRouteContainerComponent,\r\n canActivate: [],\r\n data: {\r\n tenantBoxVisible: false,\r\n replaceableComponent: {\r\n key: eAccountComponents.ResetPassword,\r\n defaultComponent: ResetPasswordComponent,\r\n } as ReplaceableComponents.RouteData<ResetPasswordComponent>,\r\n },\r\n },\r\n {\r\n path: 'manage',\r\n component: ReplaceableRouteContainerComponent,\r\n canActivate: [AuthGuard],\r\n data: {\r\n replaceableComponent: {\r\n key: eAccountComponents.ManageProfile,\r\n defaultComponent: ManageProfileComponent,\r\n } as ReplaceableComponents.RouteData<ManageProfileComponent>,\r\n },\r\n },\r\n ],\r\n },\r\n];\r\n\r\n@NgModule({\r\n imports: [RouterModule.forChild(routes)],\r\n exports: [RouterModule],\r\n})\r\nexport class AccountRoutingModule {}\r\n","import { AccountConfigOptions } from '../models/config-options';\r\n\r\nexport function accountConfigOptionsFactory(options: AccountConfigOptions) {\r\n return {\r\n redirectUrl: '/',\r\n ...options,\r\n };\r\n}\r\n","import { CoreModule, LazyModuleFactory } from '@abp/ng.core';\r\nimport { ThemeSharedModule } from '@abp/ng.theme.shared';\r\nimport { ModuleWithProviders, NgModule, NgModuleFactory } from '@angular/core';\r\nimport { NgbDropdownModule } from '@ng-bootstrap/ng-bootstrap';\r\nimport { NgxValidateCoreModule } from '@ngx-validate/core';\r\nimport { AccountRoutingModule } from './account-routing.module';\r\nimport { ChangePasswordComponent } from './components/change-password/change-password.component';\r\nimport { LoginComponent } from './components/login/login.component';\r\nimport { ManageProfileComponent } from './components/manage-profile/manage-profile.component';\r\nimport { PersonalSettingsComponent } from './components/personal-settings/personal-settings.component';\r\nimport { RegisterComponent } from './components/register/register.component';\r\nimport { AccountConfigOptions } from './models/config-options';\r\nimport { ACCOUNT_CONFIG_OPTIONS } from './tokens/config-options.token';\r\nimport { accountConfigOptionsFactory } from './utils/factory-utils';\r\nimport { AuthenticationFlowGuard } from './guards/authentication-flow.guard';\r\nimport { ForgotPasswordComponent } from './components/forgot-password/forgot-password.component';\r\nimport { ResetPasswordComponent } from './components/reset-password/reset-password.component';\r\nimport { RE_LOGIN_CONFIRMATION_TOKEN } from './tokens';\r\n\r\nconst declarations = [\r\n LoginComponent,\r\n RegisterComponent,\r\n ChangePasswordComponent,\r\n ManageProfileComponent,\r\n PersonalSettingsComponent,\r\n ForgotPasswordComponent,\r\n ResetPasswordComponent,\r\n];\r\n\r\n@NgModule({\r\n declarations: [...declarations],\r\n imports: [\r\n CoreModule,\r\n AccountRoutingModule,\r\n ThemeSharedModule,\r\n NgbDropdownModule,\r\n NgxValidateCoreModule,\r\n ],\r\n exports: [...declarations],\r\n})\r\nexport class AccountModule {\r\n static forChild(options = {} as AccountConfigOptions): ModuleWithProviders<AccountModule> {\r\n return {\r\n ngModule: AccountModule,\r\n providers: [\r\n AuthenticationFlowGuard,\r\n { provide: ACCOUNT_CONFIG_OPTIONS, useValue: options },\r\n {\r\n provide: 'ACCOUNT_OPTIONS',\r\n useFactory: accountConfigOptionsFactory,\r\n deps: [ACCOUNT_CONFIG_OPTIONS],\r\n },\r\n {\r\n provide: RE_LOGIN_CONFIRMATION_TOKEN,\r\n useValue: options.isPersonalSettingsChangedConfirmationActive ?? true,\r\n },\r\n ],\r\n };\r\n }\r\n\r\n static forLazy(options = {} as AccountConfigOptions): NgModuleFactory<AccountModule> {\r\n return new LazyModuleFactory(AccountModule.forChild(options));\r\n }\r\n}\r\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public-api';\n"],"names":["i3","i4","i5","i6","i7","maxLength","required","i2","PASSWORD_FIELDS","i4.ManageProfileStateService","email","i1","i2.ManageProfileStateService","i3.ChangePasswordComponent","i4.PersonalSettingsComponent"],"mappings":"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"}
|
|
@@ -1,9 +1,9 @@
|
|
|
1
1
|
import * as i3 from '@abp/ng.core';
|
|
2
2
|
import { InternalStore, RouterOutletComponent, ReplaceableRouteContainerComponent, AuthGuard, LazyModuleFactory, CoreModule } from '@abp/ng.core';
|
|
3
3
|
import * as i2$1 from '@abp/ng.theme.shared';
|
|
4
|
-
import { getPasswordValidators, fadeIn, ThemeSharedModule } from '@abp/ng.theme.shared';
|
|
4
|
+
import { getPasswordValidators, Confirmation, fadeIn, ThemeSharedModule } from '@abp/ng.theme.shared';
|
|
5
5
|
import * as i0 from '@angular/core';
|
|
6
|
-
import { Component, InjectionToken, Injectable, NgModule } from '@angular/core';
|
|
6
|
+
import { Component, InjectionToken, Injectable, Inject, NgModule } from '@angular/core';
|
|
7
7
|
import { NgbDropdownModule } from '@ng-bootstrap/ng-bootstrap';
|
|
8
8
|
import * as i6$1 from '@ngx-validate/core';
|
|
9
9
|
import { comparePasswords, NgxValidateCoreModule } from '@ngx-validate/core';
|
|
@@ -12,7 +12,7 @@ import { ActivatedRoute, RouterModule } from '@angular/router';
|
|
|
12
12
|
import * as i2 from '@abp/ng.account.core/proxy';
|
|
13
13
|
import * as i1 from '@angular/forms';
|
|
14
14
|
import { Validators, FormControl } from '@angular/forms';
|
|
15
|
-
import { finalize, catchError, switchMap } from 'rxjs/operators';
|
|
15
|
+
import { finalize, catchError, filter, switchMap } from 'rxjs/operators';
|
|
16
16
|
import * as i6 from '@angular/common';
|
|
17
17
|
import { throwError } from 'rxjs';
|
|
18
18
|
import { trigger, transition, useAnimation } from '@angular/animations';
|
|
@@ -202,30 +202,39 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.6", ngImpor
|
|
|
202
202
|
args: [{ selector: 'abp-change-password-form', exportAs: 'abpChangePasswordForm', template: "<form [formGroup]=\"form\" (ngSubmit)=\"onSubmit()\" [mapErrorsFn]=\"mapErrorsFn\" validateOnSubmit>\r\n <div *ngIf=\"!hideCurrentPassword\" class=\"mb-3 form-group\">\r\n <label for=\"current-password\" class=\"form-label\">{{\r\n 'AbpIdentity::DisplayName:CurrentPassword' | abpLocalization\r\n }}</label\r\n ><span> * </span\r\n ><input\r\n type=\"password\"\r\n id=\"current-password\"\r\n class=\"form-control\"\r\n formControlName=\"password\"\r\n autofocus\r\n autocomplete=\"current-password\"\r\n />\r\n </div>\r\n <div class=\"mb-3 form-group\">\r\n <label for=\"new-password\" class=\"form-label\">{{\r\n 'AbpIdentity::DisplayName:NewPassword' | abpLocalization\r\n }}</label\r\n ><span> * </span\r\n ><input\r\n type=\"password\"\r\n id=\"new-password\"\r\n class=\"form-control\"\r\n formControlName=\"newPassword\"\r\n autocomplete=\"new-password\"\r\n />\r\n </div>\r\n <div class=\"mb-3 form-group\">\r\n <label for=\"confirm-new-password\" class=\"form-label\">{{\r\n 'AbpIdentity::DisplayName:NewPasswordConfirm' | abpLocalization\r\n }}</label\r\n ><span> * </span\r\n ><input\r\n type=\"password\"\r\n id=\"confirm-new-password\"\r\n class=\"form-control\"\r\n formControlName=\"repeatNewPassword\"\r\n autocomplete=\"new-password\"\r\n />\r\n </div>\r\n <abp-button\r\n iconClass=\"fa fa-check\"\r\n buttonClass=\"btn btn-primary color-white\"\r\n buttonType=\"submit\"\r\n [loading]=\"inProgress\"\r\n [disabled]=\"form?.invalid\"\r\n >{{ 'AbpIdentity::Save' | abpLocalization }}</abp-button\r\n >\r\n</form>\r\n" }]
|
|
203
203
|
}], ctorParameters: function () { return [{ type: i1.FormBuilder }, { type: i0.Injector }, { type: i2$1.ToasterService }, { type: i2.ProfileService }, { type: ManageProfileStateService }]; } });
|
|
204
204
|
|
|
205
|
+
const RE_LOGIN_CONFIRMATION_TOKEN = new InjectionToken('RE_LOGIN_CONFIRMATION_TOKEN');
|
|
206
|
+
|
|
205
207
|
const { maxLength: maxLength$1, required: required$1, email: email$1 } = Validators;
|
|
206
208
|
class PersonalSettingsComponent {
|
|
207
|
-
constructor(fb, toasterService, profileService, manageProfileState) {
|
|
209
|
+
constructor(fb, toasterService, profileService, manageProfileState, authService, confirmationService, isPersonalSettingsChangedConfirmationActive) {
|
|
208
210
|
this.fb = fb;
|
|
209
211
|
this.toasterService = toasterService;
|
|
210
212
|
this.profileService = profileService;
|
|
211
213
|
this.manageProfileState = manageProfileState;
|
|
214
|
+
this.authService = authService;
|
|
215
|
+
this.confirmationService = confirmationService;
|
|
216
|
+
this.isPersonalSettingsChangedConfirmationActive = isPersonalSettingsChangedConfirmationActive;
|
|
217
|
+
this.logoutConfirmation = () => {
|
|
218
|
+
this.authService.logout().subscribe();
|
|
219
|
+
};
|
|
212
220
|
}
|
|
213
221
|
ngOnInit() {
|
|
214
222
|
this.buildForm();
|
|
215
223
|
}
|
|
216
224
|
buildForm() {
|
|
217
|
-
|
|
225
|
+
this.profile = this.manageProfileState.getProfile();
|
|
218
226
|
this.form = this.fb.group({
|
|
219
|
-
userName: [profile.userName, [required$1, maxLength$1(256)]],
|
|
220
|
-
email: [profile.email, [required$1, email$1, maxLength$1(256)]],
|
|
221
|
-
name: [profile.name || '', [maxLength$1(64)]],
|
|
222
|
-
surname: [profile.surname || '', [maxLength$1(64)]],
|
|
223
|
-
phoneNumber: [profile.phoneNumber || '', [maxLength$1(16)]],
|
|
227
|
+
userName: [this.profile.userName, [required$1, maxLength$1(256)]],
|
|
228
|
+
email: [this.profile.email, [required$1, email$1, maxLength$1(256)]],
|
|
229
|
+
name: [this.profile.name || '', [maxLength$1(64)]],
|
|
230
|
+
surname: [this.profile.surname || '', [maxLength$1(64)]],
|
|
231
|
+
phoneNumber: [this.profile.phoneNumber || '', [maxLength$1(16)]],
|
|
224
232
|
});
|
|
225
233
|
}
|
|
226
234
|
submit() {
|
|
227
235
|
if (this.form.invalid)
|
|
228
236
|
return;
|
|
237
|
+
const isLogOutConfirmMessageVisible = this.isLogoutConfirmMessageActive();
|
|
229
238
|
this.inProgress = true;
|
|
230
239
|
this.profileService
|
|
231
240
|
.update(this.form.value)
|
|
@@ -233,15 +242,41 @@ class PersonalSettingsComponent {
|
|
|
233
242
|
.subscribe(profile => {
|
|
234
243
|
this.manageProfileState.setProfile(profile);
|
|
235
244
|
this.toasterService.success('AbpAccount::PersonalSettingsSaved', 'Success', { life: 5000 });
|
|
245
|
+
if (isLogOutConfirmMessageVisible) {
|
|
246
|
+
this.showLogoutConfirmMessage();
|
|
247
|
+
}
|
|
248
|
+
});
|
|
249
|
+
}
|
|
250
|
+
isDataSame(oldValue, newValue) {
|
|
251
|
+
return Object.entries(oldValue).some(([key, value]) => {
|
|
252
|
+
if (key in newValue) {
|
|
253
|
+
return value !== newValue[key];
|
|
254
|
+
}
|
|
255
|
+
return false;
|
|
236
256
|
});
|
|
237
257
|
}
|
|
258
|
+
isLogoutConfirmMessageActive() {
|
|
259
|
+
if (!this.isPersonalSettingsChangedConfirmationActive) {
|
|
260
|
+
return false;
|
|
261
|
+
}
|
|
262
|
+
return this.isDataSame(this.profile, this.form.value);
|
|
263
|
+
}
|
|
264
|
+
showLogoutConfirmMessage() {
|
|
265
|
+
this.confirmationService
|
|
266
|
+
.info('AbpAccount::PersonalSettingsChangedConfirmationModalDescription', 'AbpAccount::PersonalSettingsChangedConfirmationModalTitle')
|
|
267
|
+
.pipe(filter(status => status === Confirmation.Status.confirm))
|
|
268
|
+
.subscribe(this.logoutConfirmation);
|
|
269
|
+
}
|
|
238
270
|
}
|
|
239
|
-
PersonalSettingsComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.3.6", ngImport: i0, type: PersonalSettingsComponent, deps: [{ token: i1.FormBuilder }, { token: i2$1.ToasterService }, { token: i2.ProfileService }, { token: ManageProfileStateService }], target: i0.ɵɵFactoryTarget.Component });
|
|
271
|
+
PersonalSettingsComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.3.6", ngImport: i0, type: PersonalSettingsComponent, deps: [{ token: i1.FormBuilder }, { token: i2$1.ToasterService }, { token: i2.ProfileService }, { token: ManageProfileStateService }, { token: i3.AuthService }, { token: i2$1.ConfirmationService }, { token: RE_LOGIN_CONFIRMATION_TOKEN }], target: i0.ɵɵFactoryTarget.Component });
|
|
240
272
|
PersonalSettingsComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "13.3.6", 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$1.ButtonComponent, selector: "abp-button", inputs: ["buttonId", "buttonClass", "buttonType", "formName", "iconClass", "loading", "disabled", "attributes"], outputs: ["click", "focus", "blur", "abpClick", "abpFocus", "abpBlur"] }], directives: [{ 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", "markAsDirtyWhenSubmit"], outputs: ["ngSubmit"] }, { type: i1.FormGroupDirective, selector: "[formGroup]", inputs: ["formGroup"], outputs: ["ngSubmit"], exportAs: ["ngForm"] }, { type: i6$1.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: ["formControlName", "disabled", "ngModel"], outputs: ["ngModelChange"] }, { type: i6$1.ValidationDirective, selector: "[formControl],[formControlName]", exportAs: ["validationDirective"] }, { type: i3.AutofocusDirective, selector: "[autofocus]", inputs: ["autofocus"] }], pipes: { "abpLocalization": i3.LocalizationPipe } });
|
|
241
273
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.6", ngImport: i0, type: PersonalSettingsComponent, decorators: [{
|
|
242
274
|
type: Component,
|
|
243
275
|
args: [{ selector: 'abp-personal-settings-form', exportAs: 'abpPersonalSettingsForm', 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" }]
|
|
244
|
-
}], ctorParameters: function () { return [{ type: i1.FormBuilder }, { type: i2$1.ToasterService }, { type: i2.ProfileService }, { type: ManageProfileStateService }
|
|
276
|
+
}], ctorParameters: function () { return [{ type: i1.FormBuilder }, { type: i2$1.ToasterService }, { type: i2.ProfileService }, { type: ManageProfileStateService }, { type: i3.AuthService }, { type: i2$1.ConfirmationService }, { type: undefined, decorators: [{
|
|
277
|
+
type: Inject,
|
|
278
|
+
args: [RE_LOGIN_CONFIRMATION_TOKEN]
|
|
279
|
+
}] }]; } });
|
|
245
280
|
|
|
246
281
|
class ManageProfileComponent {
|
|
247
282
|
constructor(profileService, manageProfileState) {
|
|
@@ -518,6 +553,10 @@ class AccountModule {
|
|
|
518
553
|
useFactory: accountConfigOptionsFactory,
|
|
519
554
|
deps: [ACCOUNT_CONFIG_OPTIONS],
|
|
520
555
|
},
|
|
556
|
+
{
|
|
557
|
+
provide: RE_LOGIN_CONFIRMATION_TOKEN,
|
|
558
|
+
useValue: options.isPersonalSettingsChangedConfirmationActive ?? true,
|
|
559
|
+
},
|
|
521
560
|
],
|
|
522
561
|
};
|
|
523
562
|
}
|
|
@@ -571,5 +610,5 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.6", ngImpor
|
|
|
571
610
|
* Generated bundle index. Do not edit.
|
|
572
611
|
*/
|
|
573
612
|
|
|
574
|
-
export { ACCOUNT_CONFIG_OPTIONS, AccountModule, AuthenticationFlowGuard, ChangePasswordComponent, ForgotPasswordComponent, LoginComponent, ManageProfileComponent, ManageProfileStateService, PersonalSettingsComponent, RegisterComponent, ResetPasswordComponent };
|
|
613
|
+
export { ACCOUNT_CONFIG_OPTIONS, AccountModule, AuthenticationFlowGuard, ChangePasswordComponent, ForgotPasswordComponent, LoginComponent, ManageProfileComponent, ManageProfileStateService, PersonalSettingsComponent, RE_LOGIN_CONFIRMATION_TOKEN, RegisterComponent, ResetPasswordComponent };
|
|
575
614
|
//# sourceMappingURL=abp-ng.account.mjs.map
|