mirror of https://github.com/abpframework/abp.git
78 changed files with 2011 additions and 121 deletions
@ -0,0 +1 @@ |
|||
<h1> @abp/ng.account </h1> |
|||
@ -0,0 +1,10 @@ |
|||
/** |
|||
* Generated bundle index. Do not edit. |
|||
*/ |
|||
export * from './public-api'; |
|||
export { AccountRoutingModule as ɵe } from './lib/account-routing.module'; |
|||
export { LoginComponent as ɵa } from './lib/components/login/login.component'; |
|||
export { RegisterComponent as ɵc } from './lib/components/register/register.component'; |
|||
export { TenantBoxComponent as ɵd } from './lib/components/tenant-box/tenant-box.component'; |
|||
export { Options as ɵb } from './lib/models/options'; |
|||
export { ACCOUNT_OPTIONS as ɵg, optionsFactory as ɵf } from './lib/tokens/options.token'; |
|||
File diff suppressed because one or more lines are too long
@ -0,0 +1,334 @@ |
|||
(function (global, factory) { |
|||
typeof exports === 'object' && typeof module !== 'undefined' ? factory(exports, require('@abp/ng.core'), require('@angular/core'), require('@angular/router'), require('@angular/forms'), require('@ngxs/router-plugin'), require('@ngxs/store'), require('angular-oauth2-oidc'), require('rxjs'), require('@abp/ng.theme.shared'), require('rxjs/operators'), require('snq'), require('@ngx-validate/core'), require('@ng-bootstrap/ng-bootstrap'), require('primeng/table')) : |
|||
typeof define === 'function' && define.amd ? define('@abp/ng.account', ['exports', '@abp/ng.core', '@angular/core', '@angular/router', '@angular/forms', '@ngxs/router-plugin', '@ngxs/store', 'angular-oauth2-oidc', 'rxjs', '@abp/ng.theme.shared', 'rxjs/operators', 'snq', '@ngx-validate/core', '@ng-bootstrap/ng-bootstrap', 'primeng/table'], factory) : |
|||
(global = global || self, factory((global.abp = global.abp || {}, global.abp.ng = global.abp.ng || {}, global.abp.ng.account = {}), global.ng_core, global.ng.core, global.ng.router, global.ng.forms, global.routerPlugin, global.store, global.angularOauth2Oidc, global.rxjs, global.ng_theme_shared, global.rxjs.operators, global.snq, global.core$1, global.ngBootstrap, global.table)); |
|||
}(this, function (exports, ng_core, core, router, forms, routerPlugin, store, angularOauth2Oidc, rxjs, ng_theme_shared, operators, snq, core$1, ngBootstrap, table) { 'use strict'; |
|||
|
|||
snq = snq && snq.hasOwnProperty('default') ? snq['default'] : snq; |
|||
|
|||
/*! ***************************************************************************** |
|||
Copyright (c) Microsoft Corporation. All rights reserved. |
|||
Licensed under the Apache License, Version 2.0 (the "License"); you may not use |
|||
this file except in compliance with the License. You may obtain a copy of the |
|||
License at http://www.apache.org/licenses/LICENSE-2.0
|
|||
|
|||
THIS CODE IS PROVIDED ON AN *AS IS* BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY |
|||
KIND, EITHER EXPRESS OR IMPLIED, INCLUDING WITHOUT LIMITATION ANY IMPLIED |
|||
WARRANTIES OR CONDITIONS OF TITLE, FITNESS FOR A PARTICULAR PURPOSE, |
|||
MERCHANTABLITY OR NON-INFRINGEMENT. |
|||
|
|||
See the Apache Version 2.0 License for specific language governing permissions |
|||
and limitations under the License. |
|||
***************************************************************************** */ |
|||
|
|||
var __assign = function() { |
|||
__assign = Object.assign || function __assign(t) { |
|||
for (var s, i = 1, n = arguments.length; i < n; i++) { |
|||
s = arguments[i]; |
|||
for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p)) t[p] = s[p]; |
|||
} |
|||
return t; |
|||
}; |
|||
return __assign.apply(this, arguments); |
|||
}; |
|||
|
|||
/** |
|||
* @fileoverview added by tsickle |
|||
* @suppress {checkTypes,extraRequire,missingOverride,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc |
|||
*/ |
|||
var maxLength = forms.Validators.maxLength, minLength = forms.Validators.minLength, required = forms.Validators.required; |
|||
var LoginComponent = /** @class */ (function () { |
|||
function LoginComponent(fb, oauthService, store, toasterService, options) { |
|||
this.fb = fb; |
|||
this.oauthService = oauthService; |
|||
this.store = store; |
|||
this.toasterService = toasterService; |
|||
this.options = options; |
|||
this.oauthService.configure(this.store.selectSnapshot(ng_core.ConfigState.getOne('environment')).oAuthConfig); |
|||
this.oauthService.loadDiscoveryDocument(); |
|||
this.form = this.fb.group({ |
|||
username: ['', [required, maxLength(255)]], |
|||
password: ['', [required, maxLength(32)]], |
|||
remember: [false], |
|||
}); |
|||
} |
|||
/** |
|||
* @return {?} |
|||
*/ |
|||
LoginComponent.prototype.onSubmit = /** |
|||
* @return {?} |
|||
*/ |
|||
function () { |
|||
var _this = this; |
|||
if (this.form.invalid) |
|||
return; |
|||
this.oauthService.setStorage(this.form.value.remember ? localStorage : sessionStorage); |
|||
this.inProgress = true; |
|||
rxjs.from(this.oauthService.fetchTokenUsingPasswordFlow(this.form.get('username').value, this.form.get('password').value)) |
|||
.pipe(operators.switchMap((/** |
|||
* @return {?} |
|||
*/ |
|||
function () { return _this.store.dispatch(new ng_core.ConfigGetAppConfiguration()); })), operators.tap((/** |
|||
* @return {?} |
|||
*/ |
|||
function () { |
|||
/** @type {?} */ |
|||
var redirectUrl = snq((/** |
|||
* @return {?} |
|||
*/ |
|||
function () { return window.history.state; })).redirectUrl || (_this.options || {}).redirectUrl || '/'; |
|||
_this.store.dispatch(new routerPlugin.Navigate([redirectUrl])); |
|||
})), operators.catchError((/** |
|||
* @param {?} err |
|||
* @return {?} |
|||
*/ |
|||
function (err) { |
|||
_this.toasterService.error(snq((/** |
|||
* @return {?} |
|||
*/ |
|||
function () { return err.error.error_description; }), 'An error occured.'), 'Error'); |
|||
return rxjs.throwError(err); |
|||
})), operators.finalize((/** |
|||
* @return {?} |
|||
*/ |
|||
function () { return (_this.inProgress = false); }))) |
|||
.subscribe(); |
|||
}; |
|||
LoginComponent.decorators = [ |
|||
{ type: core.Component, args: [{ |
|||
selector: 'abp-login', |
|||
template: "<div class=\"row\">\n <div class=\"col col-md-4 offset-md-4\">\n <abp-tenant-box></abp-tenant-box>\n\n <div class=\"abp-account-container\">\n <h2>{{ 'AbpAccount::Login' | abpLocalization }}</h2>\n <form [formGroup]=\"form\" (ngSubmit)=\"onSubmit()\" novalidate>\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 />\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 <div class=\"mt-2\">\n <button type=\"button\" name=\"Action\" value=\"Cancel\" class=\"btn btn-secondary\">\n {{ 'AbpAccount::Cancel' | abpLocalization }}\n </button>\n <button [disabled]=\"inProgress\" type=\"submit\" name=\"Action\" value=\"Login\" class=\"btn btn-primary ml-1\">\n {{ 'AbpAccount::Login' | abpLocalization }}\n </button>\n </div>\n </form>\n <div style=\"padding-top: 20px\">\n <a routerLink=\"/account/register\">{{ 'AbpAccount::Register' | abpLocalization }}</a>\n </div>\n </div>\n </div>\n</div>\n" |
|||
}] } |
|||
]; |
|||
/** @nocollapse */ |
|||
LoginComponent.ctorParameters = function () { return [ |
|||
{ type: forms.FormBuilder }, |
|||
{ type: angularOauth2Oidc.OAuthService }, |
|||
{ type: store.Store }, |
|||
{ type: ng_theme_shared.ToasterService }, |
|||
{ type: undefined, decorators: [{ type: core.Optional }, { type: core.Inject, args: ['ACCOUNT_OPTIONS',] }] } |
|||
]; }; |
|||
return LoginComponent; |
|||
}()); |
|||
|
|||
/** |
|||
* @fileoverview added by tsickle |
|||
* @suppress {checkTypes,extraRequire,missingOverride,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc |
|||
*/ |
|||
var maxLength$1 = forms.Validators.maxLength, minLength$1 = forms.Validators.minLength, required$1 = forms.Validators.required, email = forms.Validators.email; |
|||
var RegisterComponent = /** @class */ (function () { |
|||
function RegisterComponent(fb, oauthService, router) { |
|||
this.fb = fb; |
|||
this.oauthService = oauthService; |
|||
this.router = router; |
|||
this.form = this.fb.group({ |
|||
username: ['', [required$1, maxLength$1(255)]], |
|||
password: [ |
|||
'', |
|||
[required$1, maxLength$1(32), minLength$1(6), core$1.validatePassword(['small', 'capital', 'number', 'special'])], |
|||
], |
|||
email: ['', [required$1, email]], |
|||
}); |
|||
} |
|||
/** |
|||
* @return {?} |
|||
*/ |
|||
RegisterComponent.prototype.onSubmit = /** |
|||
* @return {?} |
|||
*/ |
|||
function () { |
|||
if (this.form.invalid) |
|||
return; |
|||
}; |
|||
RegisterComponent.decorators = [ |
|||
{ type: core.Component, args: [{ |
|||
selector: 'abp-register', |
|||
template: "<div class=\"row\">\n <div class=\"col col-md-4 offset-md-4\">\n <abp-tenant-box></abp-tenant-box>\n\n <div class=\"abp-account-container\">\n <h2>Register</h2>\n <form [formGroup]=\"form\" (ngSubmit)=\"onSubmit()\" novalidate>\n <div class=\"form-group\">\n <label for=\"input-user-name\">User name</label><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\">Email address</label><span> * </span\n ><input type=\"email\" id=\"input-email-address\" class=\"form-control\" formControlName=\"email\" />\n </div>\n <div class=\"form-group\">\n <label for=\"input-password\">Password</label><span> * </span\n ><input type=\"password\" id=\"input-password\" class=\"form-control\" formControlName=\"password\" />\n </div>\n <button type=\"submit\" class=\"btn btn-primary\">Register</button>\n </form>\n </div>\n </div>\n</div>\n" |
|||
}] } |
|||
]; |
|||
/** @nocollapse */ |
|||
RegisterComponent.ctorParameters = function () { return [ |
|||
{ type: forms.FormBuilder }, |
|||
{ type: angularOauth2Oidc.OAuthService }, |
|||
{ type: router.Router } |
|||
]; }; |
|||
return RegisterComponent; |
|||
}()); |
|||
|
|||
/** |
|||
* @fileoverview added by tsickle |
|||
* @suppress {checkTypes,extraRequire,missingOverride,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc |
|||
*/ |
|||
/** @type {?} */ |
|||
var routes = [ |
|||
{ path: '', pathMatch: 'full', redirectTo: 'login' }, |
|||
{ |
|||
path: '', |
|||
component: ng_core.DynamicLayoutComponent, |
|||
children: [{ path: 'login', component: LoginComponent }, { path: 'register', component: RegisterComponent }], |
|||
}, |
|||
]; |
|||
var AccountRoutingModule = /** @class */ (function () { |
|||
function AccountRoutingModule() { |
|||
} |
|||
AccountRoutingModule.decorators = [ |
|||
{ type: core.NgModule, args: [{ |
|||
imports: [router.RouterModule.forChild(routes)], |
|||
exports: [router.RouterModule], |
|||
},] } |
|||
]; |
|||
return AccountRoutingModule; |
|||
}()); |
|||
|
|||
/** |
|||
* @fileoverview added by tsickle |
|||
* @suppress {checkTypes,extraRequire,missingOverride,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc |
|||
*/ |
|||
var TenantBoxComponent = /** @class */ (function () { |
|||
function TenantBoxComponent(modalService, fb) { |
|||
this.modalService = modalService; |
|||
this.fb = fb; |
|||
} |
|||
/** |
|||
* @return {?} |
|||
*/ |
|||
TenantBoxComponent.prototype.createForm = /** |
|||
* @return {?} |
|||
*/ |
|||
function () { |
|||
this.form = this.fb.group({ |
|||
name: [this.selected.name], |
|||
}); |
|||
}; |
|||
/** |
|||
* @return {?} |
|||
*/ |
|||
TenantBoxComponent.prototype.openModal = /** |
|||
* @return {?} |
|||
*/ |
|||
function () { |
|||
this.createForm(); |
|||
this.modalService.open(this.modalContent); |
|||
}; |
|||
/** |
|||
* @return {?} |
|||
*/ |
|||
TenantBoxComponent.prototype.onSwitch = /** |
|||
* @return {?} |
|||
*/ |
|||
function () { |
|||
this.selected = (/** @type {?} */ ({})); |
|||
this.openModal(); |
|||
}; |
|||
/** |
|||
* @return {?} |
|||
*/ |
|||
TenantBoxComponent.prototype.save = /** |
|||
* @return {?} |
|||
*/ |
|||
function () { |
|||
this.selected = this.form.value; |
|||
this.modalService.dismissAll(); |
|||
}; |
|||
TenantBoxComponent.decorators = [ |
|||
{ type: core.Component, args: [{ |
|||
selector: 'abp-tenant-box', |
|||
template: "<div\n class=\"tenant-switch-box\"\n style=\"background-color: #eee; margin-bottom: 20px; color: #000; padding: 10px; text-align: center;\"\n>\n <span style=\"color: #666;\">{{ 'AbpUiMultiTenancy::Tenant' | abpLocalization }}: </span>\n <strong>\n <i>{{ selected?.name ? selected.name : ('AbpUiMultiTenancy::NotSelected' | abpLocalization) }}</i>\n </strong>\n (<a id=\"abp-tenant-switch-link\" style=\"color: #333; cursor: pointer\" (click)=\"onSwitch()\">{{\n 'AbpUiMultiTenancy::Switch' | abpLocalization\n }}</a\n >)\n</div>\n\n<ng-template #modalContent let-modal>\n <div class=\"modal-header\">\n <h5 class=\"modal-title\" id=\"modal-basic-title\">\n SwitchTenant\n </h5>\n <button type=\"button\" class=\"close\" aria-label=\"Close\" (click)=\"modal.dismiss()\">\n <span aria-hidden=\"true\">×</span>\n </button>\n </div>\n <form [formGroup]=\"form\" (ngSubmit)=\"save()\">\n <div class=\"modal-body\">\n <div class=\"mt-2\">\n <div class=\"form-group\">\n <label for=\"name\">{{ 'AbpUiMultiTenancy::Name' | abpLocalization }}</label>\n <input type=\"text\" id=\"name\" class=\"form-control\" formControlName=\"name\" />\n </div>\n <p>{{ 'AbpUiMultiTenancy::SwitchTenantHint' | abpLocalization }}</p>\n </div>\n </div>\n\n <div class=\"modal-footer\">\n <button type=\"button\" class=\"btn btn-secondary\" data-dismiss=\"modal\" (click)=\"modal.close()\">\n {{ 'AbpTenantManagement::Cancel' | abpLocalization }}\n </button>\n <button type=\"submit\" class=\"btn btn-primary\">\n <i class=\"fa fa-check mr-1\"></i> <span>{{ 'AbpTenantManagement::Save' | abpLocalization }}</span>\n </button>\n </div>\n </form>\n</ng-template>\n" |
|||
}] } |
|||
]; |
|||
/** @nocollapse */ |
|||
TenantBoxComponent.ctorParameters = function () { return [ |
|||
{ type: ngBootstrap.NgbModal }, |
|||
{ type: forms.FormBuilder } |
|||
]; }; |
|||
TenantBoxComponent.propDecorators = { |
|||
modalContent: [{ type: core.ViewChild, args: ['modalContent', { static: false },] }] |
|||
}; |
|||
return TenantBoxComponent; |
|||
}()); |
|||
|
|||
/** |
|||
* @fileoverview added by tsickle |
|||
* @suppress {checkTypes,extraRequire,missingOverride,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc |
|||
*/ |
|||
/** |
|||
* @param {?} options |
|||
* @return {?} |
|||
*/ |
|||
function optionsFactory(options) { |
|||
return __assign({ redirectUrl: '/' }, options); |
|||
} |
|||
/** @type {?} */ |
|||
var ACCOUNT_OPTIONS = new core.InjectionToken('ACCOUNT_OPTIONS'); |
|||
|
|||
/** |
|||
* @fileoverview added by tsickle |
|||
* @suppress {checkTypes,extraRequire,missingOverride,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc |
|||
*/ |
|||
var AccountModule = /** @class */ (function () { |
|||
function AccountModule() { |
|||
} |
|||
/** |
|||
* @param {?=} options |
|||
* @return {?} |
|||
*/ |
|||
AccountModule.forRoot = /** |
|||
* @param {?=} options |
|||
* @return {?} |
|||
*/ |
|||
function (options) { |
|||
if (options === void 0) { options = (/** @type {?} */ ({})); } |
|||
return { |
|||
ngModule: AccountModule, |
|||
providers: [ |
|||
{ provide: ACCOUNT_OPTIONS, useValue: options }, |
|||
{ |
|||
provide: 'ACCOUNT_OPTIONS', |
|||
useFactory: optionsFactory, |
|||
deps: [ACCOUNT_OPTIONS], |
|||
}, |
|||
], |
|||
}; |
|||
}; |
|||
AccountModule.decorators = [ |
|||
{ type: core.NgModule, args: [{ |
|||
declarations: [LoginComponent, RegisterComponent, TenantBoxComponent], |
|||
imports: [ng_core.CoreModule, AccountRoutingModule, ng_theme_shared.ThemeSharedModule, table.TableModule, ngBootstrap.NgbDropdownModule, core$1.NgxValidateCoreModule], |
|||
exports: [], |
|||
},] } |
|||
]; |
|||
return AccountModule; |
|||
}()); |
|||
|
|||
/** |
|||
* @fileoverview added by tsickle |
|||
* @suppress {checkTypes,extraRequire,missingOverride,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc |
|||
*/ |
|||
/** @type {?} */ |
|||
var ACCOUNT_ROUTES = (/** @type {?} */ ([ |
|||
{ |
|||
name: 'Account', |
|||
path: 'account', |
|||
invisible: true, |
|||
layout: "application" /* application */, |
|||
children: [{ path: 'login', name: 'Login', order: 1 }, { path: 'register', name: 'Register', order: 2 }], |
|||
}, |
|||
])); |
|||
|
|||
exports.ACCOUNT_OPTIONS = ACCOUNT_OPTIONS; |
|||
exports.ACCOUNT_ROUTES = ACCOUNT_ROUTES; |
|||
exports.AccountModule = AccountModule; |
|||
exports.LoginComponent = LoginComponent; |
|||
exports.RegisterComponent = RegisterComponent; |
|||
exports.optionsFactory = optionsFactory; |
|||
exports.ɵa = LoginComponent; |
|||
exports.ɵc = RegisterComponent; |
|||
exports.ɵd = TenantBoxComponent; |
|||
exports.ɵe = AccountRoutingModule; |
|||
exports.ɵf = optionsFactory; |
|||
exports.ɵg = ACCOUNT_OPTIONS; |
|||
|
|||
Object.defineProperty(exports, '__esModule', { value: true }); |
|||
|
|||
})); |
|||
//# sourceMappingURL=abp-ng.account.umd.js.map
|
|||
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
@ -0,0 +1,14 @@ |
|||
/** |
|||
* @fileoverview added by tsickle |
|||
* @suppress {checkTypes,extraRequire,missingOverride,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc |
|||
*/ |
|||
/** |
|||
* Generated bundle index. Do not edit. |
|||
*/ |
|||
export { AccountModule, LoginComponent, RegisterComponent, ACCOUNT_ROUTES, optionsFactory, ACCOUNT_OPTIONS } from './public-api'; |
|||
export { AccountRoutingModule as ɵe } from './lib/account-routing.module'; |
|||
export { LoginComponent as ɵa } from './lib/components/login/login.component'; |
|||
export { RegisterComponent as ɵc } from './lib/components/register/register.component'; |
|||
export { TenantBoxComponent as ɵd } from './lib/components/tenant-box/tenant-box.component'; |
|||
export { ACCOUNT_OPTIONS as ɵg, optionsFactory as ɵf } from './lib/tokens/options.token'; |
|||
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYWJwLW5nLmFjY291bnQuanMiLCJzb3VyY2VSb290Ijoibmc6Ly9AYWJwL25nLmFjY291bnQvIiwic291cmNlcyI6WyJhYnAtbmcuYWNjb3VudC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7Ozs7O0FBSUEsa0hBQWMsY0FBYyxDQUFDO0FBRTdCLE9BQU8sRUFBQyxvQkFBb0IsSUFBSSxFQUFFLEVBQUMsTUFBTSw4QkFBOEIsQ0FBQztBQUN4RSxPQUFPLEVBQUMsY0FBYyxJQUFJLEVBQUUsRUFBQyxNQUFNLHdDQUF3QyxDQUFDO0FBQzVFLE9BQU8sRUFBQyxpQkFBaUIsSUFBSSxFQUFFLEVBQUMsTUFBTSw4Q0FBOEMsQ0FBQztBQUNyRixPQUFPLEVBQUMsa0JBQWtCLElBQUksRUFBRSxFQUFDLE1BQU0sa0RBQWtELENBQUM7QUFFMUYsT0FBTyxFQUFDLGVBQWUsSUFBSSxFQUFFLEVBQUMsY0FBYyxJQUFJLEVBQUUsRUFBQyxNQUFNLDRCQUE0QixDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiLyoqXG4gKiBHZW5lcmF0ZWQgYnVuZGxlIGluZGV4LiBEbyBub3QgZWRpdC5cbiAqL1xuXG5leHBvcnQgKiBmcm9tICcuL3B1YmxpYy1hcGknO1xuXG5leHBvcnQge0FjY291bnRSb3V0aW5nTW9kdWxlIGFzIMm1ZX0gZnJvbSAnLi9saWIvYWNjb3VudC1yb3V0aW5nLm1vZHVsZSc7XG5leHBvcnQge0xvZ2luQ29tcG9uZW50IGFzIMm1YX0gZnJvbSAnLi9saWIvY29tcG9uZW50cy9sb2dpbi9sb2dpbi5jb21wb25lbnQnO1xuZXhwb3J0IHtSZWdpc3RlckNvbXBvbmVudCBhcyDJtWN9IGZyb20gJy4vbGliL2NvbXBvbmVudHMvcmVnaXN0ZXIvcmVnaXN0ZXIuY29tcG9uZW50JztcbmV4cG9ydCB7VGVuYW50Qm94Q29tcG9uZW50IGFzIMm1ZH0gZnJvbSAnLi9saWIvY29tcG9uZW50cy90ZW5hbnQtYm94L3RlbmFudC1ib3guY29tcG9uZW50JztcbmV4cG9ydCB7T3B0aW9ucyBhcyDJtWJ9IGZyb20gJy4vbGliL21vZGVscy9vcHRpb25zJztcbmV4cG9ydCB7QUNDT1VOVF9PUFRJT05TIGFzIMm1ZyxvcHRpb25zRmFjdG9yeSBhcyDJtWZ9IGZyb20gJy4vbGliL3Rva2Vucy9vcHRpb25zLnRva2VuJzsiXX0=
|
|||
@ -0,0 +1,27 @@ |
|||
/** |
|||
* @fileoverview added by tsickle |
|||
* @suppress {checkTypes,extraRequire,missingOverride,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc |
|||
*/ |
|||
import { NgModule } from '@angular/core'; |
|||
import { RouterModule } from '@angular/router'; |
|||
import { LoginComponent } from './components/login/login.component'; |
|||
import { RegisterComponent } from './components/register/register.component'; |
|||
import { DynamicLayoutComponent } from '@abp/ng.core'; |
|||
/** @type {?} */ |
|||
const routes = [ |
|||
{ path: '', pathMatch: 'full', redirectTo: 'login' }, |
|||
{ |
|||
path: '', |
|||
component: DynamicLayoutComponent, |
|||
children: [{ path: 'login', component: LoginComponent }, { path: 'register', component: RegisterComponent }], |
|||
}, |
|||
]; |
|||
export class AccountRoutingModule { |
|||
} |
|||
AccountRoutingModule.decorators = [ |
|||
{ type: NgModule, args: [{ |
|||
imports: [RouterModule.forChild(routes)], |
|||
exports: [RouterModule], |
|||
},] } |
|||
]; |
|||
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYWNjb3VudC1yb3V0aW5nLm1vZHVsZS5qcyIsInNvdXJjZVJvb3QiOiJuZzovL0BhYnAvbmcuYWNjb3VudC8iLCJzb3VyY2VzIjpbImxpYi9hY2NvdW50LXJvdXRpbmcubW9kdWxlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7QUFBQSxPQUFPLEVBQUUsUUFBUSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQ3pDLE9BQU8sRUFBVSxZQUFZLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQztBQUN2RCxPQUFPLEVBQUUsY0FBYyxFQUFFLE1BQU0sb0NBQW9DLENBQUM7QUFDcEUsT0FBTyxFQUFFLGlCQUFpQixFQUFFLE1BQU0sMENBQTBDLENBQUM7QUFDN0UsT0FBTyxFQUFFLHNCQUFzQixFQUFFLE1BQU0sY0FBYyxDQUFDOztNQUVoRCxNQUFNLEdBQVc7SUFDckIsRUFBRSxJQUFJLEVBQUUsRUFBRSxFQUFFLFNBQVMsRUFBRSxNQUFNLEVBQUUsVUFBVSxFQUFFLE9BQU8sRUFBRTtJQUNwRDtRQUNFLElBQUksRUFBRSxFQUFFO1FBQ1IsU0FBUyxFQUFFLHNCQUFzQjtRQUNqQyxRQUFRLEVBQUUsQ0FBQyxFQUFFLElBQUksRUFBRSxPQUFPLEVBQUUsU0FBUyxFQUFFLGNBQWMsRUFBRSxFQUFFLEVBQUUsSUFBSSxFQUFFLFVBQVUsRUFBRSxTQUFTLEVBQUUsaUJBQWlCLEVBQUUsQ0FBQztLQUM3RztDQUNGO0FBTUQsTUFBTSxPQUFPLG9CQUFvQjs7O1lBSmhDLFFBQVEsU0FBQztnQkFDUixPQUFPLEVBQUUsQ0FBQyxZQUFZLENBQUMsUUFBUSxDQUFDLE1BQU0sQ0FBQyxDQUFDO2dCQUN4QyxPQUFPLEVBQUUsQ0FBQyxZQUFZLENBQUM7YUFDeEIiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBOZ01vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgUm91dGVzLCBSb3V0ZXJNb2R1bGUgfSBmcm9tICdAYW5ndWxhci9yb3V0ZXInO1xuaW1wb3J0IHsgTG9naW5Db21wb25lbnQgfSBmcm9tICcuL2NvbXBvbmVudHMvbG9naW4vbG9naW4uY29tcG9uZW50JztcbmltcG9ydCB7IFJlZ2lzdGVyQ29tcG9uZW50IH0gZnJvbSAnLi9jb21wb25lbnRzL3JlZ2lzdGVyL3JlZ2lzdGVyLmNvbXBvbmVudCc7XG5pbXBvcnQgeyBEeW5hbWljTGF5b3V0Q29tcG9uZW50IH0gZnJvbSAnQGFicC9uZy5jb3JlJztcblxuY29uc3Qgcm91dGVzOiBSb3V0ZXMgPSBbXG4gIHsgcGF0aDogJycsIHBhdGhNYXRjaDogJ2Z1bGwnLCByZWRpcmVjdFRvOiAnbG9naW4nIH0sXG4gIHtcbiAgICBwYXRoOiAnJyxcbiAgICBjb21wb25lbnQ6IER5bmFtaWNMYXlvdXRDb21wb25lbnQsXG4gICAgY2hpbGRyZW46IFt7IHBhdGg6ICdsb2dpbicsIGNvbXBvbmVudDogTG9naW5Db21wb25lbnQgfSwgeyBwYXRoOiAncmVnaXN0ZXInLCBjb21wb25lbnQ6IFJlZ2lzdGVyQ29tcG9uZW50IH1dLFxuICB9LFxuXTtcblxuQE5nTW9kdWxlKHtcbiAgaW1wb3J0czogW1JvdXRlck1vZHVsZS5mb3JDaGlsZChyb3V0ZXMpXSxcbiAgZXhwb3J0czogW1JvdXRlck1vZHVsZV0sXG59KVxuZXhwb3J0IGNsYXNzIEFjY291bnRSb3V0aW5nTW9kdWxlIHt9XG4iXX0=
|
|||
@ -0,0 +1,42 @@ |
|||
/** |
|||
* @fileoverview added by tsickle |
|||
* @suppress {checkTypes,extraRequire,missingOverride,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc |
|||
*/ |
|||
import { CoreModule } from '@abp/ng.core'; |
|||
import { NgModule } from '@angular/core'; |
|||
import { AccountRoutingModule } from './account-routing.module'; |
|||
import { LoginComponent } from './components/login/login.component'; |
|||
import { RegisterComponent } from './components/register/register.component'; |
|||
import { ThemeSharedModule } from '@abp/ng.theme.shared'; |
|||
import { TenantBoxComponent } from './components/tenant-box/tenant-box.component'; |
|||
import { ACCOUNT_OPTIONS, optionsFactory } from './tokens/options.token'; |
|||
import { TableModule } from 'primeng/table'; |
|||
import { NgbDropdownModule } from '@ng-bootstrap/ng-bootstrap'; |
|||
import { NgxValidateCoreModule } from '@ngx-validate/core'; |
|||
export class AccountModule { |
|||
/** |
|||
* @param {?=} options |
|||
* @return {?} |
|||
*/ |
|||
static forRoot(options = (/** @type {?} */ ({}))) { |
|||
return { |
|||
ngModule: AccountModule, |
|||
providers: [ |
|||
{ provide: ACCOUNT_OPTIONS, useValue: options }, |
|||
{ |
|||
provide: 'ACCOUNT_OPTIONS', |
|||
useFactory: optionsFactory, |
|||
deps: [ACCOUNT_OPTIONS], |
|||
}, |
|||
], |
|||
}; |
|||
} |
|||
} |
|||
AccountModule.decorators = [ |
|||
{ type: NgModule, args: [{ |
|||
declarations: [LoginComponent, RegisterComponent, TenantBoxComponent], |
|||
imports: [CoreModule, AccountRoutingModule, ThemeSharedModule, TableModule, NgbDropdownModule, NgxValidateCoreModule], |
|||
exports: [], |
|||
},] } |
|||
]; |
|||
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYWNjb3VudC5tb2R1bGUuanMiLCJzb3VyY2VSb290Ijoibmc6Ly9AYWJwL25nLmFjY291bnQvIiwic291cmNlcyI6WyJsaWIvYWNjb3VudC5tb2R1bGUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7OztBQUFBLE9BQU8sRUFBRSxVQUFVLEVBQUUsTUFBTSxjQUFjLENBQUM7QUFDMUMsT0FBTyxFQUFFLFFBQVEsRUFBdUIsTUFBTSxlQUFlLENBQUM7QUFDOUQsT0FBTyxFQUFFLG9CQUFvQixFQUFFLE1BQU0sMEJBQTBCLENBQUM7QUFDaEUsT0FBTyxFQUFFLGNBQWMsRUFBRSxNQUFNLG9DQUFvQyxDQUFDO0FBQ3BFLE9BQU8sRUFBRSxpQkFBaUIsRUFBRSxNQUFNLDBDQUEwQyxDQUFDO0FBQzdFLE9BQU8sRUFBRSxpQkFBaUIsRUFBRSxNQUFNLHNCQUFzQixDQUFDO0FBQ3pELE9BQU8sRUFBRSxrQkFBa0IsRUFBRSxNQUFNLDhDQUE4QyxDQUFDO0FBRWxGLE9BQU8sRUFBRSxlQUFlLEVBQUUsY0FBYyxFQUFFLE1BQU0sd0JBQXdCLENBQUM7QUFDekUsT0FBTyxFQUFFLFdBQVcsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUM1QyxPQUFPLEVBQUUsaUJBQWlCLEVBQUUsTUFBTSw0QkFBNEIsQ0FBQztBQUMvRCxPQUFPLEVBQUUscUJBQXFCLEVBQUUsTUFBTSxvQkFBb0IsQ0FBQztBQU8zRCxNQUFNLE9BQU8sYUFBYTs7Ozs7SUFDeEIsTUFBTSxDQUFDLE9BQU8sQ0FBQyxPQUFPLEdBQUcsbUJBQUEsRUFBRSxFQUFXO1FBQ3BDLE9BQU87WUFDTCxRQUFRLEVBQUUsYUFBYTtZQUN2QixTQUFTLEVBQUU7Z0JBQ1QsRUFBRSxPQUFPLEVBQUUsZUFBZSxFQUFFLFFBQVEsRUFBRSxPQUFPLEVBQUU7Z0JBQy9DO29CQUNFLE9BQU8sRUFBRSxpQkFBaUI7b0JBQzFCLFVBQVUsRUFBRSxjQUFjO29CQUMxQixJQUFJLEVBQUUsQ0FBQyxlQUFlLENBQUM7aUJBQ3hCO2FBQ0Y7U0FDRixDQUFDO0lBQ0osQ0FBQzs7O1lBbEJGLFFBQVEsU0FBQztnQkFDUixZQUFZLEVBQUUsQ0FBQyxjQUFjLEVBQUUsaUJBQWlCLEVBQUUsa0JBQWtCLENBQUM7Z0JBQ3JFLE9BQU8sRUFBRSxDQUFDLFVBQVUsRUFBRSxvQkFBb0IsRUFBRSxpQkFBaUIsRUFBRSxXQUFXLEVBQUUsaUJBQWlCLEVBQUUscUJBQXFCLENBQUM7Z0JBQ3JILE9BQU8sRUFBRSxFQUFFO2FBQ1oiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDb3JlTW9kdWxlIH0gZnJvbSAnQGFicC9uZy5jb3JlJztcbmltcG9ydCB7IE5nTW9kdWxlLCBNb2R1bGVXaXRoUHJvdmlkZXJzIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBBY2NvdW50Um91dGluZ01vZHVsZSB9IGZyb20gJy4vYWNjb3VudC1yb3V0aW5nLm1vZHVsZSc7XG5pbXBvcnQgeyBMb2dpbkNvbXBvbmVudCB9IGZyb20gJy4vY29tcG9uZW50cy9sb2dpbi9sb2dpbi5jb21wb25lbnQnO1xuaW1wb3J0IHsgUmVnaXN0ZXJDb21wb25lbnQgfSBmcm9tICcuL2NvbXBvbmVudHMvcmVnaXN0ZXIvcmVnaXN0ZXIuY29tcG9uZW50JztcbmltcG9ydCB7IFRoZW1lU2hhcmVkTW9kdWxlIH0gZnJvbSAnQGFicC9uZy50aGVtZS5zaGFyZWQnO1xuaW1wb3J0IHsgVGVuYW50Qm94Q29tcG9uZW50IH0gZnJvbSAnLi9jb21wb25lbnRzL3RlbmFudC1ib3gvdGVuYW50LWJveC5jb21wb25lbnQnO1xuaW1wb3J0IHsgT3B0aW9ucyB9IGZyb20gJy4vbW9kZWxzL29wdGlvbnMnO1xuaW1wb3J0IHsgQUNDT1VOVF9PUFRJT05TLCBvcHRpb25zRmFjdG9yeSB9IGZyb20gJy4vdG9rZW5zL29wdGlvbnMudG9rZW4nO1xuaW1wb3J0IHsgVGFibGVNb2R1bGUgfSBmcm9tICdwcmltZW5nL3RhYmxlJztcbmltcG9ydCB7IE5nYkRyb3Bkb3duTW9kdWxlIH0gZnJvbSAnQG5nLWJvb3RzdHJhcC9uZy1ib290c3RyYXAnO1xuaW1wb3J0IHsgTmd4VmFsaWRhdGVDb3JlTW9kdWxlIH0gZnJvbSAnQG5neC12YWxpZGF0ZS9jb3JlJztcblxuQE5nTW9kdWxlKHtcbiAgZGVjbGFyYXRpb25zOiBbTG9naW5Db21wb25lbnQsIFJlZ2lzdGVyQ29tcG9uZW50LCBUZW5hbnRCb3hDb21wb25lbnRdLFxuICBpbXBvcnRzOiBbQ29yZU1vZHVsZSwgQWNjb3VudFJvdXRpbmdNb2R1bGUsIFRoZW1lU2hhcmVkTW9kdWxlLCBUYWJsZU1vZHVsZSwgTmdiRHJvcGRvd25Nb2R1bGUsIE5neFZhbGlkYXRlQ29yZU1vZHVsZV0sXG4gIGV4cG9ydHM6IFtdLFxufSlcbmV4cG9ydCBjbGFzcyBBY2NvdW50TW9kdWxlIHtcbiAgc3RhdGljIGZvclJvb3Qob3B0aW9ucyA9IHt9IGFzIE9wdGlvbnMpOiBNb2R1bGVXaXRoUHJvdmlkZXJzIHtcbiAgICByZXR1cm4ge1xuICAgICAgbmdNb2R1bGU6IEFjY291bnRNb2R1bGUsXG4gICAgICBwcm92aWRlcnM6IFtcbiAgICAgICAgeyBwcm92aWRlOiBBQ0NPVU5UX09QVElPTlMsIHVzZVZhbHVlOiBvcHRpb25zIH0sXG4gICAgICAgIHtcbiAgICAgICAgICBwcm92aWRlOiAnQUNDT1VOVF9PUFRJT05TJyxcbiAgICAgICAgICB1c2VGYWN0b3J5OiBvcHRpb25zRmFjdG9yeSxcbiAgICAgICAgICBkZXBzOiBbQUNDT1VOVF9PUFRJT05TXSxcbiAgICAgICAgfSxcbiAgICAgIF0sXG4gICAgfTtcbiAgfVxufVxuIl19
|
|||
@ -0,0 +1,7 @@ |
|||
/** |
|||
* @fileoverview added by tsickle |
|||
* @suppress {checkTypes,extraRequire,missingOverride,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc |
|||
*/ |
|||
export { LoginComponent } from './login/login.component'; |
|||
export { RegisterComponent } from './register/register.component'; |
|||
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290Ijoibmc6Ly9AYWJwL25nLmFjY291bnQvIiwic291cmNlcyI6WyJsaWIvY29tcG9uZW50cy9pbmRleC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7O0FBQUEsK0JBQWMseUJBQXlCLENBQUM7QUFDeEMsa0NBQWMsK0JBQStCLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJleHBvcnQgKiBmcm9tICcuL2xvZ2luL2xvZ2luLmNvbXBvbmVudCc7XG5leHBvcnQgKiBmcm9tICcuL3JlZ2lzdGVyL3JlZ2lzdGVyLmNvbXBvbmVudCc7XG4iXX0=
|
|||
File diff suppressed because one or more lines are too long
@ -0,0 +1,69 @@ |
|||
/** |
|||
* @fileoverview added by tsickle |
|||
* @suppress {checkTypes,extraRequire,missingOverride,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc |
|||
*/ |
|||
import { Component } from '@angular/core'; |
|||
import { FormBuilder, Validators } from '@angular/forms'; |
|||
import { Router } from '@angular/router'; |
|||
import { validatePassword } from '@ngx-validate/core'; |
|||
import { OAuthService } from 'angular-oauth2-oidc'; |
|||
const { maxLength, minLength, required, email } = Validators; |
|||
export class RegisterComponent { |
|||
/** |
|||
* @param {?} fb |
|||
* @param {?} oauthService |
|||
* @param {?} router |
|||
*/ |
|||
constructor(fb, oauthService, router) { |
|||
this.fb = fb; |
|||
this.oauthService = oauthService; |
|||
this.router = router; |
|||
this.form = this.fb.group({ |
|||
username: ['', [required, maxLength(255)]], |
|||
password: [ |
|||
'', |
|||
[required, maxLength(32), minLength(6), validatePassword(['small', 'capital', 'number', 'special'])], |
|||
], |
|||
email: ['', [required, email]], |
|||
}); |
|||
} |
|||
/** |
|||
* @return {?} |
|||
*/ |
|||
onSubmit() { |
|||
if (this.form.invalid) |
|||
return; |
|||
} |
|||
} |
|||
RegisterComponent.decorators = [ |
|||
{ type: Component, args: [{ |
|||
selector: 'abp-register', |
|||
template: "<div class=\"row\">\n <div class=\"col col-md-4 offset-md-4\">\n <abp-tenant-box></abp-tenant-box>\n\n <div class=\"abp-account-container\">\n <h2>Register</h2>\n <form [formGroup]=\"form\" (ngSubmit)=\"onSubmit()\" novalidate>\n <div class=\"form-group\">\n <label for=\"input-user-name\">User name</label><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\">Email address</label><span> * </span\n ><input type=\"email\" id=\"input-email-address\" class=\"form-control\" formControlName=\"email\" />\n </div>\n <div class=\"form-group\">\n <label for=\"input-password\">Password</label><span> * </span\n ><input type=\"password\" id=\"input-password\" class=\"form-control\" formControlName=\"password\" />\n </div>\n <button type=\"submit\" class=\"btn btn-primary\">Register</button>\n </form>\n </div>\n </div>\n</div>\n" |
|||
}] } |
|||
]; |
|||
/** @nocollapse */ |
|||
RegisterComponent.ctorParameters = () => [ |
|||
{ type: FormBuilder }, |
|||
{ type: OAuthService }, |
|||
{ type: Router } |
|||
]; |
|||
if (false) { |
|||
/** @type {?} */ |
|||
RegisterComponent.prototype.form; |
|||
/** |
|||
* @type {?} |
|||
* @private |
|||
*/ |
|||
RegisterComponent.prototype.fb; |
|||
/** |
|||
* @type {?} |
|||
* @private |
|||
*/ |
|||
RegisterComponent.prototype.oauthService; |
|||
/** |
|||
* @type {?} |
|||
* @private |
|||
*/ |
|||
RegisterComponent.prototype.router; |
|||
} |
|||
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicmVnaXN0ZXIuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6Im5nOi8vQGFicC9uZy5hY2NvdW50LyIsInNvdXJjZXMiOlsibGliL2NvbXBvbmVudHMvcmVnaXN0ZXIvcmVnaXN0ZXIuY29tcG9uZW50LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7QUFBQSxPQUFPLEVBQUUsU0FBUyxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQzFDLE9BQU8sRUFBRSxXQUFXLEVBQWEsVUFBVSxFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFDcEUsT0FBTyxFQUFFLE1BQU0sRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBQ3pDLE9BQU8sRUFBRSxnQkFBZ0IsRUFBRSxNQUFNLG9CQUFvQixDQUFDO0FBQ3RELE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSxxQkFBcUIsQ0FBQztNQUU3QyxFQUFFLFNBQVMsRUFBRSxTQUFTLEVBQUUsUUFBUSxFQUFFLEtBQUssRUFBRSxHQUFHLFVBQVU7QUFNNUQsTUFBTSxPQUFPLGlCQUFpQjs7Ozs7O0lBRzVCLFlBQW9CLEVBQWUsRUFBVSxZQUEwQixFQUFVLE1BQWM7UUFBM0UsT0FBRSxHQUFGLEVBQUUsQ0FBYTtRQUFVLGlCQUFZLEdBQVosWUFBWSxDQUFjO1FBQVUsV0FBTSxHQUFOLE1BQU0sQ0FBUTtRQUM3RixJQUFJLENBQUMsSUFBSSxHQUFHLElBQUksQ0FBQyxFQUFFLENBQUMsS0FBSyxDQUFDO1lBQ3hCLFFBQVEsRUFBRSxDQUFDLEVBQUUsRUFBRSxDQUFDLFFBQVEsRUFBRSxTQUFTLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQztZQUMxQyxRQUFRLEVBQUU7Z0JBQ1IsRUFBRTtnQkFDRixDQUFDLFFBQVEsRUFBRSxTQUFTLENBQUMsRUFBRSxDQUFDLEVBQUUsU0FBUyxDQUFDLENBQUMsQ0FBQyxFQUFFLGdCQUFnQixDQUFDLENBQUMsT0FBTyxFQUFFLFNBQVMsRUFBRSxRQUFRLEVBQUUsU0FBUyxDQUFDLENBQUMsQ0FBQzthQUNyRztZQUNELEtBQUssRUFBRSxDQUFDLEVBQUUsRUFBRSxDQUFDLFFBQVEsRUFBRSxLQUFLLENBQUMsQ0FBQztTQUMvQixDQUFDLENBQUM7SUFDTCxDQUFDOzs7O0lBRUQsUUFBUTtRQUNOLElBQUksSUFBSSxDQUFDLElBQUksQ0FBQyxPQUFPO1lBQUUsT0FBTztJQUNoQyxDQUFDOzs7WUFwQkYsU0FBUyxTQUFDO2dCQUNULFFBQVEsRUFBRSxjQUFjO2dCQUN4QiwybENBQXdDO2FBQ3pDOzs7O1lBVlEsV0FBVztZQUdYLFlBQVk7WUFGWixNQUFNOzs7O0lBV2IsaUNBQWdCOzs7OztJQUVKLCtCQUF1Qjs7Ozs7SUFBRSx5Q0FBa0M7Ozs7O0lBQUUsbUNBQXNCIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ29tcG9uZW50IH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBGb3JtQnVpbGRlciwgRm9ybUdyb3VwLCBWYWxpZGF0b3JzIH0gZnJvbSAnQGFuZ3VsYXIvZm9ybXMnO1xuaW1wb3J0IHsgUm91dGVyIH0gZnJvbSAnQGFuZ3VsYXIvcm91dGVyJztcbmltcG9ydCB7IHZhbGlkYXRlUGFzc3dvcmQgfSBmcm9tICdAbmd4LXZhbGlkYXRlL2NvcmUnO1xuaW1wb3J0IHsgT0F1dGhTZXJ2aWNlIH0gZnJvbSAnYW5ndWxhci1vYXV0aDItb2lkYyc7XG5cbmNvbnN0IHsgbWF4TGVuZ3RoLCBtaW5MZW5ndGgsIHJlcXVpcmVkLCBlbWFpbCB9ID0gVmFsaWRhdG9ycztcblxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAnYWJwLXJlZ2lzdGVyJyxcbiAgdGVtcGxhdGVVcmw6ICcuL3JlZ2lzdGVyLmNvbXBvbmVudC5odG1sJyxcbn0pXG5leHBvcnQgY2xhc3MgUmVnaXN0ZXJDb21wb25lbnQge1xuICBmb3JtOiBGb3JtR3JvdXA7XG5cbiAgY29uc3RydWN0b3IocHJpdmF0ZSBmYjogRm9ybUJ1aWxkZXIsIHByaXZhdGUgb2F1dGhTZXJ2aWNlOiBPQXV0aFNlcnZpY2UsIHByaXZhdGUgcm91dGVyOiBSb3V0ZXIpIHtcbiAgICB0aGlzLmZvcm0gPSB0aGlzLmZiLmdyb3VwKHtcbiAgICAgIHVzZXJuYW1lOiBbJycsIFtyZXF1aXJlZCwgbWF4TGVuZ3RoKDI1NSldXSxcbiAgICAgIHBhc3N3b3JkOiBbXG4gICAgICAgICcnLFxuICAgICAgICBbcmVxdWlyZWQsIG1heExlbmd0aCgzMiksIG1pbkxlbmd0aCg2KSwgdmFsaWRhdGVQYXNzd29yZChbJ3NtYWxsJywgJ2NhcGl0YWwnLCAnbnVtYmVyJywgJ3NwZWNpYWwnXSldLFxuICAgICAgXSxcbiAgICAgIGVtYWlsOiBbJycsIFtyZXF1aXJlZCwgZW1haWxdXSxcbiAgICB9KTtcbiAgfVxuXG4gIG9uU3VibWl0KCkge1xuICAgIGlmICh0aGlzLmZvcm0uaW52YWxpZCkgcmV0dXJuO1xuICB9XG59XG4iXX0=
|
|||
@ -0,0 +1,79 @@ |
|||
/** |
|||
* @fileoverview added by tsickle |
|||
* @suppress {checkTypes,extraRequire,missingOverride,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc |
|||
*/ |
|||
import { Component, TemplateRef, ViewChild } from '@angular/core'; |
|||
import { FormBuilder } from '@angular/forms'; |
|||
import { NgbModal } from '@ng-bootstrap/ng-bootstrap'; |
|||
export class TenantBoxComponent { |
|||
/** |
|||
* @param {?} modalService |
|||
* @param {?} fb |
|||
*/ |
|||
constructor(modalService, fb) { |
|||
this.modalService = modalService; |
|||
this.fb = fb; |
|||
} |
|||
/** |
|||
* @return {?} |
|||
*/ |
|||
createForm() { |
|||
this.form = this.fb.group({ |
|||
name: [this.selected.name], |
|||
}); |
|||
} |
|||
/** |
|||
* @return {?} |
|||
*/ |
|||
openModal() { |
|||
this.createForm(); |
|||
this.modalService.open(this.modalContent); |
|||
} |
|||
/** |
|||
* @return {?} |
|||
*/ |
|||
onSwitch() { |
|||
this.selected = (/** @type {?} */ ({})); |
|||
this.openModal(); |
|||
} |
|||
/** |
|||
* @return {?} |
|||
*/ |
|||
save() { |
|||
this.selected = this.form.value; |
|||
this.modalService.dismissAll(); |
|||
} |
|||
} |
|||
TenantBoxComponent.decorators = [ |
|||
{ type: Component, args: [{ |
|||
selector: 'abp-tenant-box', |
|||
template: "<div\n class=\"tenant-switch-box\"\n style=\"background-color: #eee; margin-bottom: 20px; color: #000; padding: 10px; text-align: center;\"\n>\n <span style=\"color: #666;\">{{ 'AbpUiMultiTenancy::Tenant' | abpLocalization }}: </span>\n <strong>\n <i>{{ selected?.name ? selected.name : ('AbpUiMultiTenancy::NotSelected' | abpLocalization) }}</i>\n </strong>\n (<a id=\"abp-tenant-switch-link\" style=\"color: #333; cursor: pointer\" (click)=\"onSwitch()\">{{\n 'AbpUiMultiTenancy::Switch' | abpLocalization\n }}</a\n >)\n</div>\n\n<ng-template #modalContent let-modal>\n <div class=\"modal-header\">\n <h5 class=\"modal-title\" id=\"modal-basic-title\">\n SwitchTenant\n </h5>\n <button type=\"button\" class=\"close\" aria-label=\"Close\" (click)=\"modal.dismiss()\">\n <span aria-hidden=\"true\">×</span>\n </button>\n </div>\n <form [formGroup]=\"form\" (ngSubmit)=\"save()\">\n <div class=\"modal-body\">\n <div class=\"mt-2\">\n <div class=\"form-group\">\n <label for=\"name\">{{ 'AbpUiMultiTenancy::Name' | abpLocalization }}</label>\n <input type=\"text\" id=\"name\" class=\"form-control\" formControlName=\"name\" />\n </div>\n <p>{{ 'AbpUiMultiTenancy::SwitchTenantHint' | abpLocalization }}</p>\n </div>\n </div>\n\n <div class=\"modal-footer\">\n <button type=\"button\" class=\"btn btn-secondary\" data-dismiss=\"modal\" (click)=\"modal.close()\">\n {{ 'AbpTenantManagement::Cancel' | abpLocalization }}\n </button>\n <button type=\"submit\" class=\"btn btn-primary\">\n <i class=\"fa fa-check mr-1\"></i> <span>{{ 'AbpTenantManagement::Save' | abpLocalization }}</span>\n </button>\n </div>\n </form>\n</ng-template>\n" |
|||
}] } |
|||
]; |
|||
/** @nocollapse */ |
|||
TenantBoxComponent.ctorParameters = () => [ |
|||
{ type: NgbModal }, |
|||
{ type: FormBuilder } |
|||
]; |
|||
TenantBoxComponent.propDecorators = { |
|||
modalContent: [{ type: ViewChild, args: ['modalContent', { static: false },] }] |
|||
}; |
|||
if (false) { |
|||
/** @type {?} */ |
|||
TenantBoxComponent.prototype.form; |
|||
/** @type {?} */ |
|||
TenantBoxComponent.prototype.selected; |
|||
/** @type {?} */ |
|||
TenantBoxComponent.prototype.modalContent; |
|||
/** |
|||
* @type {?} |
|||
* @private |
|||
*/ |
|||
TenantBoxComponent.prototype.modalService; |
|||
/** |
|||
* @type {?} |
|||
* @private |
|||
*/ |
|||
TenantBoxComponent.prototype.fb; |
|||
} |
|||
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidGVuYW50LWJveC5jb21wb25lbnQuanMiLCJzb3VyY2VSb290Ijoibmc6Ly9AYWJwL25nLmFjY291bnQvIiwic291cmNlcyI6WyJsaWIvY29tcG9uZW50cy90ZW5hbnQtYm94L3RlbmFudC1ib3guY29tcG9uZW50LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7QUFBQSxPQUFPLEVBQUUsU0FBUyxFQUFFLFdBQVcsRUFBRSxTQUFTLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDbEUsT0FBTyxFQUFFLFdBQVcsRUFBYSxNQUFNLGdCQUFnQixDQUFDO0FBQ3hELE9BQU8sRUFBRSxRQUFRLEVBQUUsTUFBTSw0QkFBNEIsQ0FBQztBQU90RCxNQUFNLE9BQU8sa0JBQWtCOzs7OztJQUM3QixZQUFvQixZQUFzQixFQUFVLEVBQWU7UUFBL0MsaUJBQVksR0FBWixZQUFZLENBQVU7UUFBVSxPQUFFLEdBQUYsRUFBRSxDQUFhO0lBQUcsQ0FBQzs7OztJQVN2RSxVQUFVO1FBQ1IsSUFBSSxDQUFDLElBQUksR0FBRyxJQUFJLENBQUMsRUFBRSxDQUFDLEtBQUssQ0FBQztZQUN4QixJQUFJLEVBQUUsQ0FBQyxJQUFJLENBQUMsUUFBUSxDQUFDLElBQUksQ0FBQztTQUMzQixDQUFDLENBQUM7SUFDTCxDQUFDOzs7O0lBRUQsU0FBUztRQUNQLElBQUksQ0FBQyxVQUFVLEVBQUUsQ0FBQztRQUNsQixJQUFJLENBQUMsWUFBWSxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsWUFBWSxDQUFDLENBQUM7SUFDNUMsQ0FBQzs7OztJQUVELFFBQVE7UUFDTixJQUFJLENBQUMsUUFBUSxHQUFHLG1CQUFBLEVBQUUsRUFBaUIsQ0FBQztRQUNwQyxJQUFJLENBQUMsU0FBUyxFQUFFLENBQUM7SUFDbkIsQ0FBQzs7OztJQUVELElBQUk7UUFDRixJQUFJLENBQUMsUUFBUSxHQUFHLElBQUksQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDO1FBQ2hDLElBQUksQ0FBQyxZQUFZLENBQUMsVUFBVSxFQUFFLENBQUM7SUFDakMsQ0FBQzs7O1lBakNGLFNBQVMsU0FBQztnQkFDVCxRQUFRLEVBQUUsZ0JBQWdCO2dCQUMxQiwydkRBQTBDO2FBQzNDOzs7O1lBTlEsUUFBUTtZQURSLFdBQVc7OzsyQkFlakIsU0FBUyxTQUFDLGNBQWMsRUFBRSxFQUFFLE1BQU0sRUFBRSxLQUFLLEVBQUU7Ozs7SUFKNUMsa0NBQWdCOztJQUVoQixzQ0FBd0I7O0lBRXhCLDBDQUMrQjs7Ozs7SUFQbkIsMENBQThCOzs7OztJQUFFLGdDQUF1QiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENvbXBvbmVudCwgVGVtcGxhdGVSZWYsIFZpZXdDaGlsZCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgRm9ybUJ1aWxkZXIsIEZvcm1Hcm91cCB9IGZyb20gJ0Bhbmd1bGFyL2Zvcm1zJztcbmltcG9ydCB7IE5nYk1vZGFsIH0gZnJvbSAnQG5nLWJvb3RzdHJhcC9uZy1ib290c3RyYXAnO1xuaW1wb3J0IHsgQUJQIH0gZnJvbSAnQGFicC9uZy5jb3JlJztcblxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAnYWJwLXRlbmFudC1ib3gnLFxuICB0ZW1wbGF0ZVVybDogJy4vdGVuYW50LWJveC5jb21wb25lbnQuaHRtbCcsXG59KVxuZXhwb3J0IGNsYXNzIFRlbmFudEJveENvbXBvbmVudCB7XG4gIGNvbnN0cnVjdG9yKHByaXZhdGUgbW9kYWxTZXJ2aWNlOiBOZ2JNb2RhbCwgcHJpdmF0ZSBmYjogRm9ybUJ1aWxkZXIpIHt9XG5cbiAgZm9ybTogRm9ybUdyb3VwO1xuXG4gIHNlbGVjdGVkOiBBQlAuQmFzaWNJdGVtO1xuXG4gIEBWaWV3Q2hpbGQoJ21vZGFsQ29udGVudCcsIHsgc3RhdGljOiBmYWxzZSB9KVxuICBtb2RhbENvbnRlbnQ6IFRlbXBsYXRlUmVmPGFueT47XG5cbiAgY3JlYXRlRm9ybSgpIHtcbiAgICB0aGlzLmZvcm0gPSB0aGlzLmZiLmdyb3VwKHtcbiAgICAgIG5hbWU6IFt0aGlzLnNlbGVjdGVkLm5hbWVdLFxuICAgIH0pO1xuICB9XG5cbiAgb3Blbk1vZGFsKCkge1xuICAgIHRoaXMuY3JlYXRlRm9ybSgpO1xuICAgIHRoaXMubW9kYWxTZXJ2aWNlLm9wZW4odGhpcy5tb2RhbENvbnRlbnQpO1xuICB9XG5cbiAgb25Td2l0Y2goKSB7XG4gICAgdGhpcy5zZWxlY3RlZCA9IHt9IGFzIEFCUC5CYXNpY0l0ZW07XG4gICAgdGhpcy5vcGVuTW9kYWwoKTtcbiAgfVxuXG4gIHNhdmUoKSB7XG4gICAgdGhpcy5zZWxlY3RlZCA9IHRoaXMuZm9ybS52YWx1ZTtcbiAgICB0aGlzLm1vZGFsU2VydmljZS5kaXNtaXNzQWxsKCk7XG4gIH1cbn1cbiJdfQ==
|
|||
@ -0,0 +1,15 @@ |
|||
/** |
|||
* @fileoverview added by tsickle |
|||
* @suppress {checkTypes,extraRequire,missingOverride,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc |
|||
*/ |
|||
/** @type {?} */ |
|||
export const ACCOUNT_ROUTES = (/** @type {?} */ ([ |
|||
{ |
|||
name: 'Account', |
|||
path: 'account', |
|||
invisible: true, |
|||
layout: "application" /* application */, |
|||
children: [{ path: 'login', name: 'Login', order: 1 }, { path: 'register', name: 'Register', order: 2 }], |
|||
}, |
|||
])); |
|||
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicm91dGVzLmpzIiwic291cmNlUm9vdCI6Im5nOi8vQGFicC9uZy5hY2NvdW50LyIsInNvdXJjZXMiOlsibGliL2NvbnN0YW50cy9yb3V0ZXMudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7QUFFQSxNQUFNLE9BQU8sY0FBYyxHQUFHLG1CQUFBO0lBQzVCO1FBQ0UsSUFBSSxFQUFFLFNBQVM7UUFDZixJQUFJLEVBQUUsU0FBUztRQUNmLFNBQVMsRUFBRSxJQUFJO1FBQ2YsTUFBTSxpQ0FBeUI7UUFDL0IsUUFBUSxFQUFFLENBQUMsRUFBRSxJQUFJLEVBQUUsT0FBTyxFQUFFLElBQUksRUFBRSxPQUFPLEVBQUUsS0FBSyxFQUFFLENBQUMsRUFBRSxFQUFFLEVBQUUsSUFBSSxFQUFFLFVBQVUsRUFBRSxJQUFJLEVBQUUsVUFBVSxFQUFFLEtBQUssRUFBRSxDQUFDLEVBQUUsQ0FBQztLQUN6RztDQUNGLEVBQW1CIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQUJQLCBlTGF5b3V0VHlwZSB9IGZyb20gJ0BhYnAvbmcuY29yZSc7XG5cbmV4cG9ydCBjb25zdCBBQ0NPVU5UX1JPVVRFUyA9IFtcbiAge1xuICAgIG5hbWU6ICdBY2NvdW50JyxcbiAgICBwYXRoOiAnYWNjb3VudCcsXG4gICAgaW52aXNpYmxlOiB0cnVlLFxuICAgIGxheW91dDogZUxheW91dFR5cGUuYXBwbGljYXRpb24sXG4gICAgY2hpbGRyZW46IFt7IHBhdGg6ICdsb2dpbicsIG5hbWU6ICdMb2dpbicsIG9yZGVyOiAxIH0sIHsgcGF0aDogJ3JlZ2lzdGVyJywgbmFtZTogJ1JlZ2lzdGVyJywgb3JkZXI6IDIgfV0sXG4gIH0sXG5dIGFzIEFCUC5GdWxsUm91dGVbXTtcbiJdfQ==
|
|||
@ -0,0 +1,6 @@ |
|||
/** |
|||
* @fileoverview added by tsickle |
|||
* @suppress {checkTypes,extraRequire,missingOverride,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc |
|||
*/ |
|||
export {} from './options'; |
|||
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290Ijoibmc6Ly9AYWJwL25nLmFjY291bnQvIiwic291cmNlcyI6WyJsaWIvbW9kZWxzL2luZGV4LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7QUFBQSxlQUFjLFdBQVcsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImV4cG9ydCAqIGZyb20gJy4vb3B0aW9ucyc7XG4iXX0=
|
|||
@ -0,0 +1,6 @@ |
|||
/** |
|||
* @fileoverview added by tsickle |
|||
* @suppress {checkTypes,extraRequire,missingOverride,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc |
|||
*/ |
|||
export { optionsFactory, ACCOUNT_OPTIONS } from './options.token'; |
|||
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290Ijoibmc6Ly9AYWJwL25nLmFjY291bnQvIiwic291cmNlcyI6WyJsaWIvdG9rZW5zL2luZGV4LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7QUFBQSxnREFBYyxpQkFBaUIsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImV4cG9ydCAqIGZyb20gJy4vb3B0aW9ucy50b2tlbic7XG4iXX0=
|
|||
@ -0,0 +1,15 @@ |
|||
/** |
|||
* @fileoverview added by tsickle |
|||
* @suppress {checkTypes,extraRequire,missingOverride,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc |
|||
*/ |
|||
import { InjectionToken } from '@angular/core'; |
|||
/** |
|||
* @param {?} options |
|||
* @return {?} |
|||
*/ |
|||
export function optionsFactory(options) { |
|||
return Object.assign({ redirectUrl: '/' }, options); |
|||
} |
|||
/** @type {?} */ |
|||
export const ACCOUNT_OPTIONS = new InjectionToken('ACCOUNT_OPTIONS'); |
|||
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoib3B0aW9ucy50b2tlbi5qcyIsInNvdXJjZVJvb3QiOiJuZzovL0BhYnAvbmcuYWNjb3VudC8iLCJzb3VyY2VzIjpbImxpYi90b2tlbnMvb3B0aW9ucy50b2tlbi50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7O0FBQUEsT0FBTyxFQUFFLGNBQWMsRUFBRSxNQUFNLGVBQWUsQ0FBQzs7Ozs7QUFHL0MsTUFBTSxVQUFVLGNBQWMsQ0FBQyxPQUFnQjtJQUM3Qyx1QkFDRSxXQUFXLEVBQUUsR0FBRyxJQUNiLE9BQU8sRUFDVjtBQUNKLENBQUM7O0FBRUQsTUFBTSxPQUFPLGVBQWUsR0FBRyxJQUFJLGNBQWMsQ0FBQyxpQkFBaUIsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEluamVjdGlvblRva2VuIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBPcHRpb25zIH0gZnJvbSAnLi4vbW9kZWxzL29wdGlvbnMnO1xuXG5leHBvcnQgZnVuY3Rpb24gb3B0aW9uc0ZhY3Rvcnkob3B0aW9uczogT3B0aW9ucykge1xuICByZXR1cm4ge1xuICAgIHJlZGlyZWN0VXJsOiAnLycsXG4gICAgLi4ub3B0aW9ucyxcbiAgfTtcbn1cblxuZXhwb3J0IGNvbnN0IEFDQ09VTlRfT1BUSU9OUyA9IG5ldyBJbmplY3Rpb25Ub2tlbignQUNDT1VOVF9PUFRJT05TJyk7XG4iXX0=
|
|||
@ -0,0 +1,13 @@ |
|||
/** |
|||
* @fileoverview added by tsickle |
|||
* @suppress {checkTypes,extraRequire,missingOverride,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc |
|||
*/ |
|||
/* |
|||
* Public API Surface of auth |
|||
*/ |
|||
export { AccountModule } from './lib/account.module'; |
|||
export { LoginComponent, RegisterComponent } from './lib/components'; |
|||
export { ACCOUNT_ROUTES } from './lib/constants/routes'; |
|||
export { optionsFactory, ACCOUNT_OPTIONS } from './lib/tokens'; |
|||
export {} from './lib/models'; |
|||
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicHVibGljLWFwaS5qcyIsInNvdXJjZVJvb3QiOiJuZzovL0BhYnAvbmcuYWNjb3VudC8iLCJzb3VyY2VzIjpbInB1YmxpYy1hcGkudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7OztBQUlBLDhCQUFjLHNCQUFzQixDQUFDO0FBQ3JDLGtEQUFjLGtCQUFrQixDQUFDO0FBQ2pDLCtCQUFjLHdCQUF3QixDQUFDO0FBQ3ZDLGdEQUFjLGNBQWMsQ0FBQztBQUM3QixlQUFjLGNBQWMsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbIi8qXG4gKiBQdWJsaWMgQVBJIFN1cmZhY2Ugb2YgYXV0aFxuICovXG5cbmV4cG9ydCAqIGZyb20gJy4vbGliL2FjY291bnQubW9kdWxlJztcbmV4cG9ydCAqIGZyb20gJy4vbGliL2NvbXBvbmVudHMnO1xuZXhwb3J0ICogZnJvbSAnLi9saWIvY29uc3RhbnRzL3JvdXRlcyc7XG5leHBvcnQgKiBmcm9tICcuL2xpYi90b2tlbnMnO1xuZXhwb3J0ICogZnJvbSAnLi9saWIvbW9kZWxzJztcbiJdfQ==
|
|||
@ -0,0 +1,14 @@ |
|||
/** |
|||
* @fileoverview added by tsickle |
|||
* @suppress {checkTypes,extraRequire,missingOverride,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc |
|||
*/ |
|||
/** |
|||
* Generated bundle index. Do not edit. |
|||
*/ |
|||
export { AccountModule, LoginComponent, RegisterComponent, ACCOUNT_ROUTES, optionsFactory, ACCOUNT_OPTIONS } from './public-api'; |
|||
export { AccountRoutingModule as ɵe } from './lib/account-routing.module'; |
|||
export { LoginComponent as ɵa } from './lib/components/login/login.component'; |
|||
export { RegisterComponent as ɵc } from './lib/components/register/register.component'; |
|||
export { TenantBoxComponent as ɵd } from './lib/components/tenant-box/tenant-box.component'; |
|||
export { ACCOUNT_OPTIONS as ɵg, optionsFactory as ɵf } from './lib/tokens/options.token'; |
|||
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYWJwLW5nLmFjY291bnQuanMiLCJzb3VyY2VSb290Ijoibmc6Ly9AYWJwL25nLmFjY291bnQvIiwic291cmNlcyI6WyJhYnAtbmcuYWNjb3VudC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7Ozs7O0FBSUEsa0hBQWMsY0FBYyxDQUFDO0FBRTdCLE9BQU8sRUFBQyxvQkFBb0IsSUFBSSxFQUFFLEVBQUMsTUFBTSw4QkFBOEIsQ0FBQztBQUN4RSxPQUFPLEVBQUMsY0FBYyxJQUFJLEVBQUUsRUFBQyxNQUFNLHdDQUF3QyxDQUFDO0FBQzVFLE9BQU8sRUFBQyxpQkFBaUIsSUFBSSxFQUFFLEVBQUMsTUFBTSw4Q0FBOEMsQ0FBQztBQUNyRixPQUFPLEVBQUMsa0JBQWtCLElBQUksRUFBRSxFQUFDLE1BQU0sa0RBQWtELENBQUM7QUFFMUYsT0FBTyxFQUFDLGVBQWUsSUFBSSxFQUFFLEVBQUMsY0FBYyxJQUFJLEVBQUUsRUFBQyxNQUFNLDRCQUE0QixDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiLyoqXG4gKiBHZW5lcmF0ZWQgYnVuZGxlIGluZGV4LiBEbyBub3QgZWRpdC5cbiAqL1xuXG5leHBvcnQgKiBmcm9tICcuL3B1YmxpYy1hcGknO1xuXG5leHBvcnQge0FjY291bnRSb3V0aW5nTW9kdWxlIGFzIMm1ZX0gZnJvbSAnLi9saWIvYWNjb3VudC1yb3V0aW5nLm1vZHVsZSc7XG5leHBvcnQge0xvZ2luQ29tcG9uZW50IGFzIMm1YX0gZnJvbSAnLi9saWIvY29tcG9uZW50cy9sb2dpbi9sb2dpbi5jb21wb25lbnQnO1xuZXhwb3J0IHtSZWdpc3RlckNvbXBvbmVudCBhcyDJtWN9IGZyb20gJy4vbGliL2NvbXBvbmVudHMvcmVnaXN0ZXIvcmVnaXN0ZXIuY29tcG9uZW50JztcbmV4cG9ydCB7VGVuYW50Qm94Q29tcG9uZW50IGFzIMm1ZH0gZnJvbSAnLi9saWIvY29tcG9uZW50cy90ZW5hbnQtYm94L3RlbmFudC1ib3guY29tcG9uZW50JztcbmV4cG9ydCB7T3B0aW9ucyBhcyDJtWJ9IGZyb20gJy4vbGliL21vZGVscy9vcHRpb25zJztcbmV4cG9ydCB7QUNDT1VOVF9PUFRJT05TIGFzIMm1ZyxvcHRpb25zRmFjdG9yeSBhcyDJtWZ9IGZyb20gJy4vbGliL3Rva2Vucy9vcHRpb25zLnRva2VuJzsiXX0=
|
|||
@ -0,0 +1,31 @@ |
|||
/** |
|||
* @fileoverview added by tsickle |
|||
* @suppress {checkTypes,extraRequire,missingOverride,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc |
|||
*/ |
|||
import { NgModule } from '@angular/core'; |
|||
import { RouterModule } from '@angular/router'; |
|||
import { LoginComponent } from './components/login/login.component'; |
|||
import { RegisterComponent } from './components/register/register.component'; |
|||
import { DynamicLayoutComponent } from '@abp/ng.core'; |
|||
/** @type {?} */ |
|||
var routes = [ |
|||
{ path: '', pathMatch: 'full', redirectTo: 'login' }, |
|||
{ |
|||
path: '', |
|||
component: DynamicLayoutComponent, |
|||
children: [{ path: 'login', component: LoginComponent }, { path: 'register', component: RegisterComponent }], |
|||
}, |
|||
]; |
|||
var AccountRoutingModule = /** @class */ (function () { |
|||
function AccountRoutingModule() { |
|||
} |
|||
AccountRoutingModule.decorators = [ |
|||
{ type: NgModule, args: [{ |
|||
imports: [RouterModule.forChild(routes)], |
|||
exports: [RouterModule], |
|||
},] } |
|||
]; |
|||
return AccountRoutingModule; |
|||
}()); |
|||
export { AccountRoutingModule }; |
|||
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYWNjb3VudC1yb3V0aW5nLm1vZHVsZS5qcyIsInNvdXJjZVJvb3QiOiJuZzovL0BhYnAvbmcuYWNjb3VudC8iLCJzb3VyY2VzIjpbImxpYi9hY2NvdW50LXJvdXRpbmcubW9kdWxlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7QUFBQSxPQUFPLEVBQUUsUUFBUSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQ3pDLE9BQU8sRUFBVSxZQUFZLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQztBQUN2RCxPQUFPLEVBQUUsY0FBYyxFQUFFLE1BQU0sb0NBQW9DLENBQUM7QUFDcEUsT0FBTyxFQUFFLGlCQUFpQixFQUFFLE1BQU0sMENBQTBDLENBQUM7QUFDN0UsT0FBTyxFQUFFLHNCQUFzQixFQUFFLE1BQU0sY0FBYyxDQUFDOztJQUVoRCxNQUFNLEdBQVc7SUFDckIsRUFBRSxJQUFJLEVBQUUsRUFBRSxFQUFFLFNBQVMsRUFBRSxNQUFNLEVBQUUsVUFBVSxFQUFFLE9BQU8sRUFBRTtJQUNwRDtRQUNFLElBQUksRUFBRSxFQUFFO1FBQ1IsU0FBUyxFQUFFLHNCQUFzQjtRQUNqQyxRQUFRLEVBQUUsQ0FBQyxFQUFFLElBQUksRUFBRSxPQUFPLEVBQUUsU0FBUyxFQUFFLGNBQWMsRUFBRSxFQUFFLEVBQUUsSUFBSSxFQUFFLFVBQVUsRUFBRSxTQUFTLEVBQUUsaUJBQWlCLEVBQUUsQ0FBQztLQUM3RztDQUNGO0FBRUQ7SUFBQTtJQUltQyxDQUFDOztnQkFKbkMsUUFBUSxTQUFDO29CQUNSLE9BQU8sRUFBRSxDQUFDLFlBQVksQ0FBQyxRQUFRLENBQUMsTUFBTSxDQUFDLENBQUM7b0JBQ3hDLE9BQU8sRUFBRSxDQUFDLFlBQVksQ0FBQztpQkFDeEI7O0lBQ2tDLDJCQUFDO0NBQUEsQUFKcEMsSUFJb0M7U0FBdkIsb0JBQW9CIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgTmdNb2R1bGUgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IFJvdXRlcywgUm91dGVyTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvcm91dGVyJztcbmltcG9ydCB7IExvZ2luQ29tcG9uZW50IH0gZnJvbSAnLi9jb21wb25lbnRzL2xvZ2luL2xvZ2luLmNvbXBvbmVudCc7XG5pbXBvcnQgeyBSZWdpc3RlckNvbXBvbmVudCB9IGZyb20gJy4vY29tcG9uZW50cy9yZWdpc3Rlci9yZWdpc3Rlci5jb21wb25lbnQnO1xuaW1wb3J0IHsgRHluYW1pY0xheW91dENvbXBvbmVudCB9IGZyb20gJ0BhYnAvbmcuY29yZSc7XG5cbmNvbnN0IHJvdXRlczogUm91dGVzID0gW1xuICB7IHBhdGg6ICcnLCBwYXRoTWF0Y2g6ICdmdWxsJywgcmVkaXJlY3RUbzogJ2xvZ2luJyB9LFxuICB7XG4gICAgcGF0aDogJycsXG4gICAgY29tcG9uZW50OiBEeW5hbWljTGF5b3V0Q29tcG9uZW50LFxuICAgIGNoaWxkcmVuOiBbeyBwYXRoOiAnbG9naW4nLCBjb21wb25lbnQ6IExvZ2luQ29tcG9uZW50IH0sIHsgcGF0aDogJ3JlZ2lzdGVyJywgY29tcG9uZW50OiBSZWdpc3RlckNvbXBvbmVudCB9XSxcbiAgfSxcbl07XG5cbkBOZ01vZHVsZSh7XG4gIGltcG9ydHM6IFtSb3V0ZXJNb2R1bGUuZm9yQ2hpbGQocm91dGVzKV0sXG4gIGV4cG9ydHM6IFtSb3V0ZXJNb2R1bGVdLFxufSlcbmV4cG9ydCBjbGFzcyBBY2NvdW50Um91dGluZ01vZHVsZSB7fVxuIl19
|
|||
@ -0,0 +1,51 @@ |
|||
/** |
|||
* @fileoverview added by tsickle |
|||
* @suppress {checkTypes,extraRequire,missingOverride,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc |
|||
*/ |
|||
import { CoreModule } from '@abp/ng.core'; |
|||
import { NgModule } from '@angular/core'; |
|||
import { AccountRoutingModule } from './account-routing.module'; |
|||
import { LoginComponent } from './components/login/login.component'; |
|||
import { RegisterComponent } from './components/register/register.component'; |
|||
import { ThemeSharedModule } from '@abp/ng.theme.shared'; |
|||
import { TenantBoxComponent } from './components/tenant-box/tenant-box.component'; |
|||
import { ACCOUNT_OPTIONS, optionsFactory } from './tokens/options.token'; |
|||
import { TableModule } from 'primeng/table'; |
|||
import { NgbDropdownModule } from '@ng-bootstrap/ng-bootstrap'; |
|||
import { NgxValidateCoreModule } from '@ngx-validate/core'; |
|||
var AccountModule = /** @class */ (function () { |
|||
function AccountModule() { |
|||
} |
|||
/** |
|||
* @param {?=} options |
|||
* @return {?} |
|||
*/ |
|||
AccountModule.forRoot = /** |
|||
* @param {?=} options |
|||
* @return {?} |
|||
*/ |
|||
function (options) { |
|||
if (options === void 0) { options = (/** @type {?} */ ({})); } |
|||
return { |
|||
ngModule: AccountModule, |
|||
providers: [ |
|||
{ provide: ACCOUNT_OPTIONS, useValue: options }, |
|||
{ |
|||
provide: 'ACCOUNT_OPTIONS', |
|||
useFactory: optionsFactory, |
|||
deps: [ACCOUNT_OPTIONS], |
|||
}, |
|||
], |
|||
}; |
|||
}; |
|||
AccountModule.decorators = [ |
|||
{ type: NgModule, args: [{ |
|||
declarations: [LoginComponent, RegisterComponent, TenantBoxComponent], |
|||
imports: [CoreModule, AccountRoutingModule, ThemeSharedModule, TableModule, NgbDropdownModule, NgxValidateCoreModule], |
|||
exports: [], |
|||
},] } |
|||
]; |
|||
return AccountModule; |
|||
}()); |
|||
export { AccountModule }; |
|||
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYWNjb3VudC5tb2R1bGUuanMiLCJzb3VyY2VSb290Ijoibmc6Ly9AYWJwL25nLmFjY291bnQvIiwic291cmNlcyI6WyJsaWIvYWNjb3VudC5tb2R1bGUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7OztBQUFBLE9BQU8sRUFBRSxVQUFVLEVBQUUsTUFBTSxjQUFjLENBQUM7QUFDMUMsT0FBTyxFQUFFLFFBQVEsRUFBdUIsTUFBTSxlQUFlLENBQUM7QUFDOUQsT0FBTyxFQUFFLG9CQUFvQixFQUFFLE1BQU0sMEJBQTBCLENBQUM7QUFDaEUsT0FBTyxFQUFFLGNBQWMsRUFBRSxNQUFNLG9DQUFvQyxDQUFDO0FBQ3BFLE9BQU8sRUFBRSxpQkFBaUIsRUFBRSxNQUFNLDBDQUEwQyxDQUFDO0FBQzdFLE9BQU8sRUFBRSxpQkFBaUIsRUFBRSxNQUFNLHNCQUFzQixDQUFDO0FBQ3pELE9BQU8sRUFBRSxrQkFBa0IsRUFBRSxNQUFNLDhDQUE4QyxDQUFDO0FBRWxGLE9BQU8sRUFBRSxlQUFlLEVBQUUsY0FBYyxFQUFFLE1BQU0sd0JBQXdCLENBQUM7QUFDekUsT0FBTyxFQUFFLFdBQVcsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUM1QyxPQUFPLEVBQUUsaUJBQWlCLEVBQUUsTUFBTSw0QkFBNEIsQ0FBQztBQUMvRCxPQUFPLEVBQUUscUJBQXFCLEVBQUUsTUFBTSxvQkFBb0IsQ0FBQztBQUUzRDtJQUFBO0lBbUJBLENBQUM7Ozs7O0lBYlEscUJBQU87Ozs7SUFBZCxVQUFlLE9BQXVCO1FBQXZCLHdCQUFBLEVBQUEsNkJBQVUsRUFBRSxFQUFXO1FBQ3BDLE9BQU87WUFDTCxRQUFRLEVBQUUsYUFBYTtZQUN2QixTQUFTLEVBQUU7Z0JBQ1QsRUFBRSxPQUFPLEVBQUUsZUFBZSxFQUFFLFFBQVEsRUFBRSxPQUFPLEVBQUU7Z0JBQy9DO29CQUNFLE9BQU8sRUFBRSxpQkFBaUI7b0JBQzFCLFVBQVUsRUFBRSxjQUFjO29CQUMxQixJQUFJLEVBQUUsQ0FBQyxlQUFlLENBQUM7aUJBQ3hCO2FBQ0Y7U0FDRixDQUFDO0lBQ0osQ0FBQzs7Z0JBbEJGLFFBQVEsU0FBQztvQkFDUixZQUFZLEVBQUUsQ0FBQyxjQUFjLEVBQUUsaUJBQWlCLEVBQUUsa0JBQWtCLENBQUM7b0JBQ3JFLE9BQU8sRUFBRSxDQUFDLFVBQVUsRUFBRSxvQkFBb0IsRUFBRSxpQkFBaUIsRUFBRSxXQUFXLEVBQUUsaUJBQWlCLEVBQUUscUJBQXFCLENBQUM7b0JBQ3JILE9BQU8sRUFBRSxFQUFFO2lCQUNaOztJQWVELG9CQUFDO0NBQUEsQUFuQkQsSUFtQkM7U0FkWSxhQUFhIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ29yZU1vZHVsZSB9IGZyb20gJ0BhYnAvbmcuY29yZSc7XG5pbXBvcnQgeyBOZ01vZHVsZSwgTW9kdWxlV2l0aFByb3ZpZGVycyB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgQWNjb3VudFJvdXRpbmdNb2R1bGUgfSBmcm9tICcuL2FjY291bnQtcm91dGluZy5tb2R1bGUnO1xuaW1wb3J0IHsgTG9naW5Db21wb25lbnQgfSBmcm9tICcuL2NvbXBvbmVudHMvbG9naW4vbG9naW4uY29tcG9uZW50JztcbmltcG9ydCB7IFJlZ2lzdGVyQ29tcG9uZW50IH0gZnJvbSAnLi9jb21wb25lbnRzL3JlZ2lzdGVyL3JlZ2lzdGVyLmNvbXBvbmVudCc7XG5pbXBvcnQgeyBUaGVtZVNoYXJlZE1vZHVsZSB9IGZyb20gJ0BhYnAvbmcudGhlbWUuc2hhcmVkJztcbmltcG9ydCB7IFRlbmFudEJveENvbXBvbmVudCB9IGZyb20gJy4vY29tcG9uZW50cy90ZW5hbnQtYm94L3RlbmFudC1ib3guY29tcG9uZW50JztcbmltcG9ydCB7IE9wdGlvbnMgfSBmcm9tICcuL21vZGVscy9vcHRpb25zJztcbmltcG9ydCB7IEFDQ09VTlRfT1BUSU9OUywgb3B0aW9uc0ZhY3RvcnkgfSBmcm9tICcuL3Rva2Vucy9vcHRpb25zLnRva2VuJztcbmltcG9ydCB7IFRhYmxlTW9kdWxlIH0gZnJvbSAncHJpbWVuZy90YWJsZSc7XG5pbXBvcnQgeyBOZ2JEcm9wZG93bk1vZHVsZSB9IGZyb20gJ0BuZy1ib290c3RyYXAvbmctYm9vdHN0cmFwJztcbmltcG9ydCB7IE5neFZhbGlkYXRlQ29yZU1vZHVsZSB9IGZyb20gJ0BuZ3gtdmFsaWRhdGUvY29yZSc7XG5cbkBOZ01vZHVsZSh7XG4gIGRlY2xhcmF0aW9uczogW0xvZ2luQ29tcG9uZW50LCBSZWdpc3RlckNvbXBvbmVudCwgVGVuYW50Qm94Q29tcG9uZW50XSxcbiAgaW1wb3J0czogW0NvcmVNb2R1bGUsIEFjY291bnRSb3V0aW5nTW9kdWxlLCBUaGVtZVNoYXJlZE1vZHVsZSwgVGFibGVNb2R1bGUsIE5nYkRyb3Bkb3duTW9kdWxlLCBOZ3hWYWxpZGF0ZUNvcmVNb2R1bGVdLFxuICBleHBvcnRzOiBbXSxcbn0pXG5leHBvcnQgY2xhc3MgQWNjb3VudE1vZHVsZSB7XG4gIHN0YXRpYyBmb3JSb290KG9wdGlvbnMgPSB7fSBhcyBPcHRpb25zKTogTW9kdWxlV2l0aFByb3ZpZGVycyB7XG4gICAgcmV0dXJuIHtcbiAgICAgIG5nTW9kdWxlOiBBY2NvdW50TW9kdWxlLFxuICAgICAgcHJvdmlkZXJzOiBbXG4gICAgICAgIHsgcHJvdmlkZTogQUNDT1VOVF9PUFRJT05TLCB1c2VWYWx1ZTogb3B0aW9ucyB9LFxuICAgICAgICB7XG4gICAgICAgICAgcHJvdmlkZTogJ0FDQ09VTlRfT1BUSU9OUycsXG4gICAgICAgICAgdXNlRmFjdG9yeTogb3B0aW9uc0ZhY3RvcnksXG4gICAgICAgICAgZGVwczogW0FDQ09VTlRfT1BUSU9OU10sXG4gICAgICAgIH0sXG4gICAgICBdLFxuICAgIH07XG4gIH1cbn1cbiJdfQ==
|
|||
@ -0,0 +1,7 @@ |
|||
/** |
|||
* @fileoverview added by tsickle |
|||
* @suppress {checkTypes,extraRequire,missingOverride,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc |
|||
*/ |
|||
export { LoginComponent } from './login/login.component'; |
|||
export { RegisterComponent } from './register/register.component'; |
|||
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290Ijoibmc6Ly9AYWJwL25nLmFjY291bnQvIiwic291cmNlcyI6WyJsaWIvY29tcG9uZW50cy9pbmRleC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7O0FBQUEsK0JBQWMseUJBQXlCLENBQUM7QUFDeEMsa0NBQWMsK0JBQStCLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJleHBvcnQgKiBmcm9tICcuL2xvZ2luL2xvZ2luLmNvbXBvbmVudCc7XG5leHBvcnQgKiBmcm9tICcuL3JlZ2lzdGVyL3JlZ2lzdGVyLmNvbXBvbmVudCc7XG4iXX0=
|
|||
File diff suppressed because one or more lines are too long
@ -0,0 +1,69 @@ |
|||
/** |
|||
* @fileoverview added by tsickle |
|||
* @suppress {checkTypes,extraRequire,missingOverride,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc |
|||
*/ |
|||
import { Component } from '@angular/core'; |
|||
import { FormBuilder, Validators } from '@angular/forms'; |
|||
import { Router } from '@angular/router'; |
|||
import { validatePassword } from '@ngx-validate/core'; |
|||
import { OAuthService } from 'angular-oauth2-oidc'; |
|||
var maxLength = Validators.maxLength, minLength = Validators.minLength, required = Validators.required, email = Validators.email; |
|||
var RegisterComponent = /** @class */ (function () { |
|||
function RegisterComponent(fb, oauthService, router) { |
|||
this.fb = fb; |
|||
this.oauthService = oauthService; |
|||
this.router = router; |
|||
this.form = this.fb.group({ |
|||
username: ['', [required, maxLength(255)]], |
|||
password: [ |
|||
'', |
|||
[required, maxLength(32), minLength(6), validatePassword(['small', 'capital', 'number', 'special'])], |
|||
], |
|||
email: ['', [required, email]], |
|||
}); |
|||
} |
|||
/** |
|||
* @return {?} |
|||
*/ |
|||
RegisterComponent.prototype.onSubmit = /** |
|||
* @return {?} |
|||
*/ |
|||
function () { |
|||
if (this.form.invalid) |
|||
return; |
|||
}; |
|||
RegisterComponent.decorators = [ |
|||
{ type: Component, args: [{ |
|||
selector: 'abp-register', |
|||
template: "<div class=\"row\">\n <div class=\"col col-md-4 offset-md-4\">\n <abp-tenant-box></abp-tenant-box>\n\n <div class=\"abp-account-container\">\n <h2>Register</h2>\n <form [formGroup]=\"form\" (ngSubmit)=\"onSubmit()\" novalidate>\n <div class=\"form-group\">\n <label for=\"input-user-name\">User name</label><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\">Email address</label><span> * </span\n ><input type=\"email\" id=\"input-email-address\" class=\"form-control\" formControlName=\"email\" />\n </div>\n <div class=\"form-group\">\n <label for=\"input-password\">Password</label><span> * </span\n ><input type=\"password\" id=\"input-password\" class=\"form-control\" formControlName=\"password\" />\n </div>\n <button type=\"submit\" class=\"btn btn-primary\">Register</button>\n </form>\n </div>\n </div>\n</div>\n" |
|||
}] } |
|||
]; |
|||
/** @nocollapse */ |
|||
RegisterComponent.ctorParameters = function () { return [ |
|||
{ type: FormBuilder }, |
|||
{ type: OAuthService }, |
|||
{ type: Router } |
|||
]; }; |
|||
return RegisterComponent; |
|||
}()); |
|||
export { RegisterComponent }; |
|||
if (false) { |
|||
/** @type {?} */ |
|||
RegisterComponent.prototype.form; |
|||
/** |
|||
* @type {?} |
|||
* @private |
|||
*/ |
|||
RegisterComponent.prototype.fb; |
|||
/** |
|||
* @type {?} |
|||
* @private |
|||
*/ |
|||
RegisterComponent.prototype.oauthService; |
|||
/** |
|||
* @type {?} |
|||
* @private |
|||
*/ |
|||
RegisterComponent.prototype.router; |
|||
} |
|||
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicmVnaXN0ZXIuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6Im5nOi8vQGFicC9uZy5hY2NvdW50LyIsInNvdXJjZXMiOlsibGliL2NvbXBvbmVudHMvcmVnaXN0ZXIvcmVnaXN0ZXIuY29tcG9uZW50LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7QUFBQSxPQUFPLEVBQUUsU0FBUyxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQzFDLE9BQU8sRUFBRSxXQUFXLEVBQWEsVUFBVSxFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFDcEUsT0FBTyxFQUFFLE1BQU0sRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBQ3pDLE9BQU8sRUFBRSxnQkFBZ0IsRUFBRSxNQUFNLG9CQUFvQixDQUFDO0FBQ3RELE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSxxQkFBcUIsQ0FBQztBQUUzQyxJQUFBLGdDQUFTLEVBQUUsZ0NBQVMsRUFBRSw4QkFBUSxFQUFFLHdCQUFLO0FBRTdDO0lBT0UsMkJBQW9CLEVBQWUsRUFBVSxZQUEwQixFQUFVLE1BQWM7UUFBM0UsT0FBRSxHQUFGLEVBQUUsQ0FBYTtRQUFVLGlCQUFZLEdBQVosWUFBWSxDQUFjO1FBQVUsV0FBTSxHQUFOLE1BQU0sQ0FBUTtRQUM3RixJQUFJLENBQUMsSUFBSSxHQUFHLElBQUksQ0FBQyxFQUFFLENBQUMsS0FBSyxDQUFDO1lBQ3hCLFFBQVEsRUFBRSxDQUFDLEVBQUUsRUFBRSxDQUFDLFFBQVEsRUFBRSxTQUFTLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQztZQUMxQyxRQUFRLEVBQUU7Z0JBQ1IsRUFBRTtnQkFDRixDQUFDLFFBQVEsRUFBRSxTQUFTLENBQUMsRUFBRSxDQUFDLEVBQUUsU0FBUyxDQUFDLENBQUMsQ0FBQyxFQUFFLGdCQUFnQixDQUFDLENBQUMsT0FBTyxFQUFFLFNBQVMsRUFBRSxRQUFRLEVBQUUsU0FBUyxDQUFDLENBQUMsQ0FBQzthQUNyRztZQUNELEtBQUssRUFBRSxDQUFDLEVBQUUsRUFBRSxDQUFDLFFBQVEsRUFBRSxLQUFLLENBQUMsQ0FBQztTQUMvQixDQUFDLENBQUM7SUFDTCxDQUFDOzs7O0lBRUQsb0NBQVE7OztJQUFSO1FBQ0UsSUFBSSxJQUFJLENBQUMsSUFBSSxDQUFDLE9BQU87WUFBRSxPQUFPO0lBQ2hDLENBQUM7O2dCQXBCRixTQUFTLFNBQUM7b0JBQ1QsUUFBUSxFQUFFLGNBQWM7b0JBQ3hCLDJsQ0FBd0M7aUJBQ3pDOzs7O2dCQVZRLFdBQVc7Z0JBR1gsWUFBWTtnQkFGWixNQUFNOztJQTJCZix3QkFBQztDQUFBLEFBckJELElBcUJDO1NBakJZLGlCQUFpQjs7O0lBQzVCLGlDQUFnQjs7Ozs7SUFFSiwrQkFBdUI7Ozs7O0lBQUUseUNBQWtDOzs7OztJQUFFLG1DQUFzQiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENvbXBvbmVudCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgRm9ybUJ1aWxkZXIsIEZvcm1Hcm91cCwgVmFsaWRhdG9ycyB9IGZyb20gJ0Bhbmd1bGFyL2Zvcm1zJztcbmltcG9ydCB7IFJvdXRlciB9IGZyb20gJ0Bhbmd1bGFyL3JvdXRlcic7XG5pbXBvcnQgeyB2YWxpZGF0ZVBhc3N3b3JkIH0gZnJvbSAnQG5neC12YWxpZGF0ZS9jb3JlJztcbmltcG9ydCB7IE9BdXRoU2VydmljZSB9IGZyb20gJ2FuZ3VsYXItb2F1dGgyLW9pZGMnO1xuXG5jb25zdCB7IG1heExlbmd0aCwgbWluTGVuZ3RoLCByZXF1aXJlZCwgZW1haWwgfSA9IFZhbGlkYXRvcnM7XG5cbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ2FicC1yZWdpc3RlcicsXG4gIHRlbXBsYXRlVXJsOiAnLi9yZWdpc3Rlci5jb21wb25lbnQuaHRtbCcsXG59KVxuZXhwb3J0IGNsYXNzIFJlZ2lzdGVyQ29tcG9uZW50IHtcbiAgZm9ybTogRm9ybUdyb3VwO1xuXG4gIGNvbnN0cnVjdG9yKHByaXZhdGUgZmI6IEZvcm1CdWlsZGVyLCBwcml2YXRlIG9hdXRoU2VydmljZTogT0F1dGhTZXJ2aWNlLCBwcml2YXRlIHJvdXRlcjogUm91dGVyKSB7XG4gICAgdGhpcy5mb3JtID0gdGhpcy5mYi5ncm91cCh7XG4gICAgICB1c2VybmFtZTogWycnLCBbcmVxdWlyZWQsIG1heExlbmd0aCgyNTUpXV0sXG4gICAgICBwYXNzd29yZDogW1xuICAgICAgICAnJyxcbiAgICAgICAgW3JlcXVpcmVkLCBtYXhMZW5ndGgoMzIpLCBtaW5MZW5ndGgoNiksIHZhbGlkYXRlUGFzc3dvcmQoWydzbWFsbCcsICdjYXBpdGFsJywgJ251bWJlcicsICdzcGVjaWFsJ10pXSxcbiAgICAgIF0sXG4gICAgICBlbWFpbDogWycnLCBbcmVxdWlyZWQsIGVtYWlsXV0sXG4gICAgfSk7XG4gIH1cblxuICBvblN1Ym1pdCgpIHtcbiAgICBpZiAodGhpcy5mb3JtLmludmFsaWQpIHJldHVybjtcbiAgfVxufVxuIl19
|
|||
@ -0,0 +1,89 @@ |
|||
/** |
|||
* @fileoverview added by tsickle |
|||
* @suppress {checkTypes,extraRequire,missingOverride,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc |
|||
*/ |
|||
import { Component, TemplateRef, ViewChild } from '@angular/core'; |
|||
import { FormBuilder } from '@angular/forms'; |
|||
import { NgbModal } from '@ng-bootstrap/ng-bootstrap'; |
|||
var TenantBoxComponent = /** @class */ (function () { |
|||
function TenantBoxComponent(modalService, fb) { |
|||
this.modalService = modalService; |
|||
this.fb = fb; |
|||
} |
|||
/** |
|||
* @return {?} |
|||
*/ |
|||
TenantBoxComponent.prototype.createForm = /** |
|||
* @return {?} |
|||
*/ |
|||
function () { |
|||
this.form = this.fb.group({ |
|||
name: [this.selected.name], |
|||
}); |
|||
}; |
|||
/** |
|||
* @return {?} |
|||
*/ |
|||
TenantBoxComponent.prototype.openModal = /** |
|||
* @return {?} |
|||
*/ |
|||
function () { |
|||
this.createForm(); |
|||
this.modalService.open(this.modalContent); |
|||
}; |
|||
/** |
|||
* @return {?} |
|||
*/ |
|||
TenantBoxComponent.prototype.onSwitch = /** |
|||
* @return {?} |
|||
*/ |
|||
function () { |
|||
this.selected = (/** @type {?} */ ({})); |
|||
this.openModal(); |
|||
}; |
|||
/** |
|||
* @return {?} |
|||
*/ |
|||
TenantBoxComponent.prototype.save = /** |
|||
* @return {?} |
|||
*/ |
|||
function () { |
|||
this.selected = this.form.value; |
|||
this.modalService.dismissAll(); |
|||
}; |
|||
TenantBoxComponent.decorators = [ |
|||
{ type: Component, args: [{ |
|||
selector: 'abp-tenant-box', |
|||
template: "<div\n class=\"tenant-switch-box\"\n style=\"background-color: #eee; margin-bottom: 20px; color: #000; padding: 10px; text-align: center;\"\n>\n <span style=\"color: #666;\">{{ 'AbpUiMultiTenancy::Tenant' | abpLocalization }}: </span>\n <strong>\n <i>{{ selected?.name ? selected.name : ('AbpUiMultiTenancy::NotSelected' | abpLocalization) }}</i>\n </strong>\n (<a id=\"abp-tenant-switch-link\" style=\"color: #333; cursor: pointer\" (click)=\"onSwitch()\">{{\n 'AbpUiMultiTenancy::Switch' | abpLocalization\n }}</a\n >)\n</div>\n\n<ng-template #modalContent let-modal>\n <div class=\"modal-header\">\n <h5 class=\"modal-title\" id=\"modal-basic-title\">\n SwitchTenant\n </h5>\n <button type=\"button\" class=\"close\" aria-label=\"Close\" (click)=\"modal.dismiss()\">\n <span aria-hidden=\"true\">×</span>\n </button>\n </div>\n <form [formGroup]=\"form\" (ngSubmit)=\"save()\">\n <div class=\"modal-body\">\n <div class=\"mt-2\">\n <div class=\"form-group\">\n <label for=\"name\">{{ 'AbpUiMultiTenancy::Name' | abpLocalization }}</label>\n <input type=\"text\" id=\"name\" class=\"form-control\" formControlName=\"name\" />\n </div>\n <p>{{ 'AbpUiMultiTenancy::SwitchTenantHint' | abpLocalization }}</p>\n </div>\n </div>\n\n <div class=\"modal-footer\">\n <button type=\"button\" class=\"btn btn-secondary\" data-dismiss=\"modal\" (click)=\"modal.close()\">\n {{ 'AbpTenantManagement::Cancel' | abpLocalization }}\n </button>\n <button type=\"submit\" class=\"btn btn-primary\">\n <i class=\"fa fa-check mr-1\"></i> <span>{{ 'AbpTenantManagement::Save' | abpLocalization }}</span>\n </button>\n </div>\n </form>\n</ng-template>\n" |
|||
}] } |
|||
]; |
|||
/** @nocollapse */ |
|||
TenantBoxComponent.ctorParameters = function () { return [ |
|||
{ type: NgbModal }, |
|||
{ type: FormBuilder } |
|||
]; }; |
|||
TenantBoxComponent.propDecorators = { |
|||
modalContent: [{ type: ViewChild, args: ['modalContent', { static: false },] }] |
|||
}; |
|||
return TenantBoxComponent; |
|||
}()); |
|||
export { TenantBoxComponent }; |
|||
if (false) { |
|||
/** @type {?} */ |
|||
TenantBoxComponent.prototype.form; |
|||
/** @type {?} */ |
|||
TenantBoxComponent.prototype.selected; |
|||
/** @type {?} */ |
|||
TenantBoxComponent.prototype.modalContent; |
|||
/** |
|||
* @type {?} |
|||
* @private |
|||
*/ |
|||
TenantBoxComponent.prototype.modalService; |
|||
/** |
|||
* @type {?} |
|||
* @private |
|||
*/ |
|||
TenantBoxComponent.prototype.fb; |
|||
} |
|||
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidGVuYW50LWJveC5jb21wb25lbnQuanMiLCJzb3VyY2VSb290Ijoibmc6Ly9AYWJwL25nLmFjY291bnQvIiwic291cmNlcyI6WyJsaWIvY29tcG9uZW50cy90ZW5hbnQtYm94L3RlbmFudC1ib3guY29tcG9uZW50LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7QUFBQSxPQUFPLEVBQUUsU0FBUyxFQUFFLFdBQVcsRUFBRSxTQUFTLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDbEUsT0FBTyxFQUFFLFdBQVcsRUFBYSxNQUFNLGdCQUFnQixDQUFDO0FBQ3hELE9BQU8sRUFBRSxRQUFRLEVBQUUsTUFBTSw0QkFBNEIsQ0FBQztBQUd0RDtJQUtFLDRCQUFvQixZQUFzQixFQUFVLEVBQWU7UUFBL0MsaUJBQVksR0FBWixZQUFZLENBQVU7UUFBVSxPQUFFLEdBQUYsRUFBRSxDQUFhO0lBQUcsQ0FBQzs7OztJQVN2RSx1Q0FBVTs7O0lBQVY7UUFDRSxJQUFJLENBQUMsSUFBSSxHQUFHLElBQUksQ0FBQyxFQUFFLENBQUMsS0FBSyxDQUFDO1lBQ3hCLElBQUksRUFBRSxDQUFDLElBQUksQ0FBQyxRQUFRLENBQUMsSUFBSSxDQUFDO1NBQzNCLENBQUMsQ0FBQztJQUNMLENBQUM7Ozs7SUFFRCxzQ0FBUzs7O0lBQVQ7UUFDRSxJQUFJLENBQUMsVUFBVSxFQUFFLENBQUM7UUFDbEIsSUFBSSxDQUFDLFlBQVksQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLFlBQVksQ0FBQyxDQUFDO0lBQzVDLENBQUM7Ozs7SUFFRCxxQ0FBUTs7O0lBQVI7UUFDRSxJQUFJLENBQUMsUUFBUSxHQUFHLG1CQUFBLEVBQUUsRUFBaUIsQ0FBQztRQUNwQyxJQUFJLENBQUMsU0FBUyxFQUFFLENBQUM7SUFDbkIsQ0FBQzs7OztJQUVELGlDQUFJOzs7SUFBSjtRQUNFLElBQUksQ0FBQyxRQUFRLEdBQUcsSUFBSSxDQUFDLElBQUksQ0FBQyxLQUFLLENBQUM7UUFDaEMsSUFBSSxDQUFDLFlBQVksQ0FBQyxVQUFVLEVBQUUsQ0FBQztJQUNqQyxDQUFDOztnQkFqQ0YsU0FBUyxTQUFDO29CQUNULFFBQVEsRUFBRSxnQkFBZ0I7b0JBQzFCLDJ2REFBMEM7aUJBQzNDOzs7O2dCQU5RLFFBQVE7Z0JBRFIsV0FBVzs7OytCQWVqQixTQUFTLFNBQUMsY0FBYyxFQUFFLEVBQUUsTUFBTSxFQUFFLEtBQUssRUFBRTs7SUF1QjlDLHlCQUFDO0NBQUEsQUFsQ0QsSUFrQ0M7U0E5Qlksa0JBQWtCOzs7SUFHN0Isa0NBQWdCOztJQUVoQixzQ0FBd0I7O0lBRXhCLDBDQUMrQjs7Ozs7SUFQbkIsMENBQThCOzs7OztJQUFFLGdDQUF1QiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENvbXBvbmVudCwgVGVtcGxhdGVSZWYsIFZpZXdDaGlsZCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgRm9ybUJ1aWxkZXIsIEZvcm1Hcm91cCB9IGZyb20gJ0Bhbmd1bGFyL2Zvcm1zJztcbmltcG9ydCB7IE5nYk1vZGFsIH0gZnJvbSAnQG5nLWJvb3RzdHJhcC9uZy1ib290c3RyYXAnO1xuaW1wb3J0IHsgQUJQIH0gZnJvbSAnQGFicC9uZy5jb3JlJztcblxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAnYWJwLXRlbmFudC1ib3gnLFxuICB0ZW1wbGF0ZVVybDogJy4vdGVuYW50LWJveC5jb21wb25lbnQuaHRtbCcsXG59KVxuZXhwb3J0IGNsYXNzIFRlbmFudEJveENvbXBvbmVudCB7XG4gIGNvbnN0cnVjdG9yKHByaXZhdGUgbW9kYWxTZXJ2aWNlOiBOZ2JNb2RhbCwgcHJpdmF0ZSBmYjogRm9ybUJ1aWxkZXIpIHt9XG5cbiAgZm9ybTogRm9ybUdyb3VwO1xuXG4gIHNlbGVjdGVkOiBBQlAuQmFzaWNJdGVtO1xuXG4gIEBWaWV3Q2hpbGQoJ21vZGFsQ29udGVudCcsIHsgc3RhdGljOiBmYWxzZSB9KVxuICBtb2RhbENvbnRlbnQ6IFRlbXBsYXRlUmVmPGFueT47XG5cbiAgY3JlYXRlRm9ybSgpIHtcbiAgICB0aGlzLmZvcm0gPSB0aGlzLmZiLmdyb3VwKHtcbiAgICAgIG5hbWU6IFt0aGlzLnNlbGVjdGVkLm5hbWVdLFxuICAgIH0pO1xuICB9XG5cbiAgb3Blbk1vZGFsKCkge1xuICAgIHRoaXMuY3JlYXRlRm9ybSgpO1xuICAgIHRoaXMubW9kYWxTZXJ2aWNlLm9wZW4odGhpcy5tb2RhbENvbnRlbnQpO1xuICB9XG5cbiAgb25Td2l0Y2goKSB7XG4gICAgdGhpcy5zZWxlY3RlZCA9IHt9IGFzIEFCUC5CYXNpY0l0ZW07XG4gICAgdGhpcy5vcGVuTW9kYWwoKTtcbiAgfVxuXG4gIHNhdmUoKSB7XG4gICAgdGhpcy5zZWxlY3RlZCA9IHRoaXMuZm9ybS52YWx1ZTtcbiAgICB0aGlzLm1vZGFsU2VydmljZS5kaXNtaXNzQWxsKCk7XG4gIH1cbn1cbiJdfQ==
|
|||
@ -0,0 +1,15 @@ |
|||
/** |
|||
* @fileoverview added by tsickle |
|||
* @suppress {checkTypes,extraRequire,missingOverride,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc |
|||
*/ |
|||
/** @type {?} */ |
|||
export var ACCOUNT_ROUTES = (/** @type {?} */ ([ |
|||
{ |
|||
name: 'Account', |
|||
path: 'account', |
|||
invisible: true, |
|||
layout: "application" /* application */, |
|||
children: [{ path: 'login', name: 'Login', order: 1 }, { path: 'register', name: 'Register', order: 2 }], |
|||
}, |
|||
])); |
|||
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicm91dGVzLmpzIiwic291cmNlUm9vdCI6Im5nOi8vQGFicC9uZy5hY2NvdW50LyIsInNvdXJjZXMiOlsibGliL2NvbnN0YW50cy9yb3V0ZXMudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7QUFFQSxNQUFNLEtBQU8sY0FBYyxHQUFHLG1CQUFBO0lBQzVCO1FBQ0UsSUFBSSxFQUFFLFNBQVM7UUFDZixJQUFJLEVBQUUsU0FBUztRQUNmLFNBQVMsRUFBRSxJQUFJO1FBQ2YsTUFBTSxpQ0FBeUI7UUFDL0IsUUFBUSxFQUFFLENBQUMsRUFBRSxJQUFJLEVBQUUsT0FBTyxFQUFFLElBQUksRUFBRSxPQUFPLEVBQUUsS0FBSyxFQUFFLENBQUMsRUFBRSxFQUFFLEVBQUUsSUFBSSxFQUFFLFVBQVUsRUFBRSxJQUFJLEVBQUUsVUFBVSxFQUFFLEtBQUssRUFBRSxDQUFDLEVBQUUsQ0FBQztLQUN6RztDQUNGLEVBQW1CIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQUJQLCBlTGF5b3V0VHlwZSB9IGZyb20gJ0BhYnAvbmcuY29yZSc7XG5cbmV4cG9ydCBjb25zdCBBQ0NPVU5UX1JPVVRFUyA9IFtcbiAge1xuICAgIG5hbWU6ICdBY2NvdW50JyxcbiAgICBwYXRoOiAnYWNjb3VudCcsXG4gICAgaW52aXNpYmxlOiB0cnVlLFxuICAgIGxheW91dDogZUxheW91dFR5cGUuYXBwbGljYXRpb24sXG4gICAgY2hpbGRyZW46IFt7IHBhdGg6ICdsb2dpbicsIG5hbWU6ICdMb2dpbicsIG9yZGVyOiAxIH0sIHsgcGF0aDogJ3JlZ2lzdGVyJywgbmFtZTogJ1JlZ2lzdGVyJywgb3JkZXI6IDIgfV0sXG4gIH0sXG5dIGFzIEFCUC5GdWxsUm91dGVbXTtcbiJdfQ==
|
|||
@ -0,0 +1,6 @@ |
|||
/** |
|||
* @fileoverview added by tsickle |
|||
* @suppress {checkTypes,extraRequire,missingOverride,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc |
|||
*/ |
|||
export {} from './options'; |
|||
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290Ijoibmc6Ly9AYWJwL25nLmFjY291bnQvIiwic291cmNlcyI6WyJsaWIvbW9kZWxzL2luZGV4LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7QUFBQSxlQUFjLFdBQVcsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImV4cG9ydCAqIGZyb20gJy4vb3B0aW9ucyc7XG4iXX0=
|
|||
@ -0,0 +1,13 @@ |
|||
/** |
|||
* @fileoverview added by tsickle |
|||
* @suppress {checkTypes,extraRequire,missingOverride,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc |
|||
*/ |
|||
/** |
|||
* @record |
|||
*/ |
|||
export function Options() { } |
|||
if (false) { |
|||
/** @type {?|undefined} */ |
|||
Options.prototype.redirectUrl; |
|||
} |
|||
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoib3B0aW9ucy5qcyIsInNvdXJjZVJvb3QiOiJuZzovL0BhYnAvbmcuYWNjb3VudC8iLCJzb3VyY2VzIjpbImxpYi9tb2RlbHMvb3B0aW9ucy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7Ozs7O0FBQUEsNkJBRUM7OztJQURDLDhCQUFxQiIsInNvdXJjZXNDb250ZW50IjpbImV4cG9ydCBpbnRlcmZhY2UgT3B0aW9ucyB7XG4gIHJlZGlyZWN0VXJsPzogc3RyaW5nO1xufVxuIl19
|
|||
@ -0,0 +1,6 @@ |
|||
/** |
|||
* @fileoverview added by tsickle |
|||
* @suppress {checkTypes,extraRequire,missingOverride,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc |
|||
*/ |
|||
export { optionsFactory, ACCOUNT_OPTIONS } from './options.token'; |
|||
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290Ijoibmc6Ly9AYWJwL25nLmFjY291bnQvIiwic291cmNlcyI6WyJsaWIvdG9rZW5zL2luZGV4LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7QUFBQSxnREFBYyxpQkFBaUIsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImV4cG9ydCAqIGZyb20gJy4vb3B0aW9ucy50b2tlbic7XG4iXX0=
|
|||
@ -0,0 +1,16 @@ |
|||
/** |
|||
* @fileoverview added by tsickle |
|||
* @suppress {checkTypes,extraRequire,missingOverride,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc |
|||
*/ |
|||
import * as tslib_1 from "tslib"; |
|||
import { InjectionToken } from '@angular/core'; |
|||
/** |
|||
* @param {?} options |
|||
* @return {?} |
|||
*/ |
|||
export function optionsFactory(options) { |
|||
return tslib_1.__assign({ redirectUrl: '/' }, options); |
|||
} |
|||
/** @type {?} */ |
|||
export var ACCOUNT_OPTIONS = new InjectionToken('ACCOUNT_OPTIONS'); |
|||
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoib3B0aW9ucy50b2tlbi5qcyIsInNvdXJjZVJvb3QiOiJuZzovL0BhYnAvbmcuYWNjb3VudC8iLCJzb3VyY2VzIjpbImxpYi90b2tlbnMvb3B0aW9ucy50b2tlbi50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7OztBQUFBLE9BQU8sRUFBRSxjQUFjLEVBQUUsTUFBTSxlQUFlLENBQUM7Ozs7O0FBRy9DLE1BQU0sVUFBVSxjQUFjLENBQUMsT0FBZ0I7SUFDN0MsMEJBQ0UsV0FBVyxFQUFFLEdBQUcsSUFDYixPQUFPLEVBQ1Y7QUFDSixDQUFDOztBQUVELE1BQU0sS0FBTyxlQUFlLEdBQUcsSUFBSSxjQUFjLENBQUMsaUJBQWlCLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBJbmplY3Rpb25Ub2tlbiB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgT3B0aW9ucyB9IGZyb20gJy4uL21vZGVscy9vcHRpb25zJztcblxuZXhwb3J0IGZ1bmN0aW9uIG9wdGlvbnNGYWN0b3J5KG9wdGlvbnM6IE9wdGlvbnMpIHtcbiAgcmV0dXJuIHtcbiAgICByZWRpcmVjdFVybDogJy8nLFxuICAgIC4uLm9wdGlvbnMsXG4gIH07XG59XG5cbmV4cG9ydCBjb25zdCBBQ0NPVU5UX09QVElPTlMgPSBuZXcgSW5qZWN0aW9uVG9rZW4oJ0FDQ09VTlRfT1BUSU9OUycpO1xuIl19
|
|||
@ -0,0 +1,13 @@ |
|||
/** |
|||
* @fileoverview added by tsickle |
|||
* @suppress {checkTypes,extraRequire,missingOverride,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc |
|||
*/ |
|||
/* |
|||
* Public API Surface of auth |
|||
*/ |
|||
export { AccountModule } from './lib/account.module'; |
|||
export { LoginComponent, RegisterComponent } from './lib/components'; |
|||
export { ACCOUNT_ROUTES } from './lib/constants/routes'; |
|||
export { optionsFactory, ACCOUNT_OPTIONS } from './lib/tokens'; |
|||
export {} from './lib/models'; |
|||
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicHVibGljLWFwaS5qcyIsInNvdXJjZVJvb3QiOiJuZzovL0BhYnAvbmcuYWNjb3VudC8iLCJzb3VyY2VzIjpbInB1YmxpYy1hcGkudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7OztBQUlBLDhCQUFjLHNCQUFzQixDQUFDO0FBQ3JDLGtEQUFjLGtCQUFrQixDQUFDO0FBQ2pDLCtCQUFjLHdCQUF3QixDQUFDO0FBQ3ZDLGdEQUFjLGNBQWMsQ0FBQztBQUM3QixlQUFjLGNBQWMsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbIi8qXG4gKiBQdWJsaWMgQVBJIFN1cmZhY2Ugb2YgYXV0aFxuICovXG5cbmV4cG9ydCAqIGZyb20gJy4vbGliL2FjY291bnQubW9kdWxlJztcbmV4cG9ydCAqIGZyb20gJy4vbGliL2NvbXBvbmVudHMnO1xuZXhwb3J0ICogZnJvbSAnLi9saWIvY29uc3RhbnRzL3JvdXRlcyc7XG5leHBvcnQgKiBmcm9tICcuL2xpYi90b2tlbnMnO1xuZXhwb3J0ICogZnJvbSAnLi9saWIvbW9kZWxzJztcbiJdfQ==
|
|||
@ -0,0 +1,283 @@ |
|||
import { ConfigState, ConfigGetAppConfiguration, DynamicLayoutComponent, CoreModule } from '@abp/ng.core'; |
|||
import { Component, Optional, Inject, NgModule, ViewChild, InjectionToken } from '@angular/core'; |
|||
import { Router, RouterModule } from '@angular/router'; |
|||
import { FormBuilder, Validators } from '@angular/forms'; |
|||
import { Navigate } from '@ngxs/router-plugin'; |
|||
import { Store } from '@ngxs/store'; |
|||
import { OAuthService } from 'angular-oauth2-oidc'; |
|||
import { from, throwError } from 'rxjs'; |
|||
import { ToasterService, ThemeSharedModule } from '@abp/ng.theme.shared'; |
|||
import { switchMap, tap, catchError, finalize } from 'rxjs/operators'; |
|||
import snq from 'snq'; |
|||
import { validatePassword, NgxValidateCoreModule } from '@ngx-validate/core'; |
|||
import { NgbModal, NgbDropdownModule } from '@ng-bootstrap/ng-bootstrap'; |
|||
import { TableModule } from 'primeng/table'; |
|||
|
|||
/** |
|||
* @fileoverview added by tsickle |
|||
* @suppress {checkTypes,extraRequire,missingOverride,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc |
|||
*/ |
|||
const { maxLength, minLength, required } = Validators; |
|||
class LoginComponent { |
|||
/** |
|||
* @param {?} fb |
|||
* @param {?} oauthService |
|||
* @param {?} store |
|||
* @param {?} toasterService |
|||
* @param {?} options |
|||
*/ |
|||
constructor(fb, oauthService, store, toasterService, options) { |
|||
this.fb = fb; |
|||
this.oauthService = oauthService; |
|||
this.store = store; |
|||
this.toasterService = toasterService; |
|||
this.options = options; |
|||
this.oauthService.configure(this.store.selectSnapshot(ConfigState.getOne('environment')).oAuthConfig); |
|||
this.oauthService.loadDiscoveryDocument(); |
|||
this.form = this.fb.group({ |
|||
username: ['', [required, maxLength(255)]], |
|||
password: ['', [required, maxLength(32)]], |
|||
remember: [false], |
|||
}); |
|||
} |
|||
/** |
|||
* @return {?} |
|||
*/ |
|||
onSubmit() { |
|||
if (this.form.invalid) |
|||
return; |
|||
this.oauthService.setStorage(this.form.value.remember ? localStorage : sessionStorage); |
|||
this.inProgress = true; |
|||
from(this.oauthService.fetchTokenUsingPasswordFlow(this.form.get('username').value, this.form.get('password').value)) |
|||
.pipe(switchMap((/** |
|||
* @return {?} |
|||
*/ |
|||
() => this.store.dispatch(new ConfigGetAppConfiguration()))), tap((/** |
|||
* @return {?} |
|||
*/ |
|||
() => { |
|||
/** @type {?} */ |
|||
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((/** |
|||
* @return {?} |
|||
*/ |
|||
() => err.error.error_description), 'An error occured.'), 'Error'); |
|||
return throwError(err); |
|||
})), finalize((/** |
|||
* @return {?} |
|||
*/ |
|||
() => (this.inProgress = false)))) |
|||
.subscribe(); |
|||
} |
|||
} |
|||
LoginComponent.decorators = [ |
|||
{ type: Component, args: [{ |
|||
selector: 'abp-login', |
|||
template: "<div class=\"row\">\n <div class=\"col col-md-4 offset-md-4\">\n <abp-tenant-box></abp-tenant-box>\n\n <div class=\"abp-account-container\">\n <h2>{{ 'AbpAccount::Login' | abpLocalization }}</h2>\n <form [formGroup]=\"form\" (ngSubmit)=\"onSubmit()\" novalidate>\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 />\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 <div class=\"mt-2\">\n <button type=\"button\" name=\"Action\" value=\"Cancel\" class=\"btn btn-secondary\">\n {{ 'AbpAccount::Cancel' | abpLocalization }}\n </button>\n <button [disabled]=\"inProgress\" type=\"submit\" name=\"Action\" value=\"Login\" class=\"btn btn-primary ml-1\">\n {{ 'AbpAccount::Login' | abpLocalization }}\n </button>\n </div>\n </form>\n <div style=\"padding-top: 20px\">\n <a routerLink=\"/account/register\">{{ 'AbpAccount::Register' | abpLocalization }}</a>\n </div>\n </div>\n </div>\n</div>\n" |
|||
}] } |
|||
]; |
|||
/** @nocollapse */ |
|||
LoginComponent.ctorParameters = () => [ |
|||
{ type: FormBuilder }, |
|||
{ type: OAuthService }, |
|||
{ type: Store }, |
|||
{ type: ToasterService }, |
|||
{ type: undefined, decorators: [{ type: Optional }, { type: Inject, args: ['ACCOUNT_OPTIONS',] }] } |
|||
]; |
|||
|
|||
/** |
|||
* @fileoverview added by tsickle |
|||
* @suppress {checkTypes,extraRequire,missingOverride,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc |
|||
*/ |
|||
const { maxLength: maxLength$1, minLength: minLength$1, required: required$1, email } = Validators; |
|||
class RegisterComponent { |
|||
/** |
|||
* @param {?} fb |
|||
* @param {?} oauthService |
|||
* @param {?} router |
|||
*/ |
|||
constructor(fb, oauthService, router) { |
|||
this.fb = fb; |
|||
this.oauthService = oauthService; |
|||
this.router = router; |
|||
this.form = this.fb.group({ |
|||
username: ['', [required$1, maxLength$1(255)]], |
|||
password: [ |
|||
'', |
|||
[required$1, maxLength$1(32), minLength$1(6), validatePassword(['small', 'capital', 'number', 'special'])], |
|||
], |
|||
email: ['', [required$1, email]], |
|||
}); |
|||
} |
|||
/** |
|||
* @return {?} |
|||
*/ |
|||
onSubmit() { |
|||
if (this.form.invalid) |
|||
return; |
|||
} |
|||
} |
|||
RegisterComponent.decorators = [ |
|||
{ type: Component, args: [{ |
|||
selector: 'abp-register', |
|||
template: "<div class=\"row\">\n <div class=\"col col-md-4 offset-md-4\">\n <abp-tenant-box></abp-tenant-box>\n\n <div class=\"abp-account-container\">\n <h2>Register</h2>\n <form [formGroup]=\"form\" (ngSubmit)=\"onSubmit()\" novalidate>\n <div class=\"form-group\">\n <label for=\"input-user-name\">User name</label><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\">Email address</label><span> * </span\n ><input type=\"email\" id=\"input-email-address\" class=\"form-control\" formControlName=\"email\" />\n </div>\n <div class=\"form-group\">\n <label for=\"input-password\">Password</label><span> * </span\n ><input type=\"password\" id=\"input-password\" class=\"form-control\" formControlName=\"password\" />\n </div>\n <button type=\"submit\" class=\"btn btn-primary\">Register</button>\n </form>\n </div>\n </div>\n</div>\n" |
|||
}] } |
|||
]; |
|||
/** @nocollapse */ |
|||
RegisterComponent.ctorParameters = () => [ |
|||
{ type: FormBuilder }, |
|||
{ type: OAuthService }, |
|||
{ type: Router } |
|||
]; |
|||
|
|||
/** |
|||
* @fileoverview added by tsickle |
|||
* @suppress {checkTypes,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 }], |
|||
}, |
|||
]; |
|||
class AccountRoutingModule { |
|||
} |
|||
AccountRoutingModule.decorators = [ |
|||
{ type: NgModule, args: [{ |
|||
imports: [RouterModule.forChild(routes)], |
|||
exports: [RouterModule], |
|||
},] } |
|||
]; |
|||
|
|||
/** |
|||
* @fileoverview added by tsickle |
|||
* @suppress {checkTypes,extraRequire,missingOverride,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc |
|||
*/ |
|||
class TenantBoxComponent { |
|||
/** |
|||
* @param {?} modalService |
|||
* @param {?} fb |
|||
*/ |
|||
constructor(modalService, fb) { |
|||
this.modalService = modalService; |
|||
this.fb = fb; |
|||
} |
|||
/** |
|||
* @return {?} |
|||
*/ |
|||
createForm() { |
|||
this.form = this.fb.group({ |
|||
name: [this.selected.name], |
|||
}); |
|||
} |
|||
/** |
|||
* @return {?} |
|||
*/ |
|||
openModal() { |
|||
this.createForm(); |
|||
this.modalService.open(this.modalContent); |
|||
} |
|||
/** |
|||
* @return {?} |
|||
*/ |
|||
onSwitch() { |
|||
this.selected = (/** @type {?} */ ({})); |
|||
this.openModal(); |
|||
} |
|||
/** |
|||
* @return {?} |
|||
*/ |
|||
save() { |
|||
this.selected = this.form.value; |
|||
this.modalService.dismissAll(); |
|||
} |
|||
} |
|||
TenantBoxComponent.decorators = [ |
|||
{ type: Component, args: [{ |
|||
selector: 'abp-tenant-box', |
|||
template: "<div\n class=\"tenant-switch-box\"\n style=\"background-color: #eee; margin-bottom: 20px; color: #000; padding: 10px; text-align: center;\"\n>\n <span style=\"color: #666;\">{{ 'AbpUiMultiTenancy::Tenant' | abpLocalization }}: </span>\n <strong>\n <i>{{ selected?.name ? selected.name : ('AbpUiMultiTenancy::NotSelected' | abpLocalization) }}</i>\n </strong>\n (<a id=\"abp-tenant-switch-link\" style=\"color: #333; cursor: pointer\" (click)=\"onSwitch()\">{{\n 'AbpUiMultiTenancy::Switch' | abpLocalization\n }}</a\n >)\n</div>\n\n<ng-template #modalContent let-modal>\n <div class=\"modal-header\">\n <h5 class=\"modal-title\" id=\"modal-basic-title\">\n SwitchTenant\n </h5>\n <button type=\"button\" class=\"close\" aria-label=\"Close\" (click)=\"modal.dismiss()\">\n <span aria-hidden=\"true\">×</span>\n </button>\n </div>\n <form [formGroup]=\"form\" (ngSubmit)=\"save()\">\n <div class=\"modal-body\">\n <div class=\"mt-2\">\n <div class=\"form-group\">\n <label for=\"name\">{{ 'AbpUiMultiTenancy::Name' | abpLocalization }}</label>\n <input type=\"text\" id=\"name\" class=\"form-control\" formControlName=\"name\" />\n </div>\n <p>{{ 'AbpUiMultiTenancy::SwitchTenantHint' | abpLocalization }}</p>\n </div>\n </div>\n\n <div class=\"modal-footer\">\n <button type=\"button\" class=\"btn btn-secondary\" data-dismiss=\"modal\" (click)=\"modal.close()\">\n {{ 'AbpTenantManagement::Cancel' | abpLocalization }}\n </button>\n <button type=\"submit\" class=\"btn btn-primary\">\n <i class=\"fa fa-check mr-1\"></i> <span>{{ 'AbpTenantManagement::Save' | abpLocalization }}</span>\n </button>\n </div>\n </form>\n</ng-template>\n" |
|||
}] } |
|||
]; |
|||
/** @nocollapse */ |
|||
TenantBoxComponent.ctorParameters = () => [ |
|||
{ type: NgbModal }, |
|||
{ type: FormBuilder } |
|||
]; |
|||
TenantBoxComponent.propDecorators = { |
|||
modalContent: [{ type: ViewChild, args: ['modalContent', { static: false },] }] |
|||
}; |
|||
|
|||
/** |
|||
* @fileoverview added by tsickle |
|||
* @suppress {checkTypes,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 |
|||
* @suppress {checkTypes,extraRequire,missingOverride,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc |
|||
*/ |
|||
class AccountModule { |
|||
/** |
|||
* @param {?=} options |
|||
* @return {?} |
|||
*/ |
|||
static forRoot(options = (/** @type {?} */ ({}))) { |
|||
return { |
|||
ngModule: AccountModule, |
|||
providers: [ |
|||
{ provide: ACCOUNT_OPTIONS, useValue: options }, |
|||
{ |
|||
provide: 'ACCOUNT_OPTIONS', |
|||
useFactory: optionsFactory, |
|||
deps: [ACCOUNT_OPTIONS], |
|||
}, |
|||
], |
|||
}; |
|||
} |
|||
} |
|||
AccountModule.decorators = [ |
|||
{ type: NgModule, args: [{ |
|||
declarations: [LoginComponent, RegisterComponent, TenantBoxComponent], |
|||
imports: [CoreModule, AccountRoutingModule, ThemeSharedModule, TableModule, NgbDropdownModule, NgxValidateCoreModule], |
|||
exports: [], |
|||
},] } |
|||
]; |
|||
|
|||
/** |
|||
* @fileoverview added by tsickle |
|||
* @suppress {checkTypes,extraRequire,missingOverride,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc |
|||
*/ |
|||
/** @type {?} */ |
|||
const ACCOUNT_ROUTES = (/** @type {?} */ ([ |
|||
{ |
|||
name: 'Account', |
|||
path: 'account', |
|||
invisible: true, |
|||
layout: "application" /* application */, |
|||
children: [{ path: 'login', name: 'Login', order: 1 }, { path: 'register', name: 'Register', order: 2 }], |
|||
}, |
|||
])); |
|||
|
|||
export { ACCOUNT_OPTIONS, ACCOUNT_ROUTES, AccountModule, LoginComponent, RegisterComponent, optionsFactory, LoginComponent as ɵa, RegisterComponent as ɵc, TenantBoxComponent as ɵd, AccountRoutingModule as ɵe, optionsFactory as ɵf, ACCOUNT_OPTIONS as ɵg }; |
|||
//# sourceMappingURL=abp-ng.account.js.map
|
|||
File diff suppressed because one or more lines are too long
@ -0,0 +1,301 @@ |
|||
import { ConfigGetAppConfiguration, ConfigState, DynamicLayoutComponent, CoreModule } from '@abp/ng.core'; |
|||
import { Component, Optional, Inject, NgModule, ViewChild, InjectionToken } from '@angular/core'; |
|||
import { Router, RouterModule } from '@angular/router'; |
|||
import { Validators, FormBuilder } from '@angular/forms'; |
|||
import { Navigate } from '@ngxs/router-plugin'; |
|||
import { Store } from '@ngxs/store'; |
|||
import { OAuthService } from 'angular-oauth2-oidc'; |
|||
import { from, throwError } from 'rxjs'; |
|||
import { ToasterService, ThemeSharedModule } from '@abp/ng.theme.shared'; |
|||
import { switchMap, tap, catchError, finalize } from 'rxjs/operators'; |
|||
import snq from 'snq'; |
|||
import { validatePassword, NgxValidateCoreModule } from '@ngx-validate/core'; |
|||
import { NgbModal, NgbDropdownModule } from '@ng-bootstrap/ng-bootstrap'; |
|||
import { __assign } from 'tslib'; |
|||
import { TableModule } from 'primeng/table'; |
|||
|
|||
/** |
|||
* @fileoverview added by tsickle |
|||
* @suppress {checkTypes,extraRequire,missingOverride,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc |
|||
*/ |
|||
var maxLength = Validators.maxLength, minLength = Validators.minLength, required = Validators.required; |
|||
var LoginComponent = /** @class */ (function () { |
|||
function LoginComponent(fb, oauthService, store, toasterService, options) { |
|||
this.fb = fb; |
|||
this.oauthService = oauthService; |
|||
this.store = store; |
|||
this.toasterService = toasterService; |
|||
this.options = options; |
|||
this.oauthService.configure(this.store.selectSnapshot(ConfigState.getOne('environment')).oAuthConfig); |
|||
this.oauthService.loadDiscoveryDocument(); |
|||
this.form = this.fb.group({ |
|||
username: ['', [required, maxLength(255)]], |
|||
password: ['', [required, maxLength(32)]], |
|||
remember: [false], |
|||
}); |
|||
} |
|||
/** |
|||
* @return {?} |
|||
*/ |
|||
LoginComponent.prototype.onSubmit = /** |
|||
* @return {?} |
|||
*/ |
|||
function () { |
|||
var _this = this; |
|||
if (this.form.invalid) |
|||
return; |
|||
this.oauthService.setStorage(this.form.value.remember ? localStorage : sessionStorage); |
|||
this.inProgress = true; |
|||
from(this.oauthService.fetchTokenUsingPasswordFlow(this.form.get('username').value, this.form.get('password').value)) |
|||
.pipe(switchMap((/** |
|||
* @return {?} |
|||
*/ |
|||
function () { return _this.store.dispatch(new ConfigGetAppConfiguration()); })), tap((/** |
|||
* @return {?} |
|||
*/ |
|||
function () { |
|||
/** @type {?} */ |
|||
var redirectUrl = snq((/** |
|||
* @return {?} |
|||
*/ |
|||
function () { return window.history.state; })).redirectUrl || (_this.options || {}).redirectUrl || '/'; |
|||
_this.store.dispatch(new Navigate([redirectUrl])); |
|||
})), catchError((/** |
|||
* @param {?} err |
|||
* @return {?} |
|||
*/ |
|||
function (err) { |
|||
_this.toasterService.error(snq((/** |
|||
* @return {?} |
|||
*/ |
|||
function () { return err.error.error_description; }), 'An error occured.'), 'Error'); |
|||
return throwError(err); |
|||
})), finalize((/** |
|||
* @return {?} |
|||
*/ |
|||
function () { return (_this.inProgress = false); }))) |
|||
.subscribe(); |
|||
}; |
|||
LoginComponent.decorators = [ |
|||
{ type: Component, args: [{ |
|||
selector: 'abp-login', |
|||
template: "<div class=\"row\">\n <div class=\"col col-md-4 offset-md-4\">\n <abp-tenant-box></abp-tenant-box>\n\n <div class=\"abp-account-container\">\n <h2>{{ 'AbpAccount::Login' | abpLocalization }}</h2>\n <form [formGroup]=\"form\" (ngSubmit)=\"onSubmit()\" novalidate>\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 />\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 <div class=\"mt-2\">\n <button type=\"button\" name=\"Action\" value=\"Cancel\" class=\"btn btn-secondary\">\n {{ 'AbpAccount::Cancel' | abpLocalization }}\n </button>\n <button [disabled]=\"inProgress\" type=\"submit\" name=\"Action\" value=\"Login\" class=\"btn btn-primary ml-1\">\n {{ 'AbpAccount::Login' | abpLocalization }}\n </button>\n </div>\n </form>\n <div style=\"padding-top: 20px\">\n <a routerLink=\"/account/register\">{{ 'AbpAccount::Register' | abpLocalization }}</a>\n </div>\n </div>\n </div>\n</div>\n" |
|||
}] } |
|||
]; |
|||
/** @nocollapse */ |
|||
LoginComponent.ctorParameters = function () { return [ |
|||
{ type: FormBuilder }, |
|||
{ type: OAuthService }, |
|||
{ type: Store }, |
|||
{ type: ToasterService }, |
|||
{ type: undefined, decorators: [{ type: Optional }, { type: Inject, args: ['ACCOUNT_OPTIONS',] }] } |
|||
]; }; |
|||
return LoginComponent; |
|||
}()); |
|||
|
|||
/** |
|||
* @fileoverview added by tsickle |
|||
* @suppress {checkTypes,extraRequire,missingOverride,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc |
|||
*/ |
|||
var maxLength$1 = Validators.maxLength, minLength$1 = Validators.minLength, required$1 = Validators.required, email = Validators.email; |
|||
var RegisterComponent = /** @class */ (function () { |
|||
function RegisterComponent(fb, oauthService, router) { |
|||
this.fb = fb; |
|||
this.oauthService = oauthService; |
|||
this.router = router; |
|||
this.form = this.fb.group({ |
|||
username: ['', [required$1, maxLength$1(255)]], |
|||
password: [ |
|||
'', |
|||
[required$1, maxLength$1(32), minLength$1(6), validatePassword(['small', 'capital', 'number', 'special'])], |
|||
], |
|||
email: ['', [required$1, email]], |
|||
}); |
|||
} |
|||
/** |
|||
* @return {?} |
|||
*/ |
|||
RegisterComponent.prototype.onSubmit = /** |
|||
* @return {?} |
|||
*/ |
|||
function () { |
|||
if (this.form.invalid) |
|||
return; |
|||
}; |
|||
RegisterComponent.decorators = [ |
|||
{ type: Component, args: [{ |
|||
selector: 'abp-register', |
|||
template: "<div class=\"row\">\n <div class=\"col col-md-4 offset-md-4\">\n <abp-tenant-box></abp-tenant-box>\n\n <div class=\"abp-account-container\">\n <h2>Register</h2>\n <form [formGroup]=\"form\" (ngSubmit)=\"onSubmit()\" novalidate>\n <div class=\"form-group\">\n <label for=\"input-user-name\">User name</label><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\">Email address</label><span> * </span\n ><input type=\"email\" id=\"input-email-address\" class=\"form-control\" formControlName=\"email\" />\n </div>\n <div class=\"form-group\">\n <label for=\"input-password\">Password</label><span> * </span\n ><input type=\"password\" id=\"input-password\" class=\"form-control\" formControlName=\"password\" />\n </div>\n <button type=\"submit\" class=\"btn btn-primary\">Register</button>\n </form>\n </div>\n </div>\n</div>\n" |
|||
}] } |
|||
]; |
|||
/** @nocollapse */ |
|||
RegisterComponent.ctorParameters = function () { return [ |
|||
{ type: FormBuilder }, |
|||
{ type: OAuthService }, |
|||
{ type: Router } |
|||
]; }; |
|||
return RegisterComponent; |
|||
}()); |
|||
|
|||
/** |
|||
* @fileoverview added by tsickle |
|||
* @suppress {checkTypes,extraRequire,missingOverride,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc |
|||
*/ |
|||
/** @type {?} */ |
|||
var routes = [ |
|||
{ path: '', pathMatch: 'full', redirectTo: 'login' }, |
|||
{ |
|||
path: '', |
|||
component: DynamicLayoutComponent, |
|||
children: [{ path: 'login', component: LoginComponent }, { path: 'register', component: RegisterComponent }], |
|||
}, |
|||
]; |
|||
var AccountRoutingModule = /** @class */ (function () { |
|||
function AccountRoutingModule() { |
|||
} |
|||
AccountRoutingModule.decorators = [ |
|||
{ type: NgModule, args: [{ |
|||
imports: [RouterModule.forChild(routes)], |
|||
exports: [RouterModule], |
|||
},] } |
|||
]; |
|||
return AccountRoutingModule; |
|||
}()); |
|||
|
|||
/** |
|||
* @fileoverview added by tsickle |
|||
* @suppress {checkTypes,extraRequire,missingOverride,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc |
|||
*/ |
|||
var TenantBoxComponent = /** @class */ (function () { |
|||
function TenantBoxComponent(modalService, fb) { |
|||
this.modalService = modalService; |
|||
this.fb = fb; |
|||
} |
|||
/** |
|||
* @return {?} |
|||
*/ |
|||
TenantBoxComponent.prototype.createForm = /** |
|||
* @return {?} |
|||
*/ |
|||
function () { |
|||
this.form = this.fb.group({ |
|||
name: [this.selected.name], |
|||
}); |
|||
}; |
|||
/** |
|||
* @return {?} |
|||
*/ |
|||
TenantBoxComponent.prototype.openModal = /** |
|||
* @return {?} |
|||
*/ |
|||
function () { |
|||
this.createForm(); |
|||
this.modalService.open(this.modalContent); |
|||
}; |
|||
/** |
|||
* @return {?} |
|||
*/ |
|||
TenantBoxComponent.prototype.onSwitch = /** |
|||
* @return {?} |
|||
*/ |
|||
function () { |
|||
this.selected = (/** @type {?} */ ({})); |
|||
this.openModal(); |
|||
}; |
|||
/** |
|||
* @return {?} |
|||
*/ |
|||
TenantBoxComponent.prototype.save = /** |
|||
* @return {?} |
|||
*/ |
|||
function () { |
|||
this.selected = this.form.value; |
|||
this.modalService.dismissAll(); |
|||
}; |
|||
TenantBoxComponent.decorators = [ |
|||
{ type: Component, args: [{ |
|||
selector: 'abp-tenant-box', |
|||
template: "<div\n class=\"tenant-switch-box\"\n style=\"background-color: #eee; margin-bottom: 20px; color: #000; padding: 10px; text-align: center;\"\n>\n <span style=\"color: #666;\">{{ 'AbpUiMultiTenancy::Tenant' | abpLocalization }}: </span>\n <strong>\n <i>{{ selected?.name ? selected.name : ('AbpUiMultiTenancy::NotSelected' | abpLocalization) }}</i>\n </strong>\n (<a id=\"abp-tenant-switch-link\" style=\"color: #333; cursor: pointer\" (click)=\"onSwitch()\">{{\n 'AbpUiMultiTenancy::Switch' | abpLocalization\n }}</a\n >)\n</div>\n\n<ng-template #modalContent let-modal>\n <div class=\"modal-header\">\n <h5 class=\"modal-title\" id=\"modal-basic-title\">\n SwitchTenant\n </h5>\n <button type=\"button\" class=\"close\" aria-label=\"Close\" (click)=\"modal.dismiss()\">\n <span aria-hidden=\"true\">×</span>\n </button>\n </div>\n <form [formGroup]=\"form\" (ngSubmit)=\"save()\">\n <div class=\"modal-body\">\n <div class=\"mt-2\">\n <div class=\"form-group\">\n <label for=\"name\">{{ 'AbpUiMultiTenancy::Name' | abpLocalization }}</label>\n <input type=\"text\" id=\"name\" class=\"form-control\" formControlName=\"name\" />\n </div>\n <p>{{ 'AbpUiMultiTenancy::SwitchTenantHint' | abpLocalization }}</p>\n </div>\n </div>\n\n <div class=\"modal-footer\">\n <button type=\"button\" class=\"btn btn-secondary\" data-dismiss=\"modal\" (click)=\"modal.close()\">\n {{ 'AbpTenantManagement::Cancel' | abpLocalization }}\n </button>\n <button type=\"submit\" class=\"btn btn-primary\">\n <i class=\"fa fa-check mr-1\"></i> <span>{{ 'AbpTenantManagement::Save' | abpLocalization }}</span>\n </button>\n </div>\n </form>\n</ng-template>\n" |
|||
}] } |
|||
]; |
|||
/** @nocollapse */ |
|||
TenantBoxComponent.ctorParameters = function () { return [ |
|||
{ type: NgbModal }, |
|||
{ type: FormBuilder } |
|||
]; }; |
|||
TenantBoxComponent.propDecorators = { |
|||
modalContent: [{ type: ViewChild, args: ['modalContent', { static: false },] }] |
|||
}; |
|||
return TenantBoxComponent; |
|||
}()); |
|||
|
|||
/** |
|||
* @fileoverview added by tsickle |
|||
* @suppress {checkTypes,extraRequire,missingOverride,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc |
|||
*/ |
|||
/** |
|||
* @param {?} options |
|||
* @return {?} |
|||
*/ |
|||
function optionsFactory(options) { |
|||
return __assign({ redirectUrl: '/' }, options); |
|||
} |
|||
/** @type {?} */ |
|||
var ACCOUNT_OPTIONS = new InjectionToken('ACCOUNT_OPTIONS'); |
|||
|
|||
/** |
|||
* @fileoverview added by tsickle |
|||
* @suppress {checkTypes,extraRequire,missingOverride,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc |
|||
*/ |
|||
var AccountModule = /** @class */ (function () { |
|||
function AccountModule() { |
|||
} |
|||
/** |
|||
* @param {?=} options |
|||
* @return {?} |
|||
*/ |
|||
AccountModule.forRoot = /** |
|||
* @param {?=} options |
|||
* @return {?} |
|||
*/ |
|||
function (options) { |
|||
if (options === void 0) { options = (/** @type {?} */ ({})); } |
|||
return { |
|||
ngModule: AccountModule, |
|||
providers: [ |
|||
{ provide: ACCOUNT_OPTIONS, useValue: options }, |
|||
{ |
|||
provide: 'ACCOUNT_OPTIONS', |
|||
useFactory: optionsFactory, |
|||
deps: [ACCOUNT_OPTIONS], |
|||
}, |
|||
], |
|||
}; |
|||
}; |
|||
AccountModule.decorators = [ |
|||
{ type: NgModule, args: [{ |
|||
declarations: [LoginComponent, RegisterComponent, TenantBoxComponent], |
|||
imports: [CoreModule, AccountRoutingModule, ThemeSharedModule, TableModule, NgbDropdownModule, NgxValidateCoreModule], |
|||
exports: [], |
|||
},] } |
|||
]; |
|||
return AccountModule; |
|||
}()); |
|||
|
|||
/** |
|||
* @fileoverview added by tsickle |
|||
* @suppress {checkTypes,extraRequire,missingOverride,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc |
|||
*/ |
|||
/** @type {?} */ |
|||
var ACCOUNT_ROUTES = (/** @type {?} */ ([ |
|||
{ |
|||
name: 'Account', |
|||
path: 'account', |
|||
invisible: true, |
|||
layout: "application" /* application */, |
|||
children: [{ path: 'login', name: 'Login', order: 1 }, { path: 'register', name: 'Register', order: 2 }], |
|||
}, |
|||
])); |
|||
|
|||
export { ACCOUNT_OPTIONS, ACCOUNT_ROUTES, AccountModule, LoginComponent, RegisterComponent, optionsFactory, LoginComponent as ɵa, RegisterComponent as ɵc, TenantBoxComponent as ɵd, AccountRoutingModule as ɵe, optionsFactory as ɵf, ACCOUNT_OPTIONS as ɵg }; |
|||
//# sourceMappingURL=abp-ng.account.js.map
|
|||
File diff suppressed because one or more lines are too long
@ -0,0 +1,2 @@ |
|||
export declare class AccountRoutingModule { |
|||
} |
|||
@ -0,0 +1,5 @@ |
|||
import { ModuleWithProviders } from '@angular/core'; |
|||
import { Options } from './models/options'; |
|||
export declare class AccountModule { |
|||
static forRoot(options?: Options): ModuleWithProviders; |
|||
} |
|||
@ -0,0 +1,2 @@ |
|||
export * from './login/login.component'; |
|||
export * from './register/register.component'; |
|||
@ -0,0 +1,16 @@ |
|||
import { FormBuilder, FormGroup } from '@angular/forms'; |
|||
import { Store } from '@ngxs/store'; |
|||
import { OAuthService } from 'angular-oauth2-oidc'; |
|||
import { Options } from '../../models/options'; |
|||
import { ToasterService } from '@abp/ng.theme.shared'; |
|||
export declare class LoginComponent { |
|||
private fb; |
|||
private oauthService; |
|||
private store; |
|||
private toasterService; |
|||
private options; |
|||
form: FormGroup; |
|||
inProgress: boolean; |
|||
constructor(fb: FormBuilder, oauthService: OAuthService, store: Store, toasterService: ToasterService, options: Options); |
|||
onSubmit(): void; |
|||
} |
|||
@ -0,0 +1,11 @@ |
|||
import { FormBuilder, FormGroup } from '@angular/forms'; |
|||
import { Router } from '@angular/router'; |
|||
import { OAuthService } from 'angular-oauth2-oidc'; |
|||
export declare class RegisterComponent { |
|||
private fb; |
|||
private oauthService; |
|||
private router; |
|||
form: FormGroup; |
|||
constructor(fb: FormBuilder, oauthService: OAuthService, router: Router); |
|||
onSubmit(): void; |
|||
} |
|||
@ -0,0 +1,16 @@ |
|||
import { TemplateRef } from '@angular/core'; |
|||
import { FormBuilder, FormGroup } from '@angular/forms'; |
|||
import { NgbModal } from '@ng-bootstrap/ng-bootstrap'; |
|||
import { ABP } from '@abp/ng.core'; |
|||
export declare class TenantBoxComponent { |
|||
private modalService; |
|||
private fb; |
|||
constructor(modalService: NgbModal, fb: FormBuilder); |
|||
form: FormGroup; |
|||
selected: ABP.BasicItem; |
|||
modalContent: TemplateRef<any>; |
|||
createForm(): void; |
|||
openModal(): void; |
|||
onSwitch(): void; |
|||
save(): void; |
|||
} |
|||
@ -0,0 +1,2 @@ |
|||
import { ABP } from '@abp/ng.core'; |
|||
export declare const ACCOUNT_ROUTES: ABP.FullRoute[]; |
|||
@ -0,0 +1 @@ |
|||
export * from './options'; |
|||
@ -0,0 +1 @@ |
|||
export * from './options.token'; |
|||
@ -0,0 +1,6 @@ |
|||
import { InjectionToken } from '@angular/core'; |
|||
import { Options } from '../models/options'; |
|||
export declare function optionsFactory(options: Options): { |
|||
redirectUrl: string; |
|||
}; |
|||
export declare const ACCOUNT_OPTIONS: InjectionToken<{}>; |
|||
@ -0,0 +1,21 @@ |
|||
{ |
|||
"name": "@abp/ng.account", |
|||
"version": "0.7.6", |
|||
"dependencies": { |
|||
"@abp/ng.theme.shared": "^0.7.6", |
|||
"tslib": "^1.9.0" |
|||
}, |
|||
"publishConfig": { |
|||
"access": "public" |
|||
}, |
|||
"main": "bundles/abp-ng.account.umd.js", |
|||
"module": "fesm5/abp-ng.account.js", |
|||
"es2015": "fesm2015/abp-ng.account.js", |
|||
"esm5": "esm5/abp-ng.account.js", |
|||
"esm2015": "esm2015/abp-ng.account.js", |
|||
"fesm5": "fesm5/abp-ng.account.js", |
|||
"fesm2015": "fesm2015/abp-ng.account.js", |
|||
"typings": "abp-ng.account.d.ts", |
|||
"metadata": "abp-ng.account.metadata.json", |
|||
"sideEffects": false |
|||
} |
|||
@ -0,0 +1,5 @@ |
|||
export * from './lib/account.module'; |
|||
export * from './lib/components'; |
|||
export * from './lib/constants/routes'; |
|||
export * from './lib/tokens'; |
|||
export * from './lib/models'; |
|||
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
Loading…
Reference in new issue