|
|
|
@ -63,85 +63,76 @@ class LoginComponent { |
|
|
|
*/ |
|
|
|
() => { |
|
|
|
/** @type {?} */ |
|
|
|
const redirectUrl = |
|
|
|
snq( |
|
|
|
/** |
|
|
|
* @return {?} |
|
|
|
*/ |
|
|
|
(() => window.history.state), |
|
|
|
).redirectUrl || |
|
|
|
(this.options || {}).redirectUrl || |
|
|
|
'/'; |
|
|
|
const redirectUrl = snq((/** |
|
|
|
* @return {?} |
|
|
|
*/ |
|
|
|
() => window.history.state)).redirectUrl || (this.options || {}).redirectUrl || '/'; |
|
|
|
this.store.dispatch(new Navigate([redirectUrl])); |
|
|
|
}, |
|
|
|
), |
|
|
|
catchError( |
|
|
|
/** |
|
|
|
* @param {?} err |
|
|
|
* @return {?} |
|
|
|
*/ |
|
|
|
err => { |
|
|
|
this.toasterService.error( |
|
|
|
snq( |
|
|
|
/** |
|
|
|
})), catchError((/** |
|
|
|
* @param {?} err |
|
|
|
* @return {?} |
|
|
|
*/ |
|
|
|
err => { |
|
|
|
this.toasterService.error(snq((/** |
|
|
|
* @return {?} |
|
|
|
*/ |
|
|
|
() => err.error.error_description)) || |
|
|
|
snq((/** |
|
|
|
* @return {?} |
|
|
|
*/ |
|
|
|
() => err.error.error_description, |
|
|
|
) || |
|
|
|
snq( |
|
|
|
/** |
|
|
|
* @return {?} |
|
|
|
*/ |
|
|
|
() => err.error.error.message, |
|
|
|
'AbpAccount::DefaultErrorMessage', |
|
|
|
), |
|
|
|
'Error', |
|
|
|
{ life: 7000 }, |
|
|
|
); |
|
|
|
() => err.error.error.message), 'AbpAccount::DefaultErrorMessage'), 'Error', { life: 7000 }); |
|
|
|
return throwError(err); |
|
|
|
}, |
|
|
|
), |
|
|
|
finalize( |
|
|
|
/** |
|
|
|
* @return {?} |
|
|
|
*/ |
|
|
|
() => (this.inProgress = false), |
|
|
|
), |
|
|
|
) |
|
|
|
.subscribe(); |
|
|
|
} |
|
|
|
})), finalize((/** |
|
|
|
* @return {?} |
|
|
|
*/ |
|
|
|
() => (this.inProgress = false)))) |
|
|
|
.subscribe(); |
|
|
|
} |
|
|
|
} |
|
|
|
LoginComponent.decorators = [ |
|
|
|
{ type: Component, args: [{ |
|
|
|
selector: 'abp-login', |
|
|
|
template: "<abp-auth-wrapper [mainContentRef]=\"mainContentRef\" [cancelContentRef]=\"cancelContentRef\">\r\n <ng-template #mainContentRef>\r\n <h4>{{ 'AbpAccount::Login' | abpLocalization }}</h4>\r\n <strong>\r\n {{ 'AbpAccount::AreYouANewUser' | abpLocalization }}\r\n <a class=\"text-decoration-none\" routerLink=\"/account/register\">{{ 'AbpAccount::Register' | abpLocalization }}</a>\r\n </strong>\r\n <form [formGroup]=\"form\" (ngSubmit)=\"onSubmit()\" validateOnSubmit class=\"mt-4\">\r\n <div class=\"form-group\">\r\n <label for=\"login-input-user-name-or-email-address\">{{\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 autofocus\r\n />\r\n </div>\r\n <div class=\"form-group\">\r\n <label for=\"login-input-password\">{{ 'AbpAccount::Password' | abpLocalization }}</label>\r\n <input class=\"form-control\" type=\"password\" id=\"login-input-password\" formControlName=\"password\" />\r\n </div>\r\n <div class=\"form-check\" validationTarget validationStyle>\r\n <label class=\"form-check-label\" for=\"login-input-remember-me\">\r\n <input class=\"form-check-input\" type=\"checkbox\" id=\"login-input-remember-me\" formControlName=\"remember\" />\r\n {{ 'AbpAccount::RememberMe' | abpLocalization }}\r\n </label>\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::Login' | abpLocalization }}\r\n </abp-button>\r\n </form>\r\n </ng-template>\r\n <ng-template #cancelContentRef>\r\n <div class=\"card-footer text-center border-0\">\r\n <a routerLink=\"/\">\r\n <button type=\"button\" name=\"Action\" value=\"Cancel\" class=\"px-2 py-0 btn btn-link\">\r\n {{ 'AbpAccount::Cancel' | abpLocalization }}\r\n </button>\r\n </a>\r\n </div>\r\n </ng-template>\r\n</abp-auth-wrapper>\r\n" |
|
|
|
template: "<abp-auth-wrapper [mainContentRef]=\"mainContentRef\" [cancelContentRef]=\"cancelContentRef\">\n <ng-template #mainContentRef>\n <h4>{{ 'AbpAccount::Login' | abpLocalization }}</h4>\n <strong>\n {{ 'AbpAccount::AreYouANewUser' | abpLocalization }}\n <a class=\"text-decoration-none\" routerLink=\"/account/register\">{{ 'AbpAccount::Register' | abpLocalization }}</a>\n </strong>\n <form [formGroup]=\"form\" (ngSubmit)=\"onSubmit()\" validateOnSubmit class=\"mt-4\">\n <div class=\"form-group\">\n <label for=\"login-input-user-name-or-email-address\">{{\n 'AbpAccount::UserNameOrEmailAddress' | abpLocalization\n }}</label>\n <input\n class=\"form-control\"\n type=\"text\"\n id=\"login-input-user-name-or-email-address\"\n formControlName=\"username\"\n autofocus\n />\n </div>\n <div class=\"form-group\">\n <label for=\"login-input-password\">{{ 'AbpAccount::Password' | abpLocalization }}</label>\n <input class=\"form-control\" type=\"password\" id=\"login-input-password\" formControlName=\"password\" />\n </div>\n <div class=\"form-check\" validationTarget validationStyle>\n <label class=\"form-check-label\" for=\"login-input-remember-me\">\n <input class=\"form-check-input\" type=\"checkbox\" id=\"login-input-remember-me\" formControlName=\"remember\" />\n {{ 'AbpAccount::RememberMe' | abpLocalization }}\n </label>\n </div>\n <abp-button\n [loading]=\"inProgress\"\n buttonType=\"submit\"\n name=\"Action\"\n buttonClass=\"btn-block btn-lg mt-3 btn btn-primary\"\n >\n {{ 'AbpAccount::Login' | abpLocalization }}\n </abp-button>\n </form>\n </ng-template>\n <ng-template #cancelContentRef>\n <div class=\"card-footer text-center border-0\">\n <a routerLink=\"/\">\n <button type=\"button\" name=\"Action\" value=\"Cancel\" class=\"px-2 py-0 btn btn-link\">\n {{ 'AbpAccount::Cancel' | abpLocalization }}\n </button>\n </a>\n </div>\n </ng-template>\n</abp-auth-wrapper>\n" |
|
|
|
}] } |
|
|
|
]; |
|
|
|
/** @nocollapse */ |
|
|
|
LoginComponent.ctorParameters = () => [ |
|
|
|
{ type: FormBuilder }, |
|
|
|
{ type: OAuthService }, |
|
|
|
{ type: Store }, |
|
|
|
{ type: ToasterService }, |
|
|
|
{ type: undefined, decorators: [{ type: Optional }, { type: Inject, args: ['ACCOUNT_OPTIONS'] }] }, |
|
|
|
{ type: FormBuilder }, |
|
|
|
{ type: OAuthService }, |
|
|
|
{ type: Store }, |
|
|
|
{ type: ToasterService }, |
|
|
|
{ type: undefined, decorators: [{ type: Optional }, { type: Inject, args: ['ACCOUNT_OPTIONS',] }] } |
|
|
|
]; |
|
|
|
if (false) { |
|
|
|
{ type: Component, args: [{ |
|
|
|
selector: 'abp-login', |
|
|
|
template: "<abp-auth-wrapper [mainContentRef]=\"mainContentRef\" [cancelContentRef]=\"cancelContentRef\">\r\n <ng-template #mainContentRef>\r\n <h4>{{ 'AbpAccount::Login' | abpLocalization }}</h4>\r\n <strong>\r\n {{ 'AbpAccount::AreYouANewUser' | abpLocalization }}\r\n <a class=\"text-decoration-none\" routerLink=\"/account/register\">{{ 'AbpAccount::Register' | abpLocalization }}</a>\r\n </strong>\r\n <form [formGroup]=\"form\" (ngSubmit)=\"onSubmit()\" validateOnSubmit class=\"mt-4\">\r\n <div class=\"form-group\">\r\n <label for=\"login-input-user-name-or-email-address\">{{\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 autofocus\r\n />\r\n </div>\r\n <div class=\"form-group\">\r\n <label for=\"login-input-password\">{{ 'AbpAccount::Password' | abpLocalization }}</label>\r\n <input class=\"form-control\" type=\"password\" id=\"login-input-password\" formControlName=\"password\" />\r\n </div>\r\n <div class=\"form-check\" validationTarget validationStyle>\r\n <label class=\"form-check-label\" for=\"login-input-remember-me\">\r\n <input class=\"form-check-input\" type=\"checkbox\" id=\"login-input-remember-me\" formControlName=\"remember\" />\r\n {{ 'AbpAccount::RememberMe' | abpLocalization }}\r\n </label>\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::Login' | abpLocalization }}\r\n </abp-button>\r\n </form>\r\n </ng-template>\r\n <ng-template #cancelContentRef>\r\n <div class=\"card-footer text-center border-0\">\r\n <a routerLink=\"/\">\r\n <button type=\"button\" name=\"Action\" value=\"Cancel\" class=\"px-2 py-0 btn btn-link\">\r\n {{ 'AbpAccount::Cancel' | abpLocalization }}\r\n </button>\r\n </a>\r\n </div>\r\n </ng-template>\r\n</abp-auth-wrapper>\r\n" |
|
|
|
}] } |
|
|
|
*/ |
|
|
|
LoginComponent.prototype.store; |
|
|
|
/** |
|
|
|
* @type {?} |
|
|
|
* @private |
|
|
|
*/ |
|
|
|
LoginComponent.prototype.toasterService; |
|
|
|
/** |
|
|
|
* @type {?} |
|
|
|
* @private |
|
|
|
*/ |
|
|
|
LoginComponent.prototype.options; |
|
|
|
/** @type {?} */ |
|
|
|
LoginComponent.prototype.form; |
|
|
|
/** @type {?} */ |
|
|
|
LoginComponent.prototype.inProgress; |
|
|
|
/** |
|
|
|
* @type {?} |
|
|
|
* @private |
|
|
|
*/ |
|
|
|
LoginComponent.prototype.fb; |
|
|
|
/** |
|
|
|
* @type {?} |
|
|
|
* @private |
|
|
|
*/ |
|
|
|
LoginComponent.prototype.oauthService; |
|
|
|
/** |
|
|
|
* @type {?} |
|
|
|
* @private |
|
|
|
*/ |
|
|
|
LoginComponent.prototype.store; |
|
|
|
/** |
|
|
|
* @type {?} |
|
|
|
* @private |
|
|
|
*/ |
|
|
|
LoginComponent.prototype.toasterService; |
|
|
|
/** |
|
|
|
* @type {?} |
|
|
|
* @private |
|
|
|
*/ |
|
|
|
LoginComponent.prototype.options; |
|
|
|
} |
|
|
|
|
|
|
|
/** |
|
|
|
@ -150,20 +141,20 @@ if (false) { |
|
|
|
* @suppress {checkTypes,constantProperty,extraRequire,missingOverride,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc |
|
|
|
*/ |
|
|
|
class ManageProfileComponent { |
|
|
|
constructor() { |
|
|
|
this.selectedTab = 0; |
|
|
|
} |
|
|
|
constructor() { |
|
|
|
this.selectedTab = 0; |
|
|
|
} |
|
|
|
} |
|
|
|
ManageProfileComponent.decorators = [ |
|
|
|
{ type: Component, args: [{ |
|
|
|
selector: 'abp-manage-profile', |
|
|
|
template: "<div id=\"AbpContentToolbar\"></div>\r\n\r\n<div class=\"card border-0 shadow-sm\">\r\n <div class=\"card-body\">\r\n <div class=\"row\">\r\n <div class=\"col-3\">\r\n <ul class=\"nav flex-column nav-pills\" id=\"nav-tab\" role=\"tablist\">\r\n <li class=\"nav-item\" (click)=\"selectedTab = 0\">\r\n <a class=\"nav-link\" [ngClass]=\"{ active: selectedTab === 0 }\" role=\"tab\" href=\"javascript:void(0)\">{{\r\n 'AbpUi::ChangePassword' | abpLocalization\r\n }}</a>\r\n </li>\r\n <li class=\"nav-item\" (click)=\"selectedTab = 1\">\r\n <a class=\"nav-link\" [ngClass]=\"{ active: selectedTab === 1 }\" role=\"tab\" href=\"javascript:void(0)\">{{\r\n 'AbpAccount::PersonalSettings' | abpLocalization\r\n }}</a>\r\n </li>\r\n </ul>\r\n </div>\r\n <div class=\"col-9\">\r\n <div class=\"tab-content\" *ngIf=\"selectedTab === 0\" [@fadeIn]>\r\n <div class=\"tab-pane active\" role=\"tabpanel\">\r\n <h4>\r\n {{ 'AbpIdentity::ChangePassword' | abpLocalization }}\r\n <hr />\r\n </h4>\r\n <abp-change-password-form></abp-change-password-form>\r\n </div>\r\n </div>\r\n <div class=\"tab-content\" *ngIf=\"selectedTab === 1\" [@fadeIn]>\r\n <div class=\"tab-pane active\" role=\"tabpanel\">\r\n <h4>\r\n {{ 'AbpIdentity::PersonalSettings' | abpLocalization }}\r\n <hr />\r\n </h4>\r\n <abp-personal-settings-form></abp-personal-settings-form>\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n</div>\r\n", |
|
|
|
template: "<div id=\"AbpContentToolbar\"></div>\n\n<div class=\"card border-0 shadow-sm\">\n <div class=\"card-body\">\n <div class=\"row\">\n <div class=\"col-3\">\n <ul class=\"nav flex-column nav-pills\" id=\"nav-tab\" role=\"tablist\">\n <li class=\"nav-item\" (click)=\"selectedTab = 0\">\n <a class=\"nav-link\" [ngClass]=\"{ active: selectedTab === 0 }\" role=\"tab\" href=\"javascript:void(0)\">{{\n 'AbpUi::ChangePassword' | abpLocalization\n }}</a>\n </li>\n <li class=\"nav-item\" (click)=\"selectedTab = 1\">\n <a class=\"nav-link\" [ngClass]=\"{ active: selectedTab === 1 }\" role=\"tab\" href=\"javascript:void(0)\">{{\n 'AbpAccount::PersonalSettings' | abpLocalization\n }}</a>\n </li>\n </ul>\n </div>\n <div class=\"col-9\">\n <div class=\"tab-content\" *ngIf=\"selectedTab === 0\" [@fadeIn]>\n <div class=\"tab-pane active\" role=\"tabpanel\">\n <h4>\n {{ 'AbpIdentity::ChangePassword' | abpLocalization }}\n <hr />\n </h4>\n <abp-change-password-form></abp-change-password-form>\n </div>\n </div>\n <div class=\"tab-content\" *ngIf=\"selectedTab === 1\" [@fadeIn]>\n <div class=\"tab-pane active\" role=\"tabpanel\">\n <h4>\n {{ 'AbpIdentity::PersonalSettings' | abpLocalization }}\n <hr />\n </h4>\n <abp-personal-settings-form></abp-personal-settings-form>\n </div>\n </div>\n </div>\n </div>\n </div>\n</div>\n", |
|
|
|
animations: [trigger('fadeIn', [transition(':enter', useAnimation(fadeIn))])] |
|
|
|
}] } |
|
|
|
]; |
|
|
|
if (false) { |
|
|
|
/** @type {?} */ |
|
|
|
ManageProfileComponent.prototype.selectedTab; |
|
|
|
/** @type {?} */ |
|
|
|
ManageProfileComponent.prototype.selectedTab; |
|
|
|
} |
|
|
|
|
|
|
|
/** |
|
|
|
@ -172,49 +163,54 @@ if (false) { |
|
|
|
* @suppress {checkTypes,constantProperty,extraRequire,missingOverride,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc |
|
|
|
*/ |
|
|
|
class AccountService { |
|
|
|
/** |
|
|
|
* @param {?} rest |
|
|
|
*/ |
|
|
|
constructor(rest) { |
|
|
|
this.rest = rest; |
|
|
|
} |
|
|
|
/** |
|
|
|
* @param {?} tenantName |
|
|
|
* @return {?} |
|
|
|
*/ |
|
|
|
{ type: Component, args: [{ |
|
|
|
selector: 'abp-manage-profile', |
|
|
|
template: "<div id=\"AbpContentToolbar\"></div>\r\n\r\n<div class=\"card border-0 shadow-sm\">\r\n <div class=\"card-body\">\r\n <div class=\"row\">\r\n <div class=\"col-3\">\r\n <ul class=\"nav flex-column nav-pills\" id=\"nav-tab\" role=\"tablist\">\r\n <li class=\"nav-item\" (click)=\"selectedTab = 0\">\r\n <a class=\"nav-link\" [ngClass]=\"{ active: selectedTab === 0 }\" role=\"tab\" href=\"javascript:void(0)\">{{\r\n 'AbpUi::ChangePassword' | abpLocalization\r\n }}</a>\r\n </li>\r\n <li class=\"nav-item\" (click)=\"selectedTab = 1\">\r\n <a class=\"nav-link\" [ngClass]=\"{ active: selectedTab === 1 }\" role=\"tab\" href=\"javascript:void(0)\">{{\r\n 'AbpAccount::PersonalSettings' | abpLocalization\r\n }}</a>\r\n </li>\r\n </ul>\r\n </div>\r\n <div class=\"col-9\">\r\n <div class=\"tab-content\" *ngIf=\"selectedTab === 0\" [@fadeIn]>\r\n <div class=\"tab-pane active\" role=\"tabpanel\">\r\n <h4>\r\n {{ 'AbpIdentity::ChangePassword' | abpLocalization }}\r\n <hr />\r\n </h4>\r\n <abp-change-password-form></abp-change-password-form>\r\n </div>\r\n </div>\r\n <div class=\"tab-content\" *ngIf=\"selectedTab === 1\" [@fadeIn]>\r\n <div class=\"tab-pane active\" role=\"tabpanel\">\r\n <h4>\r\n {{ 'AbpIdentity::PersonalSettings' | abpLocalization }}\r\n <hr />\r\n </h4>\r\n <abp-personal-settings-form></abp-personal-settings-form>\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n</div>\r\n", |
|
|
|
animations: [trigger('fadeIn', [transition(':enter', useAnimation(fadeIn))])] |
|
|
|
}] } |
|
|
|
return this.rest.request(request, { skipHandleError: true }); |
|
|
|
} |
|
|
|
/** |
|
|
|
* @param {?} rest |
|
|
|
*/ |
|
|
|
constructor(rest) { |
|
|
|
this.rest = rest; |
|
|
|
} |
|
|
|
/** |
|
|
|
* @param {?} tenantName |
|
|
|
* @return {?} |
|
|
|
*/ |
|
|
|
findTenant(tenantName) { |
|
|
|
/** @type {?} */ |
|
|
|
const request = { |
|
|
|
method: 'GET', |
|
|
|
url: `/api/abp/multi-tenancy/tenants/by-name/${tenantName}`, |
|
|
|
}; |
|
|
|
return this.rest.request(request); |
|
|
|
} |
|
|
|
/** |
|
|
|
* @param {?} body |
|
|
|
* @return {?} |
|
|
|
*/ |
|
|
|
register(body) { |
|
|
|
/** @type {?} */ |
|
|
|
const request = { |
|
|
|
method: 'POST', |
|
|
|
url: '/api/account/register', |
|
|
|
body, |
|
|
|
}; |
|
|
|
return this.rest.request(request, { skipHandleError: true }); |
|
|
|
} |
|
|
|
} |
|
|
|
AccountService.decorators = [ |
|
|
|
{ |
|
|
|
type: Injectable, |
|
|
|
args: [ |
|
|
|
{ |
|
|
|
providedIn: 'root', |
|
|
|
}, |
|
|
|
], |
|
|
|
}, |
|
|
|
{ type: Injectable, args: [{ |
|
|
|
providedIn: 'root', |
|
|
|
},] } |
|
|
|
]; |
|
|
|
/** @nocollapse */ |
|
|
|
AccountService.ctorParameters = () => [{ type: RestService }]; |
|
|
|
/** @nocollapse */ AccountService.ngInjectableDef = ɵɵdefineInjectable({ |
|
|
|
factory: function AccountService_Factory() { |
|
|
|
return new AccountService(ɵɵinject(RestService)); |
|
|
|
}, |
|
|
|
token: AccountService, |
|
|
|
providedIn: 'root', |
|
|
|
}); |
|
|
|
AccountService.ctorParameters = () => [ |
|
|
|
{ type: RestService } |
|
|
|
]; |
|
|
|
/** @nocollapse */ AccountService.ngInjectableDef = ɵɵdefineInjectable({ factory: function AccountService_Factory() { return new AccountService(ɵɵinject(RestService)); }, token: AccountService, providedIn: "root" }); |
|
|
|
if (false) { |
|
|
|
/** |
|
|
|
* @type {?} |
|
|
|
* @private |
|
|
|
*/ |
|
|
|
AccountService.prototype.rest; |
|
|
|
/** |
|
|
|
* @type {?} |
|
|
|
* @private |
|
|
|
*/ |
|
|
|
AccountService.prototype.rest; |
|
|
|
} |
|
|
|
|
|
|
|
/** |
|
|
|
@ -240,47 +236,6 @@ class RegisterComponent { |
|
|
|
this.oauthService.configure(this.store.selectSnapshot(ConfigState.getOne('environment')).oAuthConfig); |
|
|
|
this.oauthService.loadDiscoveryDocument(); |
|
|
|
} |
|
|
|
/** |
|
|
|
* @return {?} |
|
|
|
*/ |
|
|
|
ngOnInit() { |
|
|
|
/** @type {?} */ |
|
|
|
const passwordRules = this.store.selectSnapshot(ConfigState.getSettings('Identity.Password')); |
|
|
|
/** @type {?} */ |
|
|
|
const passwordRulesArr = (/** @type {?} */ ([])); |
|
|
|
/** @type {?} */ |
|
|
|
let requiredLength = 1; |
|
|
|
if ((passwordRules['Abp.Identity.Password.RequireDigit'] || '').toLowerCase() === 'true') { |
|
|
|
passwordRulesArr.push('number'); |
|
|
|
} |
|
|
|
if ((passwordRules['Abp.Identity.Password.RequireLowercase'] || '').toLowerCase() === 'true') { |
|
|
|
passwordRulesArr.push('small'); |
|
|
|
} |
|
|
|
if ((passwordRules['Abp.Identity.Password.RequireUppercase'] || '').toLowerCase() === 'true') { |
|
|
|
passwordRulesArr.push('capital'); |
|
|
|
} |
|
|
|
if (+(passwordRules['Abp.Identity.Password.RequiredUniqueChars'] || 0) > 0) { |
|
|
|
passwordRulesArr.push('special'); |
|
|
|
} |
|
|
|
if (Number.isInteger(+passwordRules['Abp.Identity.Password.RequiredLength'])) { |
|
|
|
requiredLength = +passwordRules['Abp.Identity.Password.RequiredLength']; |
|
|
|
} |
|
|
|
/** |
|
|
|
* @param {?} fb |
|
|
|
* @param {?} accountService |
|
|
|
* @param {?} oauthService |
|
|
|
* @param {?} store |
|
|
|
* @param {?} toasterService |
|
|
|
*/ |
|
|
|
constructor(fb, accountService, oauthService, store, toasterService) { |
|
|
|
this.fb = fb; |
|
|
|
this.accountService = accountService; |
|
|
|
this.oauthService = oauthService; |
|
|
|
this.store = store; |
|
|
|
this.toasterService = toasterService; |
|
|
|
this.oauthService.configure(this.store.selectSnapshot(ConfigState.getOne('environment')).oAuthConfig); |
|
|
|
this.oauthService.loadDiscoveryDocument(); |
|
|
|
} |
|
|
|
/** |
|
|
|
* @return {?} |
|
|
|
*/ |
|
|
|
@ -308,7 +263,10 @@ class RegisterComponent { |
|
|
|
} |
|
|
|
this.form = this.fb.group({ |
|
|
|
username: ['', [required$1, maxLength$1(255)]], |
|
|
|
password: ['', [required$1, validatePassword(passwordRulesArr), minLength$1(requiredLength), maxLength$1(32)]], |
|
|
|
password: [ |
|
|
|
'', |
|
|
|
[required$1, validatePassword(passwordRulesArr), minLength$1(requiredLength), maxLength$1(32)], |
|
|
|
], |
|
|
|
email: ['', [required$1, email]], |
|
|
|
}); |
|
|
|
} |
|
|
|
@ -326,12 +284,14 @@ class RegisterComponent { |
|
|
|
emailAddress: this.form.get('email').value, |
|
|
|
appName: 'Angular', |
|
|
|
})); |
|
|
|
/** @type {?} */ |
|
|
|
const tenant = this.store.selectSnapshot(SessionState.getTenant); |
|
|
|
this.accountService |
|
|
|
.register(newUser) |
|
|
|
.pipe(switchMap((/** |
|
|
|
* @return {?} |
|
|
|
*/ |
|
|
|
() => from(this.oauthService.fetchTokenUsingPasswordFlow(newUser.userName, newUser.password)))), switchMap((/** |
|
|
|
() => from(this.oauthService.fetchTokenUsingPasswordFlow(newUser.userName, newUser.password, new HttpHeaders(Object.assign({}, (tenant && tenant.id && { __tenant: tenant.id }))))))), switchMap((/** |
|
|
|
* @return {?} |
|
|
|
*/ |
|
|
|
() => this.store.dispatch(new GetAppConfiguration()))), tap((/** |
|
|
|
@ -347,190 +307,117 @@ class RegisterComponent { |
|
|
|
*/ |
|
|
|
() => err.error.error_description)) || |
|
|
|
snq((/** |
|
|
|
* Generated from: lib/components/change-password/change-password.component.ts |
|
|
|
* @suppress {checkTypes,constantProperty,extraRequire,missingOverride,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc |
|
|
|
*/ |
|
|
|
const { minLength: minLength$2, required: required$2, maxLength: maxLength$2 } = Validators; |
|
|
|
/** @type {?} */ |
|
|
|
const PASSWORD_FIELDS = ['newPassword', 'repeatNewPassword']; |
|
|
|
class ChangePasswordComponent { |
|
|
|
/** |
|
|
|
* @param {?} fb |
|
|
|
* @param {?} store |
|
|
|
* @param {?} toasterService |
|
|
|
*/ |
|
|
|
constructor(fb, store, toasterService) { |
|
|
|
this.fb = fb; |
|
|
|
this.store = store; |
|
|
|
this.toasterService = toasterService; |
|
|
|
this.mapErrorsFn |
|
|
|
/** |
|
|
|
* @param {?} errors |
|
|
|
* @param {?} groupErrors |
|
|
|
* @param {?} control |
|
|
|
* @return {?} |
|
|
|
*/ = (errors, groupErrors, control) => { |
|
|
|
if (PASSWORD_FIELDS.indexOf(control.name) < 0) return errors; |
|
|
|
return errors.concat( |
|
|
|
groupErrors.filter( |
|
|
|
/** |
|
|
|
* @param {?} __0 |
|
|
|
{ type: Component, args: [{ |
|
|
|
selector: 'abp-register', |
|
|
|
template: "<abp-auth-wrapper [mainContentRef]=\"mainContentRef\">\r\n <ng-template #mainContentRef>\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\">{{ 'AbpAccount::Login' | abpLocalization }}</a>\r\n </strong>\r\n <form [formGroup]=\"form\" (ngSubmit)=\"onSubmit()\" validateOnSubmit class=\"mt-4\">\r\n <div class=\"form-group\">\r\n <label for=\"input-user-name\">{{ 'AbpAccount::UserName' | abpLocalization }}</label\r\n ><span> * </span\r\n ><input autofocus type=\"text\" id=\"input-user-name\" class=\"form-control\" formControlName=\"username\" />\r\n </div>\r\n <div class=\"form-group\">\r\n <label for=\"input-email-address\">{{ 'AbpAccount::EmailAddress' | abpLocalization }}</label\r\n ><span> * </span><input type=\"email\" id=\"input-email-address\" class=\"form-control\" formControlName=\"email\" />\r\n </div>\r\n <div class=\"form-group\">\r\n <label for=\"input-password\">{{ 'AbpAccount::Password' | abpLocalization }}</label\r\n ><span> * </span><input type=\"password\" id=\"input-password\" class=\"form-control\" formControlName=\"password\" />\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 </ng-template>\r\n</abp-auth-wrapper>\r\n" |
|
|
|
}] } |
|
|
|
{ |
|
|
|
validators: [comparePasswords(PASSWORD_FIELDS)], |
|
|
|
}, |
|
|
|
); |
|
|
|
} |
|
|
|
/** |
|
|
|
* @return {?} |
|
|
|
*/ |
|
|
|
onSubmit() { |
|
|
|
if (this.form.invalid) return; |
|
|
|
this.inProgress = true; |
|
|
|
this.store |
|
|
|
.dispatch( |
|
|
|
new ChangePassword({ |
|
|
|
currentPassword: this.form.get('password').value, |
|
|
|
newPassword: this.form.get('newPassword').value, |
|
|
|
}), |
|
|
|
) |
|
|
|
.pipe( |
|
|
|
finalize( |
|
|
|
/** |
|
|
|
* @return {?} |
|
|
|
*/ |
|
|
|
() => (this.inProgress = false), |
|
|
|
), |
|
|
|
) |
|
|
|
.subscribe({ |
|
|
|
/** |
|
|
|
* @return {?} |
|
|
|
*/ |
|
|
|
(errors, groupErrors, control) => { |
|
|
|
if (PASSWORD_FIELDS.indexOf(control.name) < 0) |
|
|
|
return errors; |
|
|
|
return errors.concat(groupErrors.filter((/** |
|
|
|
* @param {?} __0 |
|
|
|
* @return {?} |
|
|
|
*/ |
|
|
|
({ key }) => key === 'passwordMismatch'))); |
|
|
|
}); |
|
|
|
} |
|
|
|
/** |
|
|
|
* @return {?} |
|
|
|
*/ |
|
|
|
ngOnInit() { |
|
|
|
/** @type {?} */ |
|
|
|
const passwordRules = this.store.selectSnapshot(ConfigState.getSettings('Identity.Password')); |
|
|
|
/** @type {?} */ |
|
|
|
const passwordRulesArr = (/** @type {?} */ ([])); |
|
|
|
/** @type {?} */ |
|
|
|
let requiredLength = 1; |
|
|
|
if ((passwordRules['Abp.Identity.Password.RequireDigit'] || '').toLowerCase() === 'true') { |
|
|
|
passwordRulesArr.push('number'); |
|
|
|
} |
|
|
|
if ((passwordRules['Abp.Identity.Password.RequireLowercase'] || '').toLowerCase() === 'true') { |
|
|
|
passwordRulesArr.push('small'); |
|
|
|
} |
|
|
|
if ((passwordRules['Abp.Identity.Password.RequireUppercase'] || '').toLowerCase() === 'true') { |
|
|
|
passwordRulesArr.push('capital'); |
|
|
|
} |
|
|
|
if (+(passwordRules['Abp.Identity.Password.RequiredUniqueChars'] || 0) > 0) { |
|
|
|
passwordRulesArr.push('special'); |
|
|
|
} |
|
|
|
if (Number.isInteger(+passwordRules['Abp.Identity.Password.RequiredLength'])) { |
|
|
|
requiredLength = +passwordRules['Abp.Identity.Password.RequiredLength']; |
|
|
|
} |
|
|
|
this.form = this.fb.group({ |
|
|
|
password: ['', required$2], |
|
|
|
newPassword: [ |
|
|
|
'', |
|
|
|
{ |
|
|
|
validators: [required$2, validatePassword(passwordRulesArr), minLength$2(requiredLength), maxLength$2(32)], |
|
|
|
}, |
|
|
|
], |
|
|
|
repeatNewPassword: [ |
|
|
|
'', |
|
|
|
{ validators: [required$2, validatePassword(passwordRulesArr), minLength$2(requiredLength), maxLength$2(32)] }, |
|
|
|
], |
|
|
|
}, { |
|
|
|
validators: [comparePasswords(PASSWORD_FIELDS)], |
|
|
|
}); |
|
|
|
} |
|
|
|
/** |
|
|
|
* @return {?} |
|
|
|
*/ |
|
|
|
onSubmit() { |
|
|
|
if (this.form.invalid) |
|
|
|
return; |
|
|
|
this.inProgress = true; |
|
|
|
this.store |
|
|
|
.dispatch(new ChangePassword({ |
|
|
|
currentPassword: this.form.get('password').value, |
|
|
|
newPassword: this.form.get('newPassword').value, |
|
|
|
})) |
|
|
|
.pipe(finalize((/** |
|
|
|
* @return {?} |
|
|
|
*/ |
|
|
|
() => err.error.error.message), 'AbpAccount::DefaultErrorMessage'), 'Error', { life: 7000 }); |
|
|
|
return throwError(err); |
|
|
|
})), finalize((/** |
|
|
|
* @return {?} |
|
|
|
*/ |
|
|
|
() => (this.inProgress = false)))) |
|
|
|
.subscribe({ |
|
|
|
next: (/** |
|
|
|
* @return {?} |
|
|
|
*/ |
|
|
|
() => { |
|
|
|
this.form.reset(); |
|
|
|
this.toasterService.success('AbpAccount::PasswordChangedMessage', 'Success', { life: 5000 }); |
|
|
|
}), |
|
|
|
error: (/** |
|
|
|
* @param {?} err |
|
|
|
* @return {?} |
|
|
|
*/ |
|
|
|
err => { |
|
|
|
this.toasterService.error(snq((/** |
|
|
|
* @return {?} |
|
|
|
*/ |
|
|
|
() => err.error.error.message), 'AbpAccount::DefaultErrorMessage'), 'Error', { |
|
|
|
life: 7000, |
|
|
|
}); |
|
|
|
}), |
|
|
|
}); |
|
|
|
.subscribe(); |
|
|
|
} |
|
|
|
} |
|
|
|
ChangePasswordComponent.decorators = [ |
|
|
|
RegisterComponent.decorators = [ |
|
|
|
{ type: Component, args: [{ |
|
|
|
selector: 'abp-change-password-form', |
|
|
|
template: "<form [formGroup]=\"form\" (ngSubmit)=\"onSubmit()\" [mapErrorsFn]=\"mapErrorsFn\" validateOnSubmit>\r\n <div class=\"form-group\">\r\n <label for=\"current-password\">{{ 'AbpIdentity::DisplayName:CurrentPassword' | abpLocalization }}</label\r\n ><span> * </span\r\n ><input type=\"password\" id=\"current-password\" class=\"form-control\" formControlName=\"password\" autofocus />\r\n </div>\r\n <div class=\"form-group\">\r\n <label for=\"new-password\">{{ 'AbpIdentity::DisplayName:NewPassword' | abpLocalization }}</label\r\n ><span> * </span><input type=\"password\" id=\"new-password\" class=\"form-control\" formControlName=\"newPassword\" />\r\n </div>\r\n <div class=\"form-group\">\r\n <label for=\"confirm-new-password\">{{ 'AbpIdentity::DisplayName:NewPasswordConfirm' | abpLocalization }}</label\r\n ><span> * </span\r\n ><input type=\"password\" id=\"confirm-new-password\" class=\"form-control\" formControlName=\"repeatNewPassword\" />\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" |
|
|
|
selector: 'abp-register', |
|
|
|
template: "<abp-auth-wrapper [mainContentRef]=\"mainContentRef\">\n <ng-template #mainContentRef>\n <h4>{{ 'AbpAccount::Register' | abpLocalization }}</h4>\n <strong>\n {{ 'AbpAccount::AlreadyRegistered' | abpLocalization }}\n <a class=\"text-decoration-none\" routerLink=\"/account/login\">{{ 'AbpAccount::Login' | abpLocalization }}</a>\n </strong>\n <form [formGroup]=\"form\" (ngSubmit)=\"onSubmit()\" validateOnSubmit class=\"mt-4\">\n <div class=\"form-group\">\n <label for=\"input-user-name\">{{ 'AbpAccount::UserName' | abpLocalization }}</label\n ><span> * </span\n ><input autofocus type=\"text\" id=\"input-user-name\" class=\"form-control\" formControlName=\"username\" />\n </div>\n <div class=\"form-group\">\n <label for=\"input-email-address\">{{ 'AbpAccount::EmailAddress' | abpLocalization }}</label\n ><span> * </span><input type=\"email\" id=\"input-email-address\" class=\"form-control\" formControlName=\"email\" />\n </div>\n <div class=\"form-group\">\n <label for=\"input-password\">{{ 'AbpAccount::Password' | abpLocalization }}</label\n ><span> * </span><input type=\"password\" id=\"input-password\" class=\"form-control\" formControlName=\"password\" />\n </div>\n <abp-button\n [loading]=\"inProgress\"\n buttonType=\"submit\"\n name=\"Action\"\n buttonClass=\"btn-block btn-lg mt-3 btn btn-primary\"\n >\n {{ 'AbpAccount::Register' | abpLocalization }}\n </abp-button>\n </form>\n </ng-template>\n</abp-auth-wrapper>\n" |
|
|
|
}] } |
|
|
|
]; |
|
|
|
/** @nocollapse */ |
|
|
|
ChangePasswordComponent.ctorParameters = () => [{ type: FormBuilder }, { type: Store }, { type: ToasterService }]; |
|
|
|
RegisterComponent.ctorParameters = () => [ |
|
|
|
{ type: FormBuilder }, |
|
|
|
{ type: AccountService }, |
|
|
|
{ type: OAuthService }, |
|
|
|
{ type: Store }, |
|
|
|
{ type: ToasterService } |
|
|
|
]; |
|
|
|
if (false) { |
|
|
|
/** @type {?} */ |
|
|
|
ChangePasswordComponent.prototype.form; |
|
|
|
/** @type {?} */ |
|
|
|
ChangePasswordComponent.prototype.inProgress; |
|
|
|
RegisterComponent.prototype.form; |
|
|
|
/** @type {?} */ |
|
|
|
ChangePasswordComponent.prototype.mapErrorsFn; |
|
|
|
RegisterComponent.prototype.inProgress; |
|
|
|
/** |
|
|
|
* @type {?} |
|
|
|
* @private |
|
|
|
*/ |
|
|
|
ChangePasswordComponent.prototype.fb; |
|
|
|
RegisterComponent.prototype.fb; |
|
|
|
/** |
|
|
|
* @type {?} |
|
|
|
* @private |
|
|
|
*/ |
|
|
|
ChangePasswordComponent.prototype.store; |
|
|
|
RegisterComponent.prototype.accountService; |
|
|
|
/** |
|
|
|
* @type {?} |
|
|
|
* @private |
|
|
|
*/ |
|
|
|
ChangePasswordComponent.prototype.toasterService; |
|
|
|
RegisterComponent.prototype.oauthService; |
|
|
|
/** |
|
|
|
* @type {?} |
|
|
|
* @private |
|
|
|
*/ |
|
|
|
RegisterComponent.prototype.store; |
|
|
|
/** |
|
|
|
* @type {?} |
|
|
|
* @private |
|
|
|
*/ |
|
|
|
RegisterComponent.prototype.toasterService; |
|
|
|
} |
|
|
|
|
|
|
|
/** |
|
|
|
* @fileoverview added by tsickle |
|
|
|
* Generated from: lib/account-routing.module.ts |
|
|
|
* @suppress {checkTypes,constantProperty,extraRequire,missingOverride,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc |
|
|
|
*/ |
|
|
|
/** @type {?} */ |
|
|
|
const routes = [ |
|
|
|
{ path: '', pathMatch: 'full', redirectTo: 'login' }, |
|
|
|
{ |
|
|
|
path: '', |
|
|
|
component: DynamicLayoutComponent, |
|
|
|
children: [ |
|
|
|
{ path: 'login', component: LoginComponent }, |
|
|
|
{ path: 'register', component: RegisterComponent }, |
|
|
|
{ |
|
|
|
path: 'manage-profile', |
|
|
|
component: ManageProfileComponent, |
|
|
|
}, |
|
|
|
], |
|
|
|
}, |
|
|
|
]; |
|
|
|
class AccountRoutingModule { |
|
|
|
} |
|
|
|
AccountRoutingModule.decorators = [ |
|
|
|
{ type: NgModule, args: [{ |
|
|
|
imports: [RouterModule.forChild(routes)], |
|
|
|
exports: [RouterModule], |
|
|
|
},] } |
|
|
|
]; |
|
|
|
|
|
|
|
/** |
|
|
|
* @fileoverview added by tsickle |
|
|
|
* Generated from: lib/components/change-password/change-password.component.ts |
|
|
|
* @suppress {checkTypes,constantProperty,extraRequire,missingOverride,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc |
|
|
|
*/ |
|
|
|
const { minLength: minLength$2, required: required$2, maxLength: maxLength$2 } = Validators; |
|
|
|
/** @type {?} */ |
|
|
|
const PASSWORD_FIELDS = ['newPassword', 'repeatNewPassword']; |
|
|
|
class ChangePasswordComponent { |
|
|
|
/** |
|
|
|
* @param {?} fb |
|
|
|
* @param {?} store |
|
|
|
* @param {?} toasterService |
|
|
|
*/ |
|
|
|
constructor(fb, store, toasterService) { |
|
|
|
this.fb = fb; |
|
|
|
this.store = store; |
|
|
|
this.toasterService = toasterService; |
|
|
|
this.mapErrorsFn = (/** |
|
|
|
* @param {?} errors |
|
|
|
* @param {?} groupErrors |
|
|
|
* @param {?} control |
|
|
|
* @return {?} |
|
|
|
*/ |
|
|
|
(errors, groupErrors, control) => { |
|
|
|
if (PASSWORD_FIELDS.indexOf(control.name) < 0) |
|
|
|
return errors; |
|
|
|
@ -624,12 +511,16 @@ if (false) { |
|
|
|
ChangePasswordComponent.decorators = [ |
|
|
|
{ type: Component, args: [{ |
|
|
|
selector: 'abp-change-password-form', |
|
|
|
template: "<form [formGroup]=\"form\" (ngSubmit)=\"onSubmit()\" [mapErrorsFn]=\"mapErrorsFn\" validateOnSubmit>\r\n <div class=\"form-group\">\r\n <label for=\"current-password\">{{ 'AbpIdentity::DisplayName:CurrentPassword' | abpLocalization }}</label\r\n ><span> * </span\r\n ><input type=\"password\" id=\"current-password\" class=\"form-control\" formControlName=\"password\" autofocus />\r\n </div>\r\n <div class=\"form-group\">\r\n <label for=\"new-password\">{{ 'AbpIdentity::DisplayName:NewPassword' | abpLocalization }}</label\r\n ><span> * </span><input type=\"password\" id=\"new-password\" class=\"form-control\" formControlName=\"newPassword\" />\r\n </div>\r\n <div class=\"form-group\">\r\n <label for=\"confirm-new-password\">{{ 'AbpIdentity::DisplayName:NewPasswordConfirm' | abpLocalization }}</label\r\n ><span> * </span\r\n ><input type=\"password\" id=\"confirm-new-password\" class=\"form-control\" formControlName=\"repeatNewPassword\" />\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" |
|
|
|
template: "<form [formGroup]=\"form\" (ngSubmit)=\"onSubmit()\" [mapErrorsFn]=\"mapErrorsFn\" validateOnSubmit>\n <div class=\"form-group\">\n <label for=\"current-password\">{{ 'AbpIdentity::DisplayName:CurrentPassword' | abpLocalization }}</label\n ><span> * </span\n ><input type=\"password\" id=\"current-password\" class=\"form-control\" formControlName=\"password\" autofocus />\n </div>\n <div class=\"form-group\">\n <label for=\"new-password\">{{ 'AbpIdentity::DisplayName:NewPassword' | abpLocalization }}</label\n ><span> * </span><input type=\"password\" id=\"new-password\" class=\"form-control\" formControlName=\"newPassword\" />\n </div>\n <div class=\"form-group\">\n <label for=\"confirm-new-password\">{{ 'AbpIdentity::DisplayName:NewPasswordConfirm' | abpLocalization }}</label\n ><span> * </span\n ><input type=\"password\" id=\"confirm-new-password\" class=\"form-control\" formControlName=\"repeatNewPassword\" />\n </div>\n <abp-button\n iconClass=\"fa fa-check\"\n buttonClass=\"btn btn-primary color-white\"\n buttonType=\"submit\"\n [loading]=\"inProgress\"\n [disabled]=\"form?.invalid\"\n >{{ 'AbpIdentity::Save' | abpLocalization }}</abp-button\n >\n</form>\n" |
|
|
|
}] } |
|
|
|
*/ |
|
|
|
save() { |
|
|
|
if (this.tenant.name && !this.inProgress) { |
|
|
|
this.inProgress = true; |
|
|
|
]; |
|
|
|
/** @nocollapse */ |
|
|
|
ChangePasswordComponent.ctorParameters = () => [ |
|
|
|
{ type: FormBuilder }, |
|
|
|
{ type: Store }, |
|
|
|
{ type: ToasterService } |
|
|
|
]; |
|
|
|
if (false) { |
|
|
|
/** @type {?} */ |
|
|
|
ChangePasswordComponent.prototype.form; |
|
|
|
/** @type {?} */ |
|
|
|
@ -652,14 +543,14 @@ ChangePasswordComponent.decorators = [ |
|
|
|
*/ |
|
|
|
ChangePasswordComponent.prototype.toasterService; |
|
|
|
} |
|
|
|
TenantBoxComponent.decorators = [ |
|
|
|
{ type: Component, args: [{ |
|
|
|
selector: 'abp-tenant-box', |
|
|
|
template: "<div class=\"card shadow-sm rounded mb-3\">\r\n <div class=\"card-body px-5\">\r\n <div class=\"row\">\r\n <div class=\"col\">\r\n <span style=\"font-size: 0.8em;\" class=\"text-uppercase text-muted\">{{\r\n 'AbpUiMultiTenancy::Tenant' | abpLocalization\r\n }}</span\r\n ><br />\r\n <h6 class=\"m-0 d-inline-block\">\r\n <span>\r\n {{ tenantName || ('AbpUiMultiTenancy::NotSelected' | abpLocalization) }}\r\n </span>\r\n </h6>\r\n </div>\r\n <div class=\"col-auto\">\r\n <a\r\n id=\"AbpTenantSwitchLink\"\r\n href=\"javascript:void(0);\"\r\n class=\"btn btn-sm mt-3 btn-outline-primary\"\r\n (click)=\"onSwitch()\"\r\n >{{ 'AbpUiMultiTenancy::Switch' | abpLocalization }}</a\r\n >\r\n </div>\r\n </div>\r\n </div>\r\n</div>\r\n\r\n<abp-modal size=\"md\" [(visible)]=\"isModalVisible\" [busy]=\"inProgress\">\r\n <ng-template #abpHeader>\r\n <h5>Switch Tenant</h5>\r\n </ng-template>\r\n <ng-template #abpBody>\r\n <form (ngSubmit)=\"save()\">\r\n <div class=\"mt-2\">\r\n <div class=\"form-group\">\r\n <label for=\"name\">{{ 'AbpUiMultiTenancy::Name' | abpLocalization }}</label>\r\n <input [(ngModel)]=\"tenant.name\" type=\"text\" id=\"name\" name=\"tenant\" class=\"form-control\" autofocus />\r\n </div>\r\n <p>{{ 'AbpUiMultiTenancy::SwitchTenantHint' | abpLocalization }}</p>\r\n </div>\r\n </form>\r\n </ng-template>\r\n <ng-template #abpFooter>\r\n <button #abpClose type=\"button\" class=\"btn btn-secondary\">\r\n {{ 'AbpTenantManagement::Cancel' | abpLocalization }}\r\n </button>\r\n <abp-button buttonType=\"button\" buttonClass=\"btn btn-primary\" (click)=\"save()\">\r\n <i class=\"fa fa-check mr-1\"></i> <span>{{ 'AbpTenantManagement::Save' | abpLocalization }}</span>\r\n </abp-button>\r\n </ng-template>\r\n</abp-modal>\r\n" |
|
|
|
}] } |
|
|
|
]; |
|
|
|
/** @nocollapse */ |
|
|
|
TenantBoxComponent.ctorParameters = () => [{ type: Store }, { type: ToasterService }, { type: AccountService }]; |
|
|
|
|
|
|
|
/** |
|
|
|
* @fileoverview added by tsickle |
|
|
|
* Generated from: lib/components/personal-settings/personal-settings.component.ts |
|
|
|
* @suppress {checkTypes,constantProperty,extraRequire,missingOverride,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc |
|
|
|
*/ |
|
|
|
const { maxLength: maxLength$3, required: required$3, email: email$1 } = Validators; |
|
|
|
class PersonalSettingsComponent { |
|
|
|
/** |
|
|
|
* @param {?} fb |
|
|
|
* @param {?} store |
|
|
|
@ -684,10 +575,10 @@ TenantBoxComponent.ctorParameters = () => [{ type: Store }, { type: ToasterServi |
|
|
|
.dispatch(new GetProfile()) |
|
|
|
.pipe(withLatestFrom(this.profile$), take(1)) |
|
|
|
.subscribe((/** |
|
|
|
mainContentRef: [{ type: Input }], |
|
|
|
cancelContentRef: [{ type: Input }] |
|
|
|
}; |
|
|
|
if (false) { |
|
|
|
* @param {?} __0 |
|
|
|
* @return {?} |
|
|
|
*/ |
|
|
|
([, profile]) => { |
|
|
|
this.form = this.fb.group({ |
|
|
|
userName: [profile.userName, [required$3, maxLength$3(256)]], |
|
|
|
email: [profile.email, [required$3, email$1, maxLength$3(256)]], |
|
|
|
@ -721,18 +612,20 @@ if (false) { |
|
|
|
PersonalSettingsComponent.decorators = [ |
|
|
|
{ type: Component, args: [{ |
|
|
|
selector: 'abp-personal-settings-form', |
|
|
|
template: "<form validateOnSubmit *ngIf=\"form\" [formGroup]=\"form\" (ngSubmit)=\"submit()\">\r\n <div class=\"form-group\">\r\n <label for=\"username\">{{ 'AbpIdentity::DisplayName:UserName' | abpLocalization }}</label\r\n ><span> * </span\r\n ><input\r\n type=\"text\"\r\n id=\"username\"\r\n class=\"form-control\"\r\n formControlName=\"userName\"\r\n autofocus\r\n (keydown.space)=\"$event.preventDefault()\"\r\n />\r\n </div>\r\n <div class=\"row\">\r\n <div class=\"col col-md-6\">\r\n <div class=\"form-group\">\r\n <label for=\"name\">{{ 'AbpIdentity::DisplayName:Name' | abpLocalization }}</label\r\n ><input type=\"text\" id=\"name\" class=\"form-control\" formControlName=\"name\" />\r\n </div>\r\n </div>\r\n <div class=\"col col-md-6\">\r\n <div class=\"form-group\">\r\n <label for=\"surname\">{{ 'AbpIdentity::DisplayName:Surname' | abpLocalization }}</label\r\n ><input type=\"text\" id=\"surname\" class=\"form-control\" formControlName=\"surname\" />\r\n </div>\r\n </div>\r\n </div>\r\n <div class=\"form-group\">\r\n <label for=\"email-address\">{{ 'AbpIdentity::DisplayName:Email' | abpLocalization }}</label\r\n ><span> * </span><input type=\"text\" id=\"email-address\" class=\"form-control\" formControlName=\"email\" />\r\n </div>\r\n <div class=\"form-group\">\r\n <label for=\"phone-number\">{{ 'AbpIdentity::DisplayName:PhoneNumber' | abpLocalization }}</label\r\n ><input type=\"text\" id=\"phone-number\" class=\"form-control\" formControlName=\"phoneNumber\" />\r\n </div>\r\n <abp-button\r\n buttonType=\"submit\"\r\n iconClass=\"fa fa-check\"\r\n buttonClass=\"btn btn-primary color-white\"\r\n [loading]=\"inProgress\"\r\n [disabled]=\"form?.invalid || form?.pristine\"\r\n >\r\n {{ 'AbpIdentity::Save' | abpLocalization }}</abp-button\r\n >\r\n</form>\r\n" |
|
|
|
template: "<form validateOnSubmit *ngIf=\"form\" [formGroup]=\"form\" (ngSubmit)=\"submit()\">\n <div class=\"form-group\">\n <label for=\"username\">{{ 'AbpIdentity::DisplayName:UserName' | abpLocalization }}</label\n ><span> * </span\n ><input\n type=\"text\"\n id=\"username\"\n class=\"form-control\"\n formControlName=\"userName\"\n autofocus\n (keydown.space)=\"$event.preventDefault()\"\n />\n </div>\n <div class=\"row\">\n <div class=\"col col-md-6\">\n <div class=\"form-group\">\n <label for=\"name\">{{ 'AbpIdentity::DisplayName:Name' | abpLocalization }}</label\n ><input type=\"text\" id=\"name\" class=\"form-control\" formControlName=\"name\" />\n </div>\n </div>\n <div class=\"col col-md-6\">\n <div class=\"form-group\">\n <label for=\"surname\">{{ 'AbpIdentity::DisplayName:Surname' | abpLocalization }}</label\n ><input type=\"text\" id=\"surname\" class=\"form-control\" formControlName=\"surname\" />\n </div>\n </div>\n </div>\n <div class=\"form-group\">\n <label for=\"email-address\">{{ 'AbpIdentity::DisplayName:Email' | abpLocalization }}</label\n ><span> * </span><input type=\"text\" id=\"email-address\" class=\"form-control\" formControlName=\"email\" />\n </div>\n <div class=\"form-group\">\n <label for=\"phone-number\">{{ 'AbpIdentity::DisplayName:PhoneNumber' | abpLocalization }}</label\n ><input type=\"text\" id=\"phone-number\" class=\"form-control\" formControlName=\"phoneNumber\" />\n </div>\n <abp-button\n buttonType=\"submit\"\n iconClass=\"fa fa-check\"\n buttonClass=\"btn btn-primary color-white\"\n [loading]=\"inProgress\"\n [disabled]=\"form?.invalid || form?.pristine\"\n >\n {{ 'AbpIdentity::Save' | abpLocalization }}</abp-button\n >\n</form>\n" |
|
|
|
}] } |
|
|
|
* @deprecated since version 0.9 |
|
|
|
* @type {?} |
|
|
|
*/ |
|
|
|
const ACCOUNT_ROUTES = { |
|
|
|
routes: /** @type {?} */ ([ |
|
|
|
{ |
|
|
|
name: 'Account', |
|
|
|
path: 'account', |
|
|
|
invisible: true, |
|
|
|
layout: 'application' /* application */, |
|
|
|
]; |
|
|
|
/** @nocollapse */ |
|
|
|
PersonalSettingsComponent.ctorParameters = () => [ |
|
|
|
{ type: FormBuilder }, |
|
|
|
{ type: Store }, |
|
|
|
{ type: ToasterService } |
|
|
|
]; |
|
|
|
__decorate([ |
|
|
|
Select(ProfileState.getProfile), |
|
|
|
__metadata("design:type", Observable) |
|
|
|
], PersonalSettingsComponent.prototype, "profile$", void 0); |
|
|
|
if (false) { |
|
|
|
/** @type {?} */ |
|
|
|
PersonalSettingsComponent.prototype.profile$; |
|
|
|
/** @type {?} */ |
|
|
|
@ -754,14 +647,14 @@ const ACCOUNT_ROUTES = { |
|
|
|
* @private |
|
|
|
*/ |
|
|
|
PersonalSettingsComponent.prototype.toasterService; |
|
|
|
* @record |
|
|
|
} |
|
|
|
|
|
|
|
/** |
|
|
|
* @fileoverview added by tsickle |
|
|
|
* Generated from: lib/components/tenant-box/tenant-box.component.ts |
|
|
|
* @suppress {checkTypes,constantProperty,extraRequire,missingOverride,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc |
|
|
|
*/ |
|
|
|
function RegisterResponse() {} |
|
|
|
if (false) { |
|
|
|
/** @type {?} */ |
|
|
|
RegisterResponse.prototype.tenantId; |
|
|
|
/** @type {?} */ |
|
|
|
RegisterResponse.prototype.userName; |
|
|
|
class TenantBoxComponent { |
|
|
|
/** |
|
|
|
* @param {?} store |
|
|
|
* @param {?} toasterService |
|
|
|
@ -798,6 +691,10 @@ if (false) { |
|
|
|
* @return {?} |
|
|
|
*/ |
|
|
|
() => (this.inProgress = false))), take(1), catchError((/** |
|
|
|
* @param {?} err |
|
|
|
* @return {?} |
|
|
|
*/ |
|
|
|
err => { |
|
|
|
this.toasterService.error(snq((/** |
|
|
|
* @return {?} |
|
|
|
*/ |
|
|
|
@ -831,10 +728,21 @@ if (false) { |
|
|
|
this.tenantName = null; |
|
|
|
this.isModalVisible = false; |
|
|
|
} |
|
|
|
} |
|
|
|
} |
|
|
|
TenantBoxComponent.decorators = [ |
|
|
|
{ type: Component, args: [{ |
|
|
|
selector: 'abp-tenant-box', |
|
|
|
template: "<div class=\"card shadow-sm rounded mb-3\">\r\n <div class=\"card-body px-5\">\r\n <div class=\"row\">\r\n <div class=\"col\">\r\n <span style=\"font-size: 0.8em;\" class=\"text-uppercase text-muted\">{{\r\n 'AbpUiMultiTenancy::Tenant' | abpLocalization\r\n }}</span\r\n ><br />\r\n <h6 class=\"m-0 d-inline-block\">\r\n <span>\r\n {{ tenantName || ('AbpUiMultiTenancy::NotSelected' | abpLocalization) }}\r\n </span>\r\n </h6>\r\n </div>\r\n <div class=\"col-auto\">\r\n <a\r\n id=\"AbpTenantSwitchLink\"\r\n href=\"javascript:void(0);\"\r\n class=\"btn btn-sm mt-3 btn-outline-primary\"\r\n (click)=\"onSwitch()\"\r\n >{{ 'AbpUiMultiTenancy::Switch' | abpLocalization }}</a\r\n >\r\n </div>\r\n </div>\r\n </div>\r\n</div>\r\n\r\n<abp-modal size=\"md\" [(visible)]=\"isModalVisible\" [busy]=\"inProgress\">\r\n <ng-template #abpHeader>\r\n <h5>Switch Tenant</h5>\r\n </ng-template>\r\n <ng-template #abpBody>\r\n <form (ngSubmit)=\"save()\">\r\n <div class=\"mt-2\">\r\n <div class=\"form-group\">\r\n <label for=\"name\">{{ 'AbpUiMultiTenancy::Name' | abpLocalization }}</label>\r\n <input [(ngModel)]=\"tenant.name\" type=\"text\" id=\"name\" name=\"tenant\" class=\"form-control\" autofocus />\r\n </div>\r\n <p>{{ 'AbpUiMultiTenancy::SwitchTenantHint' | abpLocalization }}</p>\r\n </div>\r\n </form>\r\n </ng-template>\r\n <ng-template #abpFooter>\r\n <button #abpClose type=\"button\" class=\"btn btn-secondary\">\r\n {{ 'AbpTenantManagement::Cancel' | abpLocalization }}\r\n </button>\r\n <abp-button buttonType=\"button\" buttonClass=\"btn btn-primary\" (click)=\"save()\">\r\n <i class=\"fa fa-check mr-1\"></i> <span>{{ 'AbpTenantManagement::Save' | abpLocalization }}</span>\r\n </abp-button>\r\n </ng-template>\r\n</abp-modal>\r\n" |
|
|
|
template: "<div class=\"card shadow-sm rounded mb-3\">\n <div class=\"card-body px-5\">\n <div class=\"row\">\n <div class=\"col\">\n <span style=\"font-size: 0.8em;\" class=\"text-uppercase text-muted\">{{\n 'AbpUiMultiTenancy::Tenant' | abpLocalization\n }}</span\n ><br />\n <h6 class=\"m-0 d-inline-block\">\n <span>\n {{ tenantName || ('AbpUiMultiTenancy::NotSelected' | abpLocalization) }}\n </span>\n </h6>\n </div>\n <div class=\"col-auto\">\n <a\n id=\"AbpTenantSwitchLink\"\n href=\"javascript:void(0);\"\n class=\"btn btn-sm mt-3 btn-outline-primary\"\n (click)=\"onSwitch()\"\n >{{ 'AbpUiMultiTenancy::Switch' | abpLocalization }}</a\n >\n </div>\n </div>\n </div>\n</div>\n\n<abp-modal size=\"md\" [(visible)]=\"isModalVisible\" [busy]=\"inProgress\">\n <ng-template #abpHeader>\n <h5>Switch Tenant</h5>\n </ng-template>\n <ng-template #abpBody>\n <form (ngSubmit)=\"save()\">\n <div class=\"mt-2\">\n <div class=\"form-group\">\n <label for=\"name\">{{ 'AbpUiMultiTenancy::Name' | abpLocalization }}</label>\n <input [(ngModel)]=\"tenant.name\" type=\"text\" id=\"name\" name=\"tenant\" class=\"form-control\" autofocus />\n </div>\n <p>{{ 'AbpUiMultiTenancy::SwitchTenantHint' | abpLocalization }}</p>\n </div>\n </form>\n </ng-template>\n <ng-template #abpFooter>\n <button #abpClose type=\"button\" class=\"btn btn-secondary\">\n {{ 'AbpTenantManagement::Cancel' | abpLocalization }}\n </button>\n <abp-button buttonType=\"button\" buttonClass=\"btn btn-primary\" (click)=\"save()\">\n <i class=\"fa fa-check mr-1\"></i> <span>{{ 'AbpTenantManagement::Save' | abpLocalization }}</span>\n </abp-button>\n </ng-template>\n</abp-modal>\n" |
|
|
|
}] } |
|
|
|
]; |
|
|
|
/** @nocollapse */ |
|
|
|
TenantBoxComponent.ctorParameters = () => [ |
|
|
|
{ type: Store }, |
|
|
|
{ type: ToasterService }, |
|
|
|
{ type: AccountService } |
|
|
|
]; |
|
|
|
if (false) { |
|
|
|
/** @type {?} */ |
|
|
|
TenantBoxComponent.prototype.tenant; |
|
|
|
/** @type {?} */ |
|
|
|
@ -858,6 +766,55 @@ if (false) { |
|
|
|
* @private |
|
|
|
*/ |
|
|
|
TenantBoxComponent.prototype.accountService; |
|
|
|
} |
|
|
|
|
|
|
|
/** |
|
|
|
* @fileoverview added by tsickle |
|
|
|
* Generated from: lib/tokens/options.token.ts |
|
|
|
* @suppress {checkTypes,constantProperty,extraRequire,missingOverride,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc |
|
|
|
*/ |
|
|
|
/** |
|
|
|
* @param {?} options |
|
|
|
* @return {?} |
|
|
|
*/ |
|
|
|
function optionsFactory(options) { |
|
|
|
return Object.assign({ redirectUrl: '/' }, options); |
|
|
|
} |
|
|
|
/** @type {?} */ |
|
|
|
const ACCOUNT_OPTIONS = new InjectionToken('ACCOUNT_OPTIONS'); |
|
|
|
|
|
|
|
/** |
|
|
|
* @fileoverview added by tsickle |
|
|
|
* Generated from: lib/components/auth-wrapper/auth-wrapper.component.ts |
|
|
|
* @suppress {checkTypes,constantProperty,extraRequire,missingOverride,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc |
|
|
|
*/ |
|
|
|
class AuthWrapperComponent { |
|
|
|
} |
|
|
|
AuthWrapperComponent.decorators = [ |
|
|
|
{ type: Component, args: [{ |
|
|
|
selector: 'abp-auth-wrapper', |
|
|
|
template: "<div class=\"row\">\n <div class=\"mx-auto col col-md-5\">\n <abp-tenant-box></abp-tenant-box>\n\n <div class=\"abp-account-container\">\n <div class=\"card mt-3 shadow-sm rounded\">\n <div class=\"card-body p-5\">\n <ng-content *ngTemplateOutlet=\"mainContentRef\"></ng-content>\n </div>\n <ng-content *ngTemplateOutlet=\"cancelContentRef\"></ng-content>\n </div>\n </div>\n </div>\n</div>\n" |
|
|
|
}] } |
|
|
|
]; |
|
|
|
AuthWrapperComponent.propDecorators = { |
|
|
|
mainContentRef: [{ type: Input }], |
|
|
|
cancelContentRef: [{ type: Input }] |
|
|
|
}; |
|
|
|
if (false) { |
|
|
|
/** @type {?} */ |
|
|
|
AuthWrapperComponent.prototype.mainContentRef; |
|
|
|
/** @type {?} */ |
|
|
|
AuthWrapperComponent.prototype.cancelContentRef; |
|
|
|
} |
|
|
|
|
|
|
|
/** |
|
|
|
* @fileoverview added by tsickle |
|
|
|
* Generated from: lib/account.module.ts |
|
|
|
* @suppress {checkTypes,constantProperty,extraRequire,missingOverride,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc |
|
|
|
*/ |
|
|
|
class AccountModule { |
|
|
|
} |
|
|
|
AccountModule.decorators = [ |
|
|
|
{ type: NgModule, args: [{ |
|
|
|
declarations: [ |
|
|
|
AuthWrapperComponent, |
|
|
|
@ -871,4 +828,171 @@ if (false) { |
|
|
|
imports: [CoreModule, AccountRoutingModule, ThemeSharedModule, TableModule, NgbDropdownModule, NgxValidateCoreModule], |
|
|
|
exports: [], |
|
|
|
},] } |
|
|
|
]; |
|
|
|
/** |
|
|
|
* |
|
|
|
* @deprecated since version 0.9 |
|
|
|
* @param {?=} options |
|
|
|
* @return {?} |
|
|
|
*/ |
|
|
|
function AccountProviders(options = (/** @type {?} */ ({}))) { |
|
|
|
return [ |
|
|
|
{ provide: ACCOUNT_OPTIONS, useValue: options }, |
|
|
|
{ |
|
|
|
provide: 'ACCOUNT_OPTIONS', |
|
|
|
useFactory: optionsFactory, |
|
|
|
deps: [ACCOUNT_OPTIONS], |
|
|
|
}, |
|
|
|
]; |
|
|
|
} |
|
|
|
|
|
|
|
/** |
|
|
|
* @fileoverview added by tsickle |
|
|
|
* Generated from: lib/components/index.ts |
|
|
|
* @suppress {checkTypes,constantProperty,extraRequire,missingOverride,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc |
|
|
|
*/ |
|
|
|
|
|
|
|
/** |
|
|
|
* @fileoverview added by tsickle |
|
|
|
* Generated from: lib/constants/routes.ts |
|
|
|
* @suppress {checkTypes,constantProperty,extraRequire,missingOverride,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc |
|
|
|
*/ |
|
|
|
/** |
|
|
|
* |
|
|
|
* @deprecated since version 0.9 |
|
|
|
* @type {?} |
|
|
|
*/ |
|
|
|
const ACCOUNT_ROUTES = { |
|
|
|
routes: (/** @type {?} */ ([ |
|
|
|
{ |
|
|
|
name: 'Account', |
|
|
|
path: 'account', |
|
|
|
invisible: true, |
|
|
|
layout: "application" /* application */, |
|
|
|
children: [{ path: 'login', name: 'Login', order: 1 }, { path: 'register', name: 'Register', order: 2 }], |
|
|
|
}, |
|
|
|
])), |
|
|
|
}; |
|
|
|
|
|
|
|
/** |
|
|
|
* @fileoverview added by tsickle |
|
|
|
* Generated from: lib/tokens/index.ts |
|
|
|
* @suppress {checkTypes,constantProperty,extraRequire,missingOverride,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc |
|
|
|
*/ |
|
|
|
|
|
|
|
/** |
|
|
|
* @fileoverview added by tsickle |
|
|
|
* Generated from: lib/models/options.ts |
|
|
|
* @suppress {checkTypes,constantProperty,extraRequire,missingOverride,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc |
|
|
|
*/ |
|
|
|
/** |
|
|
|
* @record |
|
|
|
*/ |
|
|
|
function Options() { } |
|
|
|
if (false) { |
|
|
|
/** @type {?|undefined} */ |
|
|
|
Options.prototype.redirectUrl; |
|
|
|
} |
|
|
|
|
|
|
|
/** |
|
|
|
* @fileoverview added by tsickle |
|
|
|
* Generated from: lib/models/user.ts |
|
|
|
* @suppress {checkTypes,constantProperty,extraRequire,missingOverride,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc |
|
|
|
*/ |
|
|
|
/** |
|
|
|
* @record |
|
|
|
*/ |
|
|
|
function RegisterRequest() { } |
|
|
|
if (false) { |
|
|
|
/** @type {?} */ |
|
|
|
RegisterRequest.prototype.userName; |
|
|
|
/** @type {?} */ |
|
|
|
RegisterRequest.prototype.emailAddress; |
|
|
|
/** @type {?} */ |
|
|
|
RegisterRequest.prototype.password; |
|
|
|
/** @type {?|undefined} */ |
|
|
|
RegisterRequest.prototype.appName; |
|
|
|
} |
|
|
|
/** |
|
|
|
* @record |
|
|
|
*/ |
|
|
|
function RegisterResponse() { } |
|
|
|
if (false) { |
|
|
|
/** @type {?} */ |
|
|
|
RegisterResponse.prototype.tenantId; |
|
|
|
/** @type {?} */ |
|
|
|
RegisterResponse.prototype.userName; |
|
|
|
/** @type {?} */ |
|
|
|
RegisterResponse.prototype.name; |
|
|
|
/** @type {?} */ |
|
|
|
RegisterResponse.prototype.surname; |
|
|
|
/** @type {?} */ |
|
|
|
RegisterResponse.prototype.email; |
|
|
|
/** @type {?} */ |
|
|
|
RegisterResponse.prototype.emailConfirmed; |
|
|
|
/** @type {?} */ |
|
|
|
RegisterResponse.prototype.phoneNumber; |
|
|
|
/** @type {?} */ |
|
|
|
RegisterResponse.prototype.phoneNumberConfirmed; |
|
|
|
/** @type {?} */ |
|
|
|
RegisterResponse.prototype.twoFactorEnabled; |
|
|
|
/** @type {?} */ |
|
|
|
RegisterResponse.prototype.lockoutEnabled; |
|
|
|
/** @type {?} */ |
|
|
|
RegisterResponse.prototype.lockoutEnd; |
|
|
|
/** @type {?} */ |
|
|
|
RegisterResponse.prototype.concurrencyStamp; |
|
|
|
/** @type {?} */ |
|
|
|
RegisterResponse.prototype.isDeleted; |
|
|
|
/** @type {?} */ |
|
|
|
RegisterResponse.prototype.deleterId; |
|
|
|
/** @type {?} */ |
|
|
|
RegisterResponse.prototype.deletionTime; |
|
|
|
/** @type {?} */ |
|
|
|
RegisterResponse.prototype.lastModificationTime; |
|
|
|
/** @type {?} */ |
|
|
|
RegisterResponse.prototype.lastModifierId; |
|
|
|
/** @type {?} */ |
|
|
|
RegisterResponse.prototype.creationTime; |
|
|
|
/** @type {?} */ |
|
|
|
RegisterResponse.prototype.creatorId; |
|
|
|
/** @type {?} */ |
|
|
|
RegisterResponse.prototype.id; |
|
|
|
} |
|
|
|
|
|
|
|
/** |
|
|
|
* @fileoverview added by tsickle |
|
|
|
* Generated from: lib/models/tenant.ts |
|
|
|
* @suppress {checkTypes,constantProperty,extraRequire,missingOverride,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc |
|
|
|
*/ |
|
|
|
/** |
|
|
|
* @record |
|
|
|
*/ |
|
|
|
function TenantIdResponse() { } |
|
|
|
if (false) { |
|
|
|
/** @type {?} */ |
|
|
|
TenantIdResponse.prototype.success; |
|
|
|
/** @type {?} */ |
|
|
|
TenantIdResponse.prototype.tenantId; |
|
|
|
} |
|
|
|
|
|
|
|
/** |
|
|
|
* @fileoverview added by tsickle |
|
|
|
* Generated from: lib/models/index.ts |
|
|
|
* @suppress {checkTypes,constantProperty,extraRequire,missingOverride,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc |
|
|
|
*/ |
|
|
|
|
|
|
|
/** |
|
|
|
* @fileoverview added by tsickle |
|
|
|
* Generated from: public-api.ts |
|
|
|
* @suppress {checkTypes,constantProperty,extraRequire,missingOverride,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc |
|
|
|
*/ |
|
|
|
|
|
|
|
/** |
|
|
|
* @fileoverview added by tsickle |
|
|
|
* Generated from: abp-ng.account.ts |
|
|
|
* @suppress {checkTypes,constantProperty,extraRequire,missingOverride,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc |
|
|
|
*/ |
|
|
|
|
|
|
|
export { ACCOUNT_OPTIONS, ACCOUNT_ROUTES, AccountModule, AccountProviders, ChangePasswordComponent, LoginComponent, ManageProfileComponent, PersonalSettingsComponent, RegisterComponent, optionsFactory, AuthWrapperComponent as ɵa, LoginComponent as ɵb, RegisterComponent as ɵd, AccountService as ɵe, TenantBoxComponent as ɵf, ChangePasswordComponent as ɵg, ManageProfileComponent as ɵh, PersonalSettingsComponent as ɵi, AccountRoutingModule as ɵj, optionsFactory as ɵk, ACCOUNT_OPTIONS as ɵl }; |
|
|
|
//# sourceMappingURL=abp-ng.account.js.map
|
|
|
|
|