@abp/ng.account 10.1.1 → 10.2.0-rc.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.
@@ -6,14 +6,13 @@ import * as i1 from '@angular/forms';
6
6
  import { ReactiveFormsModule, Validators, UntypedFormBuilder, UntypedFormControl } from '@angular/forms';
7
7
  import { map, tap, finalize, catchError, filter, switchMap } from 'rxjs/operators';
8
8
  import { ProfileService, AccountService } from '@abp/ng.account.core/proxy';
9
- import { ToasterService, getPasswordValidators, ButtonComponent, ConfirmationService, Confirmation, fadeIn, LoadingDirective } from '@abp/ng.theme.shared';
9
+ import { ToasterService, getPasswordValidators, ButtonComponent, ConfirmationService, Confirmation, LoadingDirective } from '@abp/ng.theme.shared';
10
10
  import * as i2 from '@ngx-validate/core';
11
11
  import { comparePasswords, NgxValidateCoreModule } from '@ngx-validate/core';
12
12
  import * as i1$1 from '@angular/router';
13
13
  import { RouterLink, ActivatedRoute, Router, RouterModule } from '@angular/router';
14
14
  import { throwError, map as map$1, tap as tap$1 } from 'rxjs';
15
- import { trigger, transition, useAnimation } from '@angular/animations';
16
- import { NgClass, AsyncPipe } from '@angular/common';
15
+ import { AsyncPipe } from '@angular/common';
17
16
 
18
17
  const ACCOUNT_CONFIG_OPTIONS = new InjectionToken('ACCOUNT_CONFIG_OPTIONS');
19
18
 
@@ -460,20 +459,19 @@ class ManageProfileComponent {
460
459
  });
461
460
  }
462
461
  static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.0.9", ngImport: i0, type: ManageProfileComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
463
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "21.0.9", type: ManageProfileComponent, isStandalone: true, selector: "abp-manage-profile", ngImport: i0, template: "<div id=\"AbpContentToolbar\"></div>\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 @if (!hideChangePasswordTab && (profile$ | async)) {\r\n <li class=\"nav-item\" (click)=\"selectedTab = 0\">\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 }\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 @if (profile$ | async) {\r\n <div class=\"col-12 col-md-9\">\r\n @if (selectedTab === 0) {\r\n <div class=\"tab-content\" [@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 }\r\n @if (selectedTab === 1) {\r\n <div class=\"tab-content\" [@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 }\r\n </div>\r\n }\r\n </div>\r\n </div>\r\n</div>\r\n", styles: [".min-h-400{min-height:400px}\n"], dependencies: [{ kind: "directive", type: NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "ngmodule", type: ReactiveFormsModule }, { kind: "component", type: PersonalSettingsComponent, selector: "abp-personal-settings-form", exportAs: ["abpPersonalSettingsForm"] }, { kind: "component", type: ChangePasswordComponent, selector: "abp-change-password-form", exportAs: ["abpChangePasswordForm"] }, { kind: "directive", type: ReplaceableTemplateDirective, selector: "[abpReplaceableTemplate]", inputs: ["abpReplaceableTemplate"] }, { kind: "directive", type: LoadingDirective, selector: "[abpLoading]", inputs: ["abpLoading", "abpLoadingTargetElement", "abpLoadingDelay"] }, { kind: "pipe", type: AsyncPipe, name: "async" }, { kind: "pipe", type: LocalizationPipe, name: "abpLocalization" }], animations: [trigger('fadeIn', [transition(':enter', useAnimation(fadeIn))])] }); }
462
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "21.0.9", type: ManageProfileComponent, isStandalone: true, selector: "abp-manage-profile", ngImport: i0, template: "<div id=\"AbpContentToolbar\"></div>\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 @if (!hideChangePasswordTab && (profile$ | async)) {\r\n <li class=\"nav-item\" (click)=\"selectedTab = 0\">\r\n <a class=\"nav-link\" [class.active]=\"selectedTab === 0\" role=\"tab\" href=\"javascript:void(0)\">{{\r\n 'AbpUi::ChangePassword' | abpLocalization }}</a>\r\n </li>\r\n }\r\n <li class=\"nav-item mb-2\" (click)=\"selectedTab = 1\">\r\n <a class=\"nav-link\" [class.active]=\"selectedTab === 1\" role=\"tab\" href=\"javascript:void(0)\">{{\r\n 'AbpAccount::PersonalSettings' | abpLocalization }}</a>\r\n </li>\r\n </ul>\r\n </div>\r\n @if (profile$ | async) {\r\n <div class=\"col-12 col-md-9\">\r\n @if (selectedTab === 0) {\r\n <div class=\"tab-content fade-in\">\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 *abpReplaceableTemplate=\"{\r\n componentKey: changePasswordKey\r\n }\"></abp-change-password-form>\r\n </div>\r\n </div>\r\n }\r\n @if (selectedTab === 1) {\r\n <div class=\"tab-content fade-in\">\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 *abpReplaceableTemplate=\"{\r\n componentKey: personalSettingsKey\r\n }\"></abp-personal-settings-form>\r\n </div>\r\n </div>\r\n }\r\n </div>\r\n }\r\n </div>\r\n </div>\r\n</div>", styles: [".min-h-400{min-height:400px}.fade-in{animation:fadeIn .35s ease both}@keyframes fadeIn{0%{opacity:0}to{opacity:1}}\n"], dependencies: [{ kind: "ngmodule", type: ReactiveFormsModule }, { kind: "component", type: PersonalSettingsComponent, selector: "abp-personal-settings-form", exportAs: ["abpPersonalSettingsForm"] }, { kind: "component", type: ChangePasswordComponent, selector: "abp-change-password-form", exportAs: ["abpChangePasswordForm"] }, { kind: "directive", type: ReplaceableTemplateDirective, selector: "[abpReplaceableTemplate]", inputs: ["abpReplaceableTemplate"] }, { kind: "directive", type: LoadingDirective, selector: "[abpLoading]", inputs: ["abpLoading", "abpLoadingTargetElement", "abpLoadingDelay"] }, { kind: "pipe", type: AsyncPipe, name: "async" }, { kind: "pipe", type: LocalizationPipe, name: "abpLocalization" }] }); }
464
463
  }
465
464
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.0.9", ngImport: i0, type: ManageProfileComponent, decorators: [{
466
465
  type: Component,
467
- args: [{ selector: 'abp-manage-profile', animations: [trigger('fadeIn', [transition(':enter', useAnimation(fadeIn))])], imports: [
468
- NgClass,
466
+ args: [{ selector: 'abp-manage-profile', imports: [
469
467
  AsyncPipe,
470
468
  ReactiveFormsModule,
471
469
  PersonalSettingsComponent,
472
470
  ChangePasswordComponent,
473
471
  LocalizationPipe,
474
472
  ReplaceableTemplateDirective,
475
- LoadingDirective,
476
- ], template: "<div id=\"AbpContentToolbar\"></div>\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 @if (!hideChangePasswordTab && (profile$ | async)) {\r\n <li class=\"nav-item\" (click)=\"selectedTab = 0\">\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 }\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 @if (profile$ | async) {\r\n <div class=\"col-12 col-md-9\">\r\n @if (selectedTab === 0) {\r\n <div class=\"tab-content\" [@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 }\r\n @if (selectedTab === 1) {\r\n <div class=\"tab-content\" [@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 }\r\n </div>\r\n }\r\n </div>\r\n </div>\r\n</div>\r\n", styles: [".min-h-400{min-height:400px}\n"] }]
473
+ LoadingDirective
474
+ ], template: "<div id=\"AbpContentToolbar\"></div>\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 @if (!hideChangePasswordTab && (profile$ | async)) {\r\n <li class=\"nav-item\" (click)=\"selectedTab = 0\">\r\n <a class=\"nav-link\" [class.active]=\"selectedTab === 0\" role=\"tab\" href=\"javascript:void(0)\">{{\r\n 'AbpUi::ChangePassword' | abpLocalization }}</a>\r\n </li>\r\n }\r\n <li class=\"nav-item mb-2\" (click)=\"selectedTab = 1\">\r\n <a class=\"nav-link\" [class.active]=\"selectedTab === 1\" role=\"tab\" href=\"javascript:void(0)\">{{\r\n 'AbpAccount::PersonalSettings' | abpLocalization }}</a>\r\n </li>\r\n </ul>\r\n </div>\r\n @if (profile$ | async) {\r\n <div class=\"col-12 col-md-9\">\r\n @if (selectedTab === 0) {\r\n <div class=\"tab-content fade-in\">\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 *abpReplaceableTemplate=\"{\r\n componentKey: changePasswordKey\r\n }\"></abp-change-password-form>\r\n </div>\r\n </div>\r\n }\r\n @if (selectedTab === 1) {\r\n <div class=\"tab-content fade-in\">\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 *abpReplaceableTemplate=\"{\r\n componentKey: personalSettingsKey\r\n }\"></abp-personal-settings-form>\r\n </div>\r\n </div>\r\n }\r\n </div>\r\n }\r\n </div>\r\n </div>\r\n</div>", styles: [".min-h-400{min-height:400px}.fade-in{animation:fadeIn .35s ease both}@keyframes fadeIn{0%{opacity:0}to{opacity:1}}\n"] }]
477
475
  }] });
478
476
 
479
477
  const { maxLength, required, email } = Validators;
@@ -1 +1 @@
1
- {"version":3,"file":"abp-ng.account.mjs","sources":["../../../../packages/account/src/lib/tokens/config-options.token.ts","../../../../packages/account/src/lib/utils/factory-utils.ts","../../../../packages/account/src/lib/guards/authentication-flow.guard.ts","../../../../packages/account/src/lib/tokens/re-login-confirmation.token.ts","../../../../packages/account/src/lib/components/personal-settings/personal-settings-half-row.component.ts","../../../../packages/account/src/lib/defaults/default-personal-settings-form-props.ts","../../../../packages/account/src/lib/tokens/extensions.token.ts","../../../../packages/account/src/lib/guards/extensions.guard.ts","../../../../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/forgot-password/forgot-password.component.ts","../../../../packages/account/src/lib/components/forgot-password/forgot-password.component.html","../../../../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/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/resolvers/extensions.resolver.ts","../../../../packages/account/src/lib/account-routing.module.ts","../../../../packages/account/src/lib/account.module.ts","../../../../packages/account/src/lib/models/account.ts","../../../../packages/account/src/lib/account.routes.ts","../../../../packages/account/src/abp-ng.account.ts"],"sourcesContent":["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 { 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 { AuthService, IAbpGuard } from '@abp/ng.core';\r\nimport { Injectable, inject } from '@angular/core';\r\nimport { CanActivateFn } from '@angular/router';\r\n\r\n/**\r\n * @deprecated Use `authenticationFlowGuard` *function* instead.\r\n */\r\n@Injectable()\r\nexport class AuthenticationFlowGuard implements IAbpGuard {\r\n protected readonly authService = inject(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\r\nexport const authenticationFlowGuard: CanActivateFn = () => {\r\n const authService = inject(AuthService);\r\n\r\n if (authService.isInternalAuth) return true;\r\n\r\n authService.navigateToLogin();\r\n return false;\r\n};\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 { Component, inject } from '@angular/core';\r\nimport {\r\n EXTENSIONS_FORM_PROP,\r\n FormProp,\r\n EXTENSIBLE_FORM_VIEW_PROVIDER,\r\n} from '@abp/ng.components/extensible';\r\nimport { ReactiveFormsModule, UntypedFormGroup } from '@angular/forms';\r\nimport { LocalizationPipe } from '@abp/ng.core';\r\n\r\n@Component({\r\n selector: 'abp-personal-settings-half-row',\r\n template: ` <div class=\"w-50 d-inline\">\r\n <label [attr.for]=\"name\" class=\"form-label\">{{ displayName | abpLocalization }} </label>\r\n <input\r\n type=\"text\"\r\n [attr.id]=\"id\"\r\n class=\"form-control\"\r\n [attr.name]=\"name\"\r\n [formControlName]=\"name\"\r\n />\r\n </div>`,\r\n styles: [],\r\n viewProviders: [EXTENSIBLE_FORM_VIEW_PROVIDER],\r\n imports: [ReactiveFormsModule, LocalizationPipe],\r\n})\r\nexport class PersonalSettingsHalfRowComponent {\r\n private propData = inject<FormProp>(EXTENSIONS_FORM_PROP);\r\n\r\n public displayName: string;\r\n public name: string;\r\n public id: string;\r\n public formGroup!: UntypedFormGroup;\r\n\r\n constructor() {\r\n const propData = this.propData;\r\n\r\n this.displayName = propData.displayName;\r\n this.name = propData.name;\r\n this.id = propData.id || '';\r\n }\r\n}\r\n","import { ePropType, FormProp } from '@abp/ng.components/extensible';\r\nimport { UpdateProfileDto } from '@abp/ng.account.core/proxy';\r\nimport { Validators } from '@angular/forms';\r\nimport { PersonalSettingsHalfRowComponent } from '../components/personal-settings/personal-settings-half-row.component';\r\n\r\nconst { maxLength, required, email } = Validators;\r\nexport const DEFAULT_PERSONAL_SETTINGS_UPDATE_FORM_PROPS = FormProp.createMany<UpdateProfileDto>([\r\n {\r\n type: ePropType.String,\r\n name: 'userName',\r\n displayName: 'AbpIdentity::DisplayName:UserName',\r\n id: 'username',\r\n validators: () => [required, maxLength(256)],\r\n },\r\n {\r\n type: ePropType.String,\r\n name: 'name',\r\n displayName: 'AbpIdentity::DisplayName:Name',\r\n id: 'name',\r\n validators: () => [maxLength(64)],\r\n template: PersonalSettingsHalfRowComponent,\r\n className: 'd-inline-block w-50',\r\n },\r\n {\r\n type: ePropType.String,\r\n name: 'surname',\r\n displayName: 'AbpIdentity::DisplayName:Surname',\r\n id: 'surname',\r\n validators: () => [maxLength(64)],\r\n className: 'd-inline-block w-50 ps-4',\r\n template: PersonalSettingsHalfRowComponent,\r\n },\r\n {\r\n type: ePropType.String,\r\n name: 'email',\r\n displayName: 'AbpIdentity::DisplayName:Email',\r\n id: 'email-address',\r\n validators: () => [required, email, maxLength(256)],\r\n },\r\n {\r\n type: ePropType.String,\r\n name: 'phoneNumber',\r\n displayName: 'AbpIdentity::DisplayName:PhoneNumber',\r\n id: 'phone-number',\r\n validators: () => [maxLength(16)],\r\n },\r\n]);\r\n","import { eAccountComponents } from '../enums';\r\nimport { DEFAULT_PERSONAL_SETTINGS_UPDATE_FORM_PROPS } from '../defaults/default-personal-settings-form-props';\r\nimport { InjectionToken } from '@angular/core';\r\nimport { EditFormPropContributorCallback } from '@abp/ng.components/extensible';\r\nimport { UpdateProfileDto } from '@abp/ng.account.core/proxy';\r\n\r\nexport const DEFAULT_ACCOUNT_FORM_PROPS = {\r\n [eAccountComponents.PersonalSettings]: DEFAULT_PERSONAL_SETTINGS_UPDATE_FORM_PROPS,\r\n};\r\n\r\nexport const ACCOUNT_EDIT_FORM_PROP_CONTRIBUTORS = new InjectionToken<EditFormPropContributors>(\r\n 'ACCOUNT_EDIT_FORM_PROP_CONTRIBUTORS',\r\n);\r\n\r\ntype EditFormPropContributors = Partial<{\r\n [eAccountComponents.PersonalSettings]: EditFormPropContributorCallback<UpdateProfileDto>[];\r\n}>;\r\n","import { Injectable, Injector, inject } from '@angular/core';\r\nimport { Observable } from 'rxjs';\r\nimport { tap, map } from 'rxjs/operators';\r\nimport { IAbpGuard } from '@abp/ng.core';\r\nimport {\r\n ExtensionsService,\r\n getObjectExtensionEntitiesFromStore,\r\n mapEntitiesToContributors,\r\n mergeWithDefaultProps,\r\n} from '@abp/ng.components/extensible';\r\n\r\nimport {\r\n ACCOUNT_EDIT_FORM_PROP_CONTRIBUTORS,\r\n DEFAULT_ACCOUNT_FORM_PROPS,\r\n} from '../tokens/extensions.token';\r\nimport { eAccountComponents } from '../enums/components';\r\n\r\n/**\r\n * @deprecated Use `accountExtensionsResolver` *function* instead.\r\n */\r\n@Injectable()\r\nexport class AccountExtensionsGuard implements IAbpGuard {\r\n protected readonly injector = inject(Injector);\r\n protected readonly extensions = inject(ExtensionsService);\r\n\r\n canActivate(): Observable<boolean> {\r\n const config = { optional: true };\r\n\r\n const editFormContributors = inject(ACCOUNT_EDIT_FORM_PROP_CONTRIBUTORS, config) || {};\r\n\r\n return getObjectExtensionEntitiesFromStore(this.injector, 'Identity').pipe(\r\n map(entities => ({\r\n [eAccountComponents.PersonalSettings]: entities.User,\r\n })),\r\n mapEntitiesToContributors(this.injector, 'AbpIdentity'),\r\n tap(objectExtensionContributors => {\r\n mergeWithDefaultProps(\r\n this.extensions.editFormProps,\r\n DEFAULT_ACCOUNT_FORM_PROPS,\r\n objectExtensionContributors.editForm,\r\n editFormContributors,\r\n );\r\n }),\r\n map(() => true),\r\n );\r\n }\r\n}\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 { ButtonComponent, getPasswordValidators, ToasterService } from '@abp/ng.theme.shared';\r\nimport { Component, Injector, OnInit, inject } from '@angular/core';\r\nimport {\r\n ReactiveFormsModule,\r\n UntypedFormBuilder,\r\n UntypedFormControl,\r\n UntypedFormGroup,\r\n Validators,\r\n} from '@angular/forms';\r\nimport { finalize } from 'rxjs/operators';\r\nimport { Account } from '../../models';\r\nimport { ManageProfileStateService } from '../../services';\r\nimport { comparePasswords, NgxValidateCoreModule, Validation } from '@ngx-validate/core';\r\nimport { AutofocusDirective, LocalizationPipe } from '@abp/ng.core';\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 imports: [\r\n ReactiveFormsModule,\r\n LocalizationPipe,\r\n ButtonComponent,\r\n NgxValidateCoreModule,\r\n AutofocusDirective,\r\n ],\r\n})\r\nexport class ChangePasswordComponent\r\n implements OnInit, Account.ChangePasswordComponentInputs, Account.ChangePasswordComponentOutputs\r\n{\r\n private fb = inject(UntypedFormBuilder);\r\n private injector = inject(Injector);\r\n private toasterService = inject(ToasterService);\r\n private profileService = inject(ProfileService);\r\n private manageProfileState = inject(ManageProfileStateService);\r\n\r\n form!: UntypedFormGroup;\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 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 UntypedFormControl('', [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]=\"true\" class=\"abp-md-form\">\r\n @if (!hideCurrentPassword) {\r\n <div 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 }\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 { AccountService } from '@abp/ng.account.core/proxy';\r\nimport { Component, inject } from '@angular/core';\r\nimport {\r\n ReactiveFormsModule,\r\n UntypedFormBuilder,\r\n UntypedFormGroup,\r\n Validators,\r\n} from '@angular/forms';\r\nimport { finalize } from 'rxjs/operators';\r\nimport { LocalizationPipe } from '@abp/ng.core';\r\nimport { ButtonComponent } from '@abp/ng.theme.shared';\r\nimport { RouterLink } from '@angular/router';\r\nimport { NgxValidateCoreModule } from '@ngx-validate/core';\r\n\r\n@Component({\r\n selector: 'abp-forgot-password',\r\n templateUrl: 'forgot-password.component.html',\r\n imports: [\r\n ReactiveFormsModule,\r\n RouterLink,\r\n LocalizationPipe,\r\n ButtonComponent,\r\n NgxValidateCoreModule,\r\n ],\r\n})\r\nexport class ForgotPasswordComponent {\r\n private fb = inject(UntypedFormBuilder);\r\n private accountService = inject(AccountService);\r\n\r\n form: UntypedFormGroup;\r\n\r\n inProgress?: boolean;\r\n\r\n isEmailSent = false;\r\n\r\n constructor() {\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@if (!isEmailSent) {\r\n <form [formGroup]=\"form\" (ngSubmit)=\"onSubmit()\" [validateOnSubmit]=\"true\">\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\" aria-hidden=\"true\"></i\r\n >{{ 'AbpAccount::Login' | abpLocalization }}</a\r\n >\r\n </form>\r\n} @else {\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\" aria-hidden=\"true\"></i>\r\n {{ 'AbpAccount::BackToLogin' | abpLocalization }}\r\n </button>\r\n </a>\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 { Component, Injector, OnInit, inject } from '@angular/core';\r\nimport {\r\n ReactiveFormsModule,\r\n UntypedFormBuilder,\r\n UntypedFormGroup,\r\n Validators,\r\n} from '@angular/forms';\r\nimport { RouterLink } from '@angular/router';\r\nimport { throwError } from 'rxjs';\r\nimport { catchError, finalize } from 'rxjs/operators';\r\nimport {\r\n AuthService,\r\n AutofocusDirective,\r\n ConfigStateService,\r\n LocalizationPipe,\r\n NgxValidateCoreModule,\r\n} from '@abp/ng.core';\r\nimport { ButtonComponent, ToasterService } from '@abp/ng.theme.shared';\r\nimport { eAccountComponents } from '../../enums';\r\nimport { getRedirectUrl } from '../../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 imports: [\r\n ReactiveFormsModule,\r\n RouterLink,\r\n LocalizationPipe,\r\n ButtonComponent,\r\n NgxValidateCoreModule,\r\n AutofocusDirective,\r\n ],\r\n})\r\nexport class LoginComponent implements OnInit {\r\n protected injector = inject(Injector);\r\n protected fb = inject(UntypedFormBuilder);\r\n protected toasterService = inject(ToasterService);\r\n protected authService = inject(AuthService);\r\n protected configState = inject(ConfigStateService);\r\n\r\n form!: UntypedFormGroup;\r\n\r\n inProgress?: boolean;\r\n\r\n isSelfRegistrationEnabled = true;\r\n\r\n authWrapperKey = eAccountComponents.AuthWrapper;\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 '',\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@if (isSelfRegistrationEnabled) {\r\n <strong>\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}\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\">{{\r\n 'AbpAccount::Password' | abpLocalization\r\n }}</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 { ProfileDto, ProfileService } from '@abp/ng.account.core/proxy';\r\nimport {\r\n ButtonComponent,\r\n Confirmation,\r\n ConfirmationService,\r\n ToasterService,\r\n} from '@abp/ng.theme.shared';\r\nimport { Component, inject, Injector, OnInit } from '@angular/core';\r\nimport { ReactiveFormsModule, UntypedFormBuilder, UntypedFormGroup } 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, ConfigStateService, LocalizationPipe } from '@abp/ng.core';\r\nimport { RE_LOGIN_CONFIRMATION_TOKEN } from '../../tokens';\r\nimport {\r\n ExtensibleFormComponent,\r\n EXTENSIONS_IDENTIFIER,\r\n FormPropData,\r\n generateFormFromProps,\r\n} from '@abp/ng.components/extensible';\r\nimport { eAccountComponents } from '../../enums';\r\nimport { NgxValidateCoreModule } from '@ngx-validate/core';\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 providers: [\r\n {\r\n provide: EXTENSIONS_IDENTIFIER,\r\n useValue: eAccountComponents.PersonalSettings,\r\n },\r\n ],\r\n imports: [\r\n ReactiveFormsModule,\r\n ExtensibleFormComponent,\r\n NgxValidateCoreModule,\r\n ButtonComponent,\r\n LocalizationPipe,\r\n ],\r\n})\r\nexport class PersonalSettingsComponent\r\n implements\r\n OnInit,\r\n Account.PersonalSettingsComponentInputs,\r\n Account.PersonalSettingsComponentOutputs\r\n{\r\n private readonly fb = inject(UntypedFormBuilder);\r\n protected readonly toasterService = inject(ToasterService);\r\n protected readonly profileService = inject(ProfileService);\r\n protected readonly manageProfileState = inject(ManageProfileStateService);\r\n protected readonly authService = inject(AuthService);\r\n protected readonly confirmationService = inject(ConfirmationService);\r\n protected readonly configState = inject(ConfigStateService);\r\n protected readonly isPersonalSettingsChangedConfirmationActive = inject(\r\n RE_LOGIN_CONFIRMATION_TOKEN,\r\n );\r\n private readonly injector = inject(Injector);\r\n\r\n selected?: ProfileDto;\r\n\r\n form!: UntypedFormGroup;\r\n\r\n inProgress?: boolean;\r\n\r\n buildForm() {\r\n this.selected = this.manageProfileState.getProfile();\r\n if (!this.selected) {\r\n return;\r\n }\r\n const data = new FormPropData(this.injector, this.selected);\r\n this.form = generateFormFromProps(data);\r\n }\r\n\r\n ngOnInit(): void {\r\n this.buildForm();\r\n }\r\n\r\n submit() {\r\n if (this.form.invalid) return;\r\n const isLogOutConfirmMessageVisible = this.isLogoutConfirmMessageActive();\r\n const isRefreshTokenExists = this.authService.getRefreshToken();\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.configState.refreshAppState();\r\n this.toasterService.success('AbpAccount::PersonalSettingsSaved', '', { life: 5000 });\r\n\r\n if (isRefreshTokenExists) {\r\n return this.authService.refreshToken();\r\n }\r\n\r\n if (isLogOutConfirmMessageVisible) {\r\n this.showLogoutConfirmMessage();\r\n }\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 return this.isPersonalSettingsChangedConfirmationActive;\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","@if (form) {\r\n <form [formGroup]=\"form\" (ngSubmit)=\"submit()\" validateOnSubmit class=\"abp-md-form\">\r\n <abp-extensible-form [selectedRecord]=\"selected\"></abp-extensible-form>\r\n \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 >\r\n {{ 'AbpIdentity::Save' | abpLocalization }}</abp-button\r\n >\r\n </form>\r\n}\r\n","import { ProfileService } from '@abp/ng.account.core/proxy';\r\nimport { fadeIn, LoadingDirective } from '@abp/ng.theme.shared';\r\nimport { transition, trigger, useAnimation } from '@angular/animations';\r\nimport { Component, inject, OnInit } from '@angular/core';\r\nimport { eAccountComponents } from '../../enums/components';\r\nimport { ManageProfileStateService } from '../../services/manage-profile.state.service';\r\nimport { NgClass, AsyncPipe } from '@angular/common';\r\nimport { ReactiveFormsModule } from '@angular/forms';\r\nimport { LocalizationPipe, ReplaceableTemplateDirective } from '@abp/ng.core';\r\nimport { PersonalSettingsComponent } from '../personal-settings/personal-settings.component';\r\nimport { ChangePasswordComponent } from '../change-password/change-password.component';\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 //TODO: move static styles\r\n `\r\n .min-h-400 {\r\n min-height: 400px;\r\n }\r\n `,\r\n ],\r\n imports: [\r\n NgClass,\r\n AsyncPipe,\r\n ReactiveFormsModule,\r\n PersonalSettingsComponent,\r\n ChangePasswordComponent,\r\n LocalizationPipe,\r\n ReplaceableTemplateDirective,\r\n LoadingDirective,\r\n ],\r\n})\r\nexport class ManageProfileComponent implements OnInit {\r\n protected profileService = inject(ProfileService);\r\n protected manageProfileState = inject(ManageProfileStateService);\r\n\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 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<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 @if (!hideChangePasswordTab && (profile$ | async)) {\r\n <li class=\"nav-item\" (click)=\"selectedTab = 0\">\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 }\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 @if (profile$ | async) {\r\n <div class=\"col-12 col-md-9\">\r\n @if (selectedTab === 0) {\r\n <div class=\"tab-content\" [@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 }\r\n @if (selectedTab === 1) {\r\n <div class=\"tab-content\" [@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 }\r\n </div>\r\n }\r\n </div>\r\n </div>\r\n</div>\r\n","import { AccountService, RegisterDto } from '@abp/ng.account.core/proxy';\r\nimport {\r\n AuthService,\r\n AutofocusDirective,\r\n ConfigStateService,\r\n LocalizationPipe,\r\n} from '@abp/ng.core';\r\nimport { ButtonComponent, getPasswordValidators, ToasterService } from '@abp/ng.theme.shared';\r\nimport { Component, Injector, OnInit, inject } from '@angular/core';\r\nimport {\r\n ReactiveFormsModule,\r\n UntypedFormBuilder,\r\n UntypedFormGroup,\r\n Validators,\r\n} 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\nimport { NgxValidateCoreModule } from '@ngx-validate/core';\r\nimport { RouterLink } from '@angular/router';\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 imports: [\r\n ReactiveFormsModule,\r\n RouterLink,\r\n NgxValidateCoreModule,\r\n LocalizationPipe,\r\n ButtonComponent,\r\n AutofocusDirective,\r\n ],\r\n})\r\nexport class RegisterComponent implements OnInit {\r\n protected fb = inject(UntypedFormBuilder);\r\n protected accountService = inject(AccountService);\r\n protected configState = inject(ConfigStateService);\r\n protected toasterService = inject(ToasterService);\r\n protected authService = inject(AuthService);\r\n protected injector = inject(Injector);\r\n\r\n form!: UntypedFormGroup;\r\n\r\n inProgress?: boolean;\r\n\r\n isSelfRegistrationEnabled = true;\r\n\r\n authWrapperKey = eAccountComponents.AuthWrapper;\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 '',\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 '',\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@if (isSelfRegistrationEnabled) {\r\n <form\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}\r\n","import { AccountService } from '@abp/ng.account.core/proxy';\r\nimport { ButtonComponent, getPasswordValidators } from '@abp/ng.theme.shared';\r\nimport { Component, Injector, OnInit, inject } from '@angular/core';\r\nimport {\r\n ReactiveFormsModule,\r\n UntypedFormBuilder,\r\n UntypedFormGroup,\r\n Validators,\r\n} from '@angular/forms';\r\nimport { ActivatedRoute, Router, RouterLink } from '@angular/router';\r\nimport { comparePasswords, NgxValidateCoreModule, Validation } from '@ngx-validate/core';\r\nimport { finalize } from 'rxjs/operators';\r\nimport { LocalizationPipe } from '@abp/ng.core';\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 imports: [\r\n ReactiveFormsModule,\r\n RouterLink,\r\n NgxValidateCoreModule,\r\n LocalizationPipe,\r\n ButtonComponent,\r\n ],\r\n})\r\nexport class ResetPasswordComponent implements OnInit {\r\n private fb = inject(UntypedFormBuilder);\r\n private accountService = inject(AccountService);\r\n private route = inject(ActivatedRoute);\r\n private router = inject(Router);\r\n private injector = inject(Injector);\r\n\r\n form!: UntypedFormGroup;\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 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@if (!isPasswordReset) {\r\n <form [formGroup]=\"form\" [mapErrorsFn]=\"mapErrorsFn\" (ngSubmit)=\"onSubmit()\" validateOnSubmit>\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-outline-primary\" 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} @else {\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}\r\n","import { inject, Injector } from '@angular/core';\r\nimport { ResolveFn } from '@angular/router';\r\nimport { map, tap } from 'rxjs';\r\nimport {\r\n ExtensionsService,\r\n getObjectExtensionEntitiesFromStore,\r\n mapEntitiesToContributors,\r\n mergeWithDefaultProps,\r\n} from '@abp/ng.components/extensible';\r\nimport { eAccountComponents } from '../enums';\r\nimport { ACCOUNT_EDIT_FORM_PROP_CONTRIBUTORS, DEFAULT_ACCOUNT_FORM_PROPS } from '../tokens';\r\n\r\nexport const accountExtensionsResolver: ResolveFn<any> = () => {\r\n const injector = inject(Injector);\r\n const extensions = inject(ExtensionsService);\r\n\r\n const config = { optional: true };\r\n\r\n const editFormContributors = inject(ACCOUNT_EDIT_FORM_PROP_CONTRIBUTORS, config) || {};\r\n\r\n return getObjectExtensionEntitiesFromStore(injector, 'Identity').pipe(\r\n map(entities => ({\r\n [eAccountComponents.PersonalSettings]: entities.User,\r\n })),\r\n mapEntitiesToContributors(injector, 'AbpIdentity'),\r\n tap(objectExtensionContributors => {\r\n mergeWithDefaultProps(\r\n extensions.editFormProps,\r\n DEFAULT_ACCOUNT_FORM_PROPS,\r\n objectExtensionContributors.editForm,\r\n editFormContributors,\r\n );\r\n }),\r\n );\r\n};\r\n","import { NgModule } from '@angular/core';\r\nimport { RouterModule, Routes } from '@angular/router';\r\n\r\nimport {\r\n authGuard,\r\n ReplaceableComponents,\r\n ReplaceableRouteContainerComponent,\r\n RouterOutletComponent,\r\n} from '@abp/ng.core';\r\n\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';\r\nimport { accountExtensionsResolver } from './resolvers';\r\n\r\nconst canActivate = [authenticationFlowGuard];\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,\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 title: 'AbpAccount::Login',\r\n },\r\n {\r\n path: 'register',\r\n component: ReplaceableRouteContainerComponent,\r\n canActivate,\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 title: 'AbpAccount::Register',\r\n },\r\n {\r\n path: 'forgot-password',\r\n component: ReplaceableRouteContainerComponent,\r\n canActivate,\r\n\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 title: 'AbpAccount::ForgotPassword',\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 title: 'AbpAccount::ResetPassword',\r\n },\r\n {\r\n path: 'manage',\r\n component: ReplaceableRouteContainerComponent,\r\n canActivate: [authGuard],\r\n resolve: [accountExtensionsResolver],\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 title: 'AbpAccount::MyAccount',\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 { LazyModuleFactory } from '@abp/ng.core';\r\nimport { ModuleWithProviders, NgModule, NgModuleFactory } from '@angular/core';\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 { RE_LOGIN_CONFIRMATION_TOKEN } from './tokens';\r\n\r\nimport { ACCOUNT_EDIT_FORM_PROP_CONTRIBUTORS } from './tokens/extensions.token';\r\nimport { AccountExtensionsGuard } from './guards/extensions.guard';\r\nimport {\r\n ForgotPasswordComponent,\r\n LoginComponent,\r\n ManageProfileComponent,\r\n RegisterComponent,\r\n ResetPasswordComponent,\r\n} from './components';\r\nimport { AccountRoutingModule } from './account-routing.module';\r\n\r\n@NgModule({\r\n declarations: [],\r\n imports: [\r\n LoginComponent,\r\n RegisterComponent,\r\n ForgotPasswordComponent,\r\n ResetPasswordComponent,\r\n ManageProfileComponent,\r\n AccountRoutingModule,\r\n ],\r\n exports: [],\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 provide: ACCOUNT_EDIT_FORM_PROP_CONTRIBUTORS,\r\n useValue: options.editFormPropContributors,\r\n },\r\n AccountExtensionsGuard,\r\n ],\r\n };\r\n }\r\n /**\r\n * @deprecated `AccountModule.forLazy()` is deprecated. You can use `createRoutes` **function** instead.\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","/* eslint-disable @typescript-eslint/no-empty-interface */\r\n\r\nexport namespace Account {\r\n export interface TenantBoxComponentInputs {}\r\n export interface TenantBoxComponentOutputs {}\r\n export interface PersonalSettingsComponentInputs {}\r\n export interface PersonalSettingsComponentOutputs {}\r\n export interface ChangePasswordComponentInputs {}\r\n export interface ChangePasswordComponentOutputs {}\r\n}\r\n","import { Routes } from '@angular/router';\r\nimport { Provider } from '@angular/core';\r\nimport {\r\n ForgotPasswordComponent,\r\n LoginComponent,\r\n RegisterComponent,\r\n ResetPasswordComponent,\r\n ManageProfileComponent,\r\n} from './components';\r\nimport { eAccountComponents } from './enums';\r\nimport { authenticationFlowGuard } from './guards';\r\nimport { accountExtensionsResolver } from './resolvers';\r\nimport {\r\n RE_LOGIN_CONFIRMATION_TOKEN,\r\n ACCOUNT_CONFIG_OPTIONS,\r\n ACCOUNT_EDIT_FORM_PROP_CONTRIBUTORS,\r\n} from './tokens';\r\nimport { AccountConfigOptions } from './models';\r\nimport { accountConfigOptionsFactory } from './utils';\r\nimport {\r\n authGuard,\r\n ReplaceableComponents,\r\n ReplaceableRouteContainerComponent,\r\n RouterOutletComponent,\r\n} from '@abp/ng.core';\r\n\r\nexport function provideAccount(options: AccountConfigOptions = {}): Provider[] {\r\n return [\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 provide: ACCOUNT_EDIT_FORM_PROP_CONTRIBUTORS,\r\n useValue: options.editFormPropContributors,\r\n },\r\n ];\r\n}\r\n\r\nconst canActivate = [authenticationFlowGuard];\r\n\r\nexport const createRoutes = (options: AccountConfigOptions = {}): Routes => [\r\n {\r\n path: '',\r\n component: RouterOutletComponent,\r\n providers: provideAccount(options),\r\n children: [\r\n { path: '', pathMatch: 'full', redirectTo: 'login' },\r\n {\r\n path: 'login',\r\n component: ReplaceableRouteContainerComponent,\r\n canActivate,\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 title: 'AbpAccount::Login',\r\n },\r\n {\r\n path: 'register',\r\n component: ReplaceableRouteContainerComponent,\r\n canActivate,\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 title: 'AbpAccount::Register',\r\n },\r\n {\r\n path: 'forgot-password',\r\n component: ReplaceableRouteContainerComponent,\r\n canActivate,\r\n\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 title: 'AbpAccount::ForgotPassword',\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 title: 'AbpAccount::ResetPassword',\r\n },\r\n {\r\n path: 'manage',\r\n component: ReplaceableRouteContainerComponent,\r\n canActivate: [authGuard],\r\n resolve: [accountExtensionsResolver],\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 title: 'AbpAccount::MyAccount',\r\n },\r\n ],\r\n },\r\n];\r\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public-api';\n"],"names":["maxLength","required","email","PASSWORD_FIELDS","NgxValidateCoreModule","map","tap","canActivate"],"mappings":"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"}
1
+ {"version":3,"file":"abp-ng.account.mjs","sources":["../../../../packages/account/src/lib/tokens/config-options.token.ts","../../../../packages/account/src/lib/utils/factory-utils.ts","../../../../packages/account/src/lib/guards/authentication-flow.guard.ts","../../../../packages/account/src/lib/tokens/re-login-confirmation.token.ts","../../../../packages/account/src/lib/components/personal-settings/personal-settings-half-row.component.ts","../../../../packages/account/src/lib/defaults/default-personal-settings-form-props.ts","../../../../packages/account/src/lib/tokens/extensions.token.ts","../../../../packages/account/src/lib/guards/extensions.guard.ts","../../../../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/forgot-password/forgot-password.component.ts","../../../../packages/account/src/lib/components/forgot-password/forgot-password.component.html","../../../../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/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/resolvers/extensions.resolver.ts","../../../../packages/account/src/lib/account-routing.module.ts","../../../../packages/account/src/lib/account.module.ts","../../../../packages/account/src/lib/models/account.ts","../../../../packages/account/src/lib/account.routes.ts","../../../../packages/account/src/abp-ng.account.ts"],"sourcesContent":["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 { 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 { AuthService, IAbpGuard } from '@abp/ng.core';\r\nimport { Injectable, inject } from '@angular/core';\r\nimport { CanActivateFn } from '@angular/router';\r\n\r\n/**\r\n * @deprecated Use `authenticationFlowGuard` *function* instead.\r\n */\r\n@Injectable()\r\nexport class AuthenticationFlowGuard implements IAbpGuard {\r\n protected readonly authService = inject(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\r\nexport const authenticationFlowGuard: CanActivateFn = () => {\r\n const authService = inject(AuthService);\r\n\r\n if (authService.isInternalAuth) return true;\r\n\r\n authService.navigateToLogin();\r\n return false;\r\n};\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 { Component, inject } from '@angular/core';\r\nimport {\r\n EXTENSIONS_FORM_PROP,\r\n FormProp,\r\n EXTENSIBLE_FORM_VIEW_PROVIDER,\r\n} from '@abp/ng.components/extensible';\r\nimport { ReactiveFormsModule, UntypedFormGroup } from '@angular/forms';\r\nimport { LocalizationPipe } from '@abp/ng.core';\r\n\r\n@Component({\r\n selector: 'abp-personal-settings-half-row',\r\n template: ` <div class=\"w-50 d-inline\">\r\n <label [attr.for]=\"name\" class=\"form-label\">{{ displayName | abpLocalization }} </label>\r\n <input\r\n type=\"text\"\r\n [attr.id]=\"id\"\r\n class=\"form-control\"\r\n [attr.name]=\"name\"\r\n [formControlName]=\"name\"\r\n />\r\n </div>`,\r\n styles: [],\r\n viewProviders: [EXTENSIBLE_FORM_VIEW_PROVIDER],\r\n imports: [ReactiveFormsModule, LocalizationPipe],\r\n})\r\nexport class PersonalSettingsHalfRowComponent {\r\n private propData = inject<FormProp>(EXTENSIONS_FORM_PROP);\r\n\r\n public displayName: string;\r\n public name: string;\r\n public id: string;\r\n public formGroup!: UntypedFormGroup;\r\n\r\n constructor() {\r\n const propData = this.propData;\r\n\r\n this.displayName = propData.displayName;\r\n this.name = propData.name;\r\n this.id = propData.id || '';\r\n }\r\n}\r\n","import { ePropType, FormProp } from '@abp/ng.components/extensible';\r\nimport { UpdateProfileDto } from '@abp/ng.account.core/proxy';\r\nimport { Validators } from '@angular/forms';\r\nimport { PersonalSettingsHalfRowComponent } from '../components/personal-settings/personal-settings-half-row.component';\r\n\r\nconst { maxLength, required, email } = Validators;\r\nexport const DEFAULT_PERSONAL_SETTINGS_UPDATE_FORM_PROPS = FormProp.createMany<UpdateProfileDto>([\r\n {\r\n type: ePropType.String,\r\n name: 'userName',\r\n displayName: 'AbpIdentity::DisplayName:UserName',\r\n id: 'username',\r\n validators: () => [required, maxLength(256)],\r\n },\r\n {\r\n type: ePropType.String,\r\n name: 'name',\r\n displayName: 'AbpIdentity::DisplayName:Name',\r\n id: 'name',\r\n validators: () => [maxLength(64)],\r\n template: PersonalSettingsHalfRowComponent,\r\n className: 'd-inline-block w-50',\r\n },\r\n {\r\n type: ePropType.String,\r\n name: 'surname',\r\n displayName: 'AbpIdentity::DisplayName:Surname',\r\n id: 'surname',\r\n validators: () => [maxLength(64)],\r\n className: 'd-inline-block w-50 ps-4',\r\n template: PersonalSettingsHalfRowComponent,\r\n },\r\n {\r\n type: ePropType.String,\r\n name: 'email',\r\n displayName: 'AbpIdentity::DisplayName:Email',\r\n id: 'email-address',\r\n validators: () => [required, email, maxLength(256)],\r\n },\r\n {\r\n type: ePropType.String,\r\n name: 'phoneNumber',\r\n displayName: 'AbpIdentity::DisplayName:PhoneNumber',\r\n id: 'phone-number',\r\n validators: () => [maxLength(16)],\r\n },\r\n]);\r\n","import { eAccountComponents } from '../enums';\r\nimport { DEFAULT_PERSONAL_SETTINGS_UPDATE_FORM_PROPS } from '../defaults/default-personal-settings-form-props';\r\nimport { InjectionToken } from '@angular/core';\r\nimport { EditFormPropContributorCallback } from '@abp/ng.components/extensible';\r\nimport { UpdateProfileDto } from '@abp/ng.account.core/proxy';\r\n\r\nexport const DEFAULT_ACCOUNT_FORM_PROPS = {\r\n [eAccountComponents.PersonalSettings]: DEFAULT_PERSONAL_SETTINGS_UPDATE_FORM_PROPS,\r\n};\r\n\r\nexport const ACCOUNT_EDIT_FORM_PROP_CONTRIBUTORS = new InjectionToken<EditFormPropContributors>(\r\n 'ACCOUNT_EDIT_FORM_PROP_CONTRIBUTORS',\r\n);\r\n\r\ntype EditFormPropContributors = Partial<{\r\n [eAccountComponents.PersonalSettings]: EditFormPropContributorCallback<UpdateProfileDto>[];\r\n}>;\r\n","import { Injectable, Injector, inject } from '@angular/core';\r\nimport { Observable } from 'rxjs';\r\nimport { tap, map } from 'rxjs/operators';\r\nimport { IAbpGuard } from '@abp/ng.core';\r\nimport {\r\n ExtensionsService,\r\n getObjectExtensionEntitiesFromStore,\r\n mapEntitiesToContributors,\r\n mergeWithDefaultProps,\r\n} from '@abp/ng.components/extensible';\r\n\r\nimport {\r\n ACCOUNT_EDIT_FORM_PROP_CONTRIBUTORS,\r\n DEFAULT_ACCOUNT_FORM_PROPS,\r\n} from '../tokens/extensions.token';\r\nimport { eAccountComponents } from '../enums/components';\r\n\r\n/**\r\n * @deprecated Use `accountExtensionsResolver` *function* instead.\r\n */\r\n@Injectable()\r\nexport class AccountExtensionsGuard implements IAbpGuard {\r\n protected readonly injector = inject(Injector);\r\n protected readonly extensions = inject(ExtensionsService);\r\n\r\n canActivate(): Observable<boolean> {\r\n const config = { optional: true };\r\n\r\n const editFormContributors = inject(ACCOUNT_EDIT_FORM_PROP_CONTRIBUTORS, config) || {};\r\n\r\n return getObjectExtensionEntitiesFromStore(this.injector, 'Identity').pipe(\r\n map(entities => ({\r\n [eAccountComponents.PersonalSettings]: entities.User,\r\n })),\r\n mapEntitiesToContributors(this.injector, 'AbpIdentity'),\r\n tap(objectExtensionContributors => {\r\n mergeWithDefaultProps(\r\n this.extensions.editFormProps,\r\n DEFAULT_ACCOUNT_FORM_PROPS,\r\n objectExtensionContributors.editForm,\r\n editFormContributors,\r\n );\r\n }),\r\n map(() => true),\r\n );\r\n }\r\n}\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 { ButtonComponent, getPasswordValidators, ToasterService } from '@abp/ng.theme.shared';\r\nimport { Component, Injector, OnInit, inject } from '@angular/core';\r\nimport {\r\n ReactiveFormsModule,\r\n UntypedFormBuilder,\r\n UntypedFormControl,\r\n UntypedFormGroup,\r\n Validators,\r\n} from '@angular/forms';\r\nimport { finalize } from 'rxjs/operators';\r\nimport { Account } from '../../models';\r\nimport { ManageProfileStateService } from '../../services';\r\nimport { comparePasswords, NgxValidateCoreModule, Validation } from '@ngx-validate/core';\r\nimport { AutofocusDirective, LocalizationPipe } from '@abp/ng.core';\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 imports: [\r\n ReactiveFormsModule,\r\n LocalizationPipe,\r\n ButtonComponent,\r\n NgxValidateCoreModule,\r\n AutofocusDirective,\r\n ],\r\n})\r\nexport class ChangePasswordComponent\r\n implements OnInit, Account.ChangePasswordComponentInputs, Account.ChangePasswordComponentOutputs\r\n{\r\n private fb = inject(UntypedFormBuilder);\r\n private injector = inject(Injector);\r\n private toasterService = inject(ToasterService);\r\n private profileService = inject(ProfileService);\r\n private manageProfileState = inject(ManageProfileStateService);\r\n\r\n form!: UntypedFormGroup;\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 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 UntypedFormControl('', [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]=\"true\" class=\"abp-md-form\">\r\n @if (!hideCurrentPassword) {\r\n <div 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 }\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 { AccountService } from '@abp/ng.account.core/proxy';\r\nimport { Component, inject } from '@angular/core';\r\nimport {\r\n ReactiveFormsModule,\r\n UntypedFormBuilder,\r\n UntypedFormGroup,\r\n Validators,\r\n} from '@angular/forms';\r\nimport { finalize } from 'rxjs/operators';\r\nimport { LocalizationPipe } from '@abp/ng.core';\r\nimport { ButtonComponent } from '@abp/ng.theme.shared';\r\nimport { RouterLink } from '@angular/router';\r\nimport { NgxValidateCoreModule } from '@ngx-validate/core';\r\n\r\n@Component({\r\n selector: 'abp-forgot-password',\r\n templateUrl: 'forgot-password.component.html',\r\n imports: [\r\n ReactiveFormsModule,\r\n RouterLink,\r\n LocalizationPipe,\r\n ButtonComponent,\r\n NgxValidateCoreModule,\r\n ],\r\n})\r\nexport class ForgotPasswordComponent {\r\n private fb = inject(UntypedFormBuilder);\r\n private accountService = inject(AccountService);\r\n\r\n form: UntypedFormGroup;\r\n\r\n inProgress?: boolean;\r\n\r\n isEmailSent = false;\r\n\r\n constructor() {\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@if (!isEmailSent) {\r\n <form [formGroup]=\"form\" (ngSubmit)=\"onSubmit()\" [validateOnSubmit]=\"true\">\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\" aria-hidden=\"true\"></i\r\n >{{ 'AbpAccount::Login' | abpLocalization }}</a\r\n >\r\n </form>\r\n} @else {\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\" aria-hidden=\"true\"></i>\r\n {{ 'AbpAccount::BackToLogin' | abpLocalization }}\r\n </button>\r\n </a>\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 { Component, Injector, OnInit, inject } from '@angular/core';\r\nimport {\r\n ReactiveFormsModule,\r\n UntypedFormBuilder,\r\n UntypedFormGroup,\r\n Validators,\r\n} from '@angular/forms';\r\nimport { RouterLink } from '@angular/router';\r\nimport { throwError } from 'rxjs';\r\nimport { catchError, finalize } from 'rxjs/operators';\r\nimport {\r\n AuthService,\r\n AutofocusDirective,\r\n ConfigStateService,\r\n LocalizationPipe,\r\n NgxValidateCoreModule,\r\n} from '@abp/ng.core';\r\nimport { ButtonComponent, ToasterService } from '@abp/ng.theme.shared';\r\nimport { eAccountComponents } from '../../enums';\r\nimport { getRedirectUrl } from '../../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 imports: [\r\n ReactiveFormsModule,\r\n RouterLink,\r\n LocalizationPipe,\r\n ButtonComponent,\r\n NgxValidateCoreModule,\r\n AutofocusDirective,\r\n ],\r\n})\r\nexport class LoginComponent implements OnInit {\r\n protected injector = inject(Injector);\r\n protected fb = inject(UntypedFormBuilder);\r\n protected toasterService = inject(ToasterService);\r\n protected authService = inject(AuthService);\r\n protected configState = inject(ConfigStateService);\r\n\r\n form!: UntypedFormGroup;\r\n\r\n inProgress?: boolean;\r\n\r\n isSelfRegistrationEnabled = true;\r\n\r\n authWrapperKey = eAccountComponents.AuthWrapper;\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 '',\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@if (isSelfRegistrationEnabled) {\r\n <strong>\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}\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\">{{\r\n 'AbpAccount::Password' | abpLocalization\r\n }}</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 { ProfileDto, ProfileService } from '@abp/ng.account.core/proxy';\r\nimport {\r\n ButtonComponent,\r\n Confirmation,\r\n ConfirmationService,\r\n ToasterService,\r\n} from '@abp/ng.theme.shared';\r\nimport { Component, inject, Injector, OnInit } from '@angular/core';\r\nimport { ReactiveFormsModule, UntypedFormBuilder, UntypedFormGroup } 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, ConfigStateService, LocalizationPipe } from '@abp/ng.core';\r\nimport { RE_LOGIN_CONFIRMATION_TOKEN } from '../../tokens';\r\nimport {\r\n ExtensibleFormComponent,\r\n EXTENSIONS_IDENTIFIER,\r\n FormPropData,\r\n generateFormFromProps,\r\n} from '@abp/ng.components/extensible';\r\nimport { eAccountComponents } from '../../enums';\r\nimport { NgxValidateCoreModule } from '@ngx-validate/core';\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 providers: [\r\n {\r\n provide: EXTENSIONS_IDENTIFIER,\r\n useValue: eAccountComponents.PersonalSettings,\r\n },\r\n ],\r\n imports: [\r\n ReactiveFormsModule,\r\n ExtensibleFormComponent,\r\n NgxValidateCoreModule,\r\n ButtonComponent,\r\n LocalizationPipe,\r\n ],\r\n})\r\nexport class PersonalSettingsComponent\r\n implements\r\n OnInit,\r\n Account.PersonalSettingsComponentInputs,\r\n Account.PersonalSettingsComponentOutputs\r\n{\r\n private readonly fb = inject(UntypedFormBuilder);\r\n protected readonly toasterService = inject(ToasterService);\r\n protected readonly profileService = inject(ProfileService);\r\n protected readonly manageProfileState = inject(ManageProfileStateService);\r\n protected readonly authService = inject(AuthService);\r\n protected readonly confirmationService = inject(ConfirmationService);\r\n protected readonly configState = inject(ConfigStateService);\r\n protected readonly isPersonalSettingsChangedConfirmationActive = inject(\r\n RE_LOGIN_CONFIRMATION_TOKEN,\r\n );\r\n private readonly injector = inject(Injector);\r\n\r\n selected?: ProfileDto;\r\n\r\n form!: UntypedFormGroup;\r\n\r\n inProgress?: boolean;\r\n\r\n buildForm() {\r\n this.selected = this.manageProfileState.getProfile();\r\n if (!this.selected) {\r\n return;\r\n }\r\n const data = new FormPropData(this.injector, this.selected);\r\n this.form = generateFormFromProps(data);\r\n }\r\n\r\n ngOnInit(): void {\r\n this.buildForm();\r\n }\r\n\r\n submit() {\r\n if (this.form.invalid) return;\r\n const isLogOutConfirmMessageVisible = this.isLogoutConfirmMessageActive();\r\n const isRefreshTokenExists = this.authService.getRefreshToken();\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.configState.refreshAppState();\r\n this.toasterService.success('AbpAccount::PersonalSettingsSaved', '', { life: 5000 });\r\n\r\n if (isRefreshTokenExists) {\r\n return this.authService.refreshToken();\r\n }\r\n\r\n if (isLogOutConfirmMessageVisible) {\r\n this.showLogoutConfirmMessage();\r\n }\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 return this.isPersonalSettingsChangedConfirmationActive;\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","@if (form) {\r\n <form [formGroup]=\"form\" (ngSubmit)=\"submit()\" validateOnSubmit class=\"abp-md-form\">\r\n <abp-extensible-form [selectedRecord]=\"selected\"></abp-extensible-form>\r\n \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 >\r\n {{ 'AbpIdentity::Save' | abpLocalization }}</abp-button\r\n >\r\n </form>\r\n}\r\n","import { ProfileService } from '@abp/ng.account.core/proxy';\r\nimport { LoadingDirective } from '@abp/ng.theme.shared';\r\nimport { Component, inject, OnInit } from '@angular/core';\r\nimport { eAccountComponents } from '../../enums/components';\r\nimport { ManageProfileStateService } from '../../services/manage-profile.state.service';\r\nimport { AsyncPipe } from '@angular/common';\r\nimport { ReactiveFormsModule } from '@angular/forms';\r\nimport { LocalizationPipe, ReplaceableTemplateDirective } from '@abp/ng.core';\r\nimport { PersonalSettingsComponent } from '../personal-settings/personal-settings.component';\r\nimport { ChangePasswordComponent } from '../change-password/change-password.component';\r\n\r\n@Component({\r\n selector: 'abp-manage-profile',\r\n templateUrl: './manage-profile.component.html',\r\n styles: [\r\n `\r\n .min-h-400 {\r\n min-height: 400px;\r\n }\r\n\r\n .fade-in {\r\n animation: fadeIn 350ms ease both;\r\n }\r\n\r\n @keyframes fadeIn {\r\n from {\r\n opacity: 0;\r\n }\r\n to {\r\n opacity: 1;\r\n }\r\n }\r\n `,\r\n ],\r\n imports: [\r\n AsyncPipe,\r\n ReactiveFormsModule,\r\n PersonalSettingsComponent,\r\n ChangePasswordComponent,\r\n LocalizationPipe,\r\n ReplaceableTemplateDirective,\r\n LoadingDirective\r\n ],\r\n})\r\nexport class ManageProfileComponent implements OnInit {\r\n protected profileService = inject(ProfileService);\r\n protected manageProfileState = inject(ManageProfileStateService);\r\n\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 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<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 @if (!hideChangePasswordTab && (profile$ | async)) {\r\n <li class=\"nav-item\" (click)=\"selectedTab = 0\">\r\n <a class=\"nav-link\" [class.active]=\"selectedTab === 0\" role=\"tab\" href=\"javascript:void(0)\">{{\r\n 'AbpUi::ChangePassword' | abpLocalization }}</a>\r\n </li>\r\n }\r\n <li class=\"nav-item mb-2\" (click)=\"selectedTab = 1\">\r\n <a class=\"nav-link\" [class.active]=\"selectedTab === 1\" role=\"tab\" href=\"javascript:void(0)\">{{\r\n 'AbpAccount::PersonalSettings' | abpLocalization }}</a>\r\n </li>\r\n </ul>\r\n </div>\r\n @if (profile$ | async) {\r\n <div class=\"col-12 col-md-9\">\r\n @if (selectedTab === 0) {\r\n <div class=\"tab-content fade-in\">\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 *abpReplaceableTemplate=\"{\r\n componentKey: changePasswordKey\r\n }\"></abp-change-password-form>\r\n </div>\r\n </div>\r\n }\r\n @if (selectedTab === 1) {\r\n <div class=\"tab-content fade-in\">\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 *abpReplaceableTemplate=\"{\r\n componentKey: personalSettingsKey\r\n }\"></abp-personal-settings-form>\r\n </div>\r\n </div>\r\n }\r\n </div>\r\n }\r\n </div>\r\n </div>\r\n</div>","import { AccountService, RegisterDto } from '@abp/ng.account.core/proxy';\r\nimport {\r\n AuthService,\r\n AutofocusDirective,\r\n ConfigStateService,\r\n LocalizationPipe,\r\n} from '@abp/ng.core';\r\nimport { ButtonComponent, getPasswordValidators, ToasterService } from '@abp/ng.theme.shared';\r\nimport { Component, Injector, OnInit, inject } from '@angular/core';\r\nimport {\r\n ReactiveFormsModule,\r\n UntypedFormBuilder,\r\n UntypedFormGroup,\r\n Validators,\r\n} 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\nimport { NgxValidateCoreModule } from '@ngx-validate/core';\r\nimport { RouterLink } from '@angular/router';\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 imports: [\r\n ReactiveFormsModule,\r\n RouterLink,\r\n NgxValidateCoreModule,\r\n LocalizationPipe,\r\n ButtonComponent,\r\n AutofocusDirective,\r\n ],\r\n})\r\nexport class RegisterComponent implements OnInit {\r\n protected fb = inject(UntypedFormBuilder);\r\n protected accountService = inject(AccountService);\r\n protected configState = inject(ConfigStateService);\r\n protected toasterService = inject(ToasterService);\r\n protected authService = inject(AuthService);\r\n protected injector = inject(Injector);\r\n\r\n form!: UntypedFormGroup;\r\n\r\n inProgress?: boolean;\r\n\r\n isSelfRegistrationEnabled = true;\r\n\r\n authWrapperKey = eAccountComponents.AuthWrapper;\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 '',\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 '',\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@if (isSelfRegistrationEnabled) {\r\n <form\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}\r\n","import { AccountService } from '@abp/ng.account.core/proxy';\r\nimport { ButtonComponent, getPasswordValidators } from '@abp/ng.theme.shared';\r\nimport { Component, Injector, OnInit, inject } from '@angular/core';\r\nimport {\r\n ReactiveFormsModule,\r\n UntypedFormBuilder,\r\n UntypedFormGroup,\r\n Validators,\r\n} from '@angular/forms';\r\nimport { ActivatedRoute, Router, RouterLink } from '@angular/router';\r\nimport { comparePasswords, NgxValidateCoreModule, Validation } from '@ngx-validate/core';\r\nimport { finalize } from 'rxjs/operators';\r\nimport { LocalizationPipe } from '@abp/ng.core';\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 imports: [\r\n ReactiveFormsModule,\r\n RouterLink,\r\n NgxValidateCoreModule,\r\n LocalizationPipe,\r\n ButtonComponent,\r\n ],\r\n})\r\nexport class ResetPasswordComponent implements OnInit {\r\n private fb = inject(UntypedFormBuilder);\r\n private accountService = inject(AccountService);\r\n private route = inject(ActivatedRoute);\r\n private router = inject(Router);\r\n private injector = inject(Injector);\r\n\r\n form!: UntypedFormGroup;\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 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@if (!isPasswordReset) {\r\n <form [formGroup]=\"form\" [mapErrorsFn]=\"mapErrorsFn\" (ngSubmit)=\"onSubmit()\" validateOnSubmit>\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-outline-primary\" 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} @else {\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}\r\n","import { inject, Injector } from '@angular/core';\r\nimport { ResolveFn } from '@angular/router';\r\nimport { map, tap } from 'rxjs';\r\nimport {\r\n ExtensionsService,\r\n getObjectExtensionEntitiesFromStore,\r\n mapEntitiesToContributors,\r\n mergeWithDefaultProps,\r\n} from '@abp/ng.components/extensible';\r\nimport { eAccountComponents } from '../enums';\r\nimport { ACCOUNT_EDIT_FORM_PROP_CONTRIBUTORS, DEFAULT_ACCOUNT_FORM_PROPS } from '../tokens';\r\n\r\nexport const accountExtensionsResolver: ResolveFn<any> = () => {\r\n const injector = inject(Injector);\r\n const extensions = inject(ExtensionsService);\r\n\r\n const config = { optional: true };\r\n\r\n const editFormContributors = inject(ACCOUNT_EDIT_FORM_PROP_CONTRIBUTORS, config) || {};\r\n\r\n return getObjectExtensionEntitiesFromStore(injector, 'Identity').pipe(\r\n map(entities => ({\r\n [eAccountComponents.PersonalSettings]: entities.User,\r\n })),\r\n mapEntitiesToContributors(injector, 'AbpIdentity'),\r\n tap(objectExtensionContributors => {\r\n mergeWithDefaultProps(\r\n extensions.editFormProps,\r\n DEFAULT_ACCOUNT_FORM_PROPS,\r\n objectExtensionContributors.editForm,\r\n editFormContributors,\r\n );\r\n }),\r\n );\r\n};\r\n","import { NgModule } from '@angular/core';\r\nimport { RouterModule, Routes } from '@angular/router';\r\n\r\nimport {\r\n authGuard,\r\n ReplaceableComponents,\r\n ReplaceableRouteContainerComponent,\r\n RouterOutletComponent,\r\n} from '@abp/ng.core';\r\n\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';\r\nimport { accountExtensionsResolver } from './resolvers';\r\n\r\nconst canActivate = [authenticationFlowGuard];\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,\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 title: 'AbpAccount::Login',\r\n },\r\n {\r\n path: 'register',\r\n component: ReplaceableRouteContainerComponent,\r\n canActivate,\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 title: 'AbpAccount::Register',\r\n },\r\n {\r\n path: 'forgot-password',\r\n component: ReplaceableRouteContainerComponent,\r\n canActivate,\r\n\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 title: 'AbpAccount::ForgotPassword',\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 title: 'AbpAccount::ResetPassword',\r\n },\r\n {\r\n path: 'manage',\r\n component: ReplaceableRouteContainerComponent,\r\n canActivate: [authGuard],\r\n resolve: [accountExtensionsResolver],\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 title: 'AbpAccount::MyAccount',\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 { LazyModuleFactory } from '@abp/ng.core';\r\nimport { ModuleWithProviders, NgModule, NgModuleFactory } from '@angular/core';\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 { RE_LOGIN_CONFIRMATION_TOKEN } from './tokens';\r\n\r\nimport { ACCOUNT_EDIT_FORM_PROP_CONTRIBUTORS } from './tokens/extensions.token';\r\nimport { AccountExtensionsGuard } from './guards/extensions.guard';\r\nimport {\r\n ForgotPasswordComponent,\r\n LoginComponent,\r\n ManageProfileComponent,\r\n RegisterComponent,\r\n ResetPasswordComponent,\r\n} from './components';\r\nimport { AccountRoutingModule } from './account-routing.module';\r\n\r\n@NgModule({\r\n declarations: [],\r\n imports: [\r\n LoginComponent,\r\n RegisterComponent,\r\n ForgotPasswordComponent,\r\n ResetPasswordComponent,\r\n ManageProfileComponent,\r\n AccountRoutingModule,\r\n ],\r\n exports: [],\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 provide: ACCOUNT_EDIT_FORM_PROP_CONTRIBUTORS,\r\n useValue: options.editFormPropContributors,\r\n },\r\n AccountExtensionsGuard,\r\n ],\r\n };\r\n }\r\n /**\r\n * @deprecated `AccountModule.forLazy()` is deprecated. You can use `createRoutes` **function** instead.\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","/* eslint-disable @typescript-eslint/no-empty-interface */\r\n\r\nexport namespace Account {\r\n export interface TenantBoxComponentInputs {}\r\n export interface TenantBoxComponentOutputs {}\r\n export interface PersonalSettingsComponentInputs {}\r\n export interface PersonalSettingsComponentOutputs {}\r\n export interface ChangePasswordComponentInputs {}\r\n export interface ChangePasswordComponentOutputs {}\r\n}\r\n","import { Routes } from '@angular/router';\r\nimport { Provider } from '@angular/core';\r\nimport {\r\n ForgotPasswordComponent,\r\n LoginComponent,\r\n RegisterComponent,\r\n ResetPasswordComponent,\r\n ManageProfileComponent,\r\n} from './components';\r\nimport { eAccountComponents } from './enums';\r\nimport { authenticationFlowGuard } from './guards';\r\nimport { accountExtensionsResolver } from './resolvers';\r\nimport {\r\n RE_LOGIN_CONFIRMATION_TOKEN,\r\n ACCOUNT_CONFIG_OPTIONS,\r\n ACCOUNT_EDIT_FORM_PROP_CONTRIBUTORS,\r\n} from './tokens';\r\nimport { AccountConfigOptions } from './models';\r\nimport { accountConfigOptionsFactory } from './utils';\r\nimport {\r\n authGuard,\r\n ReplaceableComponents,\r\n ReplaceableRouteContainerComponent,\r\n RouterOutletComponent,\r\n} from '@abp/ng.core';\r\n\r\nexport function provideAccount(options: AccountConfigOptions = {}): Provider[] {\r\n return [\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 provide: ACCOUNT_EDIT_FORM_PROP_CONTRIBUTORS,\r\n useValue: options.editFormPropContributors,\r\n },\r\n ];\r\n}\r\n\r\nconst canActivate = [authenticationFlowGuard];\r\n\r\nexport const createRoutes = (options: AccountConfigOptions = {}): Routes => [\r\n {\r\n path: '',\r\n component: RouterOutletComponent,\r\n providers: provideAccount(options),\r\n children: [\r\n { path: '', pathMatch: 'full', redirectTo: 'login' },\r\n {\r\n path: 'login',\r\n component: ReplaceableRouteContainerComponent,\r\n canActivate,\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 title: 'AbpAccount::Login',\r\n },\r\n {\r\n path: 'register',\r\n component: ReplaceableRouteContainerComponent,\r\n canActivate,\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 title: 'AbpAccount::Register',\r\n },\r\n {\r\n path: 'forgot-password',\r\n component: ReplaceableRouteContainerComponent,\r\n canActivate,\r\n\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 title: 'AbpAccount::ForgotPassword',\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 title: 'AbpAccount::ResetPassword',\r\n },\r\n {\r\n path: 'manage',\r\n component: ReplaceableRouteContainerComponent,\r\n canActivate: [authGuard],\r\n resolve: [accountExtensionsResolver],\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 title: 'AbpAccount::MyAccount',\r\n },\r\n ],\r\n },\r\n];\r\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public-api';\n"],"names":["maxLength","required","email","PASSWORD_FIELDS","NgxValidateCoreModule","map","tap","canActivate"],"mappings":"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"}
package/package.json CHANGED
@@ -1,14 +1,14 @@
1
1
  {
2
2
  "name": "@abp/ng.account",
3
- "version": "10.1.1",
3
+ "version": "10.2.0-rc.2",
4
4
  "homepage": "https://abp.io",
5
5
  "repository": {
6
6
  "type": "git",
7
7
  "url": "https://github.com/abpframework/abp.git"
8
8
  },
9
9
  "dependencies": {
10
- "@abp/ng.account.core": "~10.1.1",
11
- "@abp/ng.theme.shared": "~10.1.1",
10
+ "@abp/ng.account.core": "~10.2.0-rc.2",
11
+ "@abp/ng.theme.shared": "~10.2.0-rc.2",
12
12
  "tslib": "^2.0.0"
13
13
  },
14
14
  "publishConfig": {