mirror of https://github.com/abpframework/abp
parent
3ec673ddb3
commit
0872977fcf
@ -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