@abp/ng.theme.lepton-x 4.0.4 → 4.1.0-rc.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/account/account-layout/account-layout.module.d.ts +2 -2
- package/account/account-layout/components/auth-layout/auth-wrapper.component.d.ts +1 -1
- package/account/account-layout/components/tenant-box/tenant-box.component.d.ts +1 -1
- package/fesm2022/abp-ng.theme.lepton-x-account.mjs +31 -40
- package/fesm2022/abp-ng.theme.lepton-x-account.mjs.map +1 -1
- package/fesm2022/abp-ng.theme.lepton-x-layouts.mjs +65 -75
- package/fesm2022/abp-ng.theme.lepton-x-layouts.mjs.map +1 -1
- package/fesm2022/abp-ng.theme.lepton-x.mjs +58 -85
- package/fesm2022/abp-ng.theme.lepton-x.mjs.map +1 -1
- package/layouts/side-menu-layout/providers/layout.provider.d.ts +2 -3
- package/layouts/side-menu-layout/providers/nav-item.provider.d.ts +2 -3
- package/lib/providers/init-service.provider.d.ts +1 -3
- package/lib/providers/language.provider.d.ts +1 -9
- package/lib/providers/user-menu-service.provider.d.ts +2 -8
- package/lib/providers/user.provider.d.ts +1 -9
- package/package.json +6 -12
- package/esm2022/abp-ng.theme.lepton-x.mjs +0 -5
- package/esm2022/account/abp-ng.theme.lepton-x-account.mjs +0 -5
- package/esm2022/account/account-layout/account-layout.component.mjs +0 -14
- package/esm2022/account/account-layout/account-layout.module.mjs +0 -72
- package/esm2022/account/account-layout/components/auth-layout/auth-wrapper.component.mjs +0 -31
- package/esm2022/account/account-layout/components/tenant-box/tenant-box.component.mjs +0 -22
- package/esm2022/account/account-layout/index.mjs +0 -3
- package/esm2022/account/account-layout/services/account-layout.service.mjs +0 -80
- package/esm2022/account/public-api.mjs +0 -2
- package/esm2022/index.mjs +0 -9
- package/esm2022/layouts/abp-ng.theme.lepton-x-layouts.mjs +0 -5
- package/esm2022/layouts/empty-layout/empty-layout.component.mjs +0 -19
- package/esm2022/layouts/empty-layout/index.mjs +0 -2
- package/esm2022/layouts/public-api.mjs +0 -6
- package/esm2022/layouts/side-menu-layout/components/index.mjs +0 -5
- package/esm2022/layouts/side-menu-layout/components/language-selection/index.mjs +0 -2
- package/esm2022/layouts/side-menu-layout/components/language-selection/language-selection.component.mjs +0 -16
- package/esm2022/layouts/side-menu-layout/components/nav-items/index.mjs +0 -2
- package/esm2022/layouts/side-menu-layout/components/nav-items/nav-items.component.mjs +0 -19
- package/esm2022/layouts/side-menu-layout/components/navigate-to-login/navigate-to-login.component.mjs +0 -33
- package/esm2022/layouts/side-menu-layout/components/user-profile/index.mjs +0 -2
- package/esm2022/layouts/side-menu-layout/components/user-profile/user-profile.component.mjs +0 -16
- package/esm2022/layouts/side-menu-layout/index.mjs +0 -5
- package/esm2022/layouts/side-menu-layout/providers/index.mjs +0 -3
- package/esm2022/layouts/side-menu-layout/providers/layout.provider.mjs +0 -24
- package/esm2022/layouts/side-menu-layout/providers/nav-item.provider.mjs +0 -37
- package/esm2022/layouts/side-menu-layout/side-menu-application-layout/index.mjs +0 -2
- package/esm2022/layouts/side-menu-layout/side-menu-application-layout/side-menu-application-layout.component.mjs +0 -32
- package/esm2022/layouts/side-menu-layout/side-menu-layout.module.mjs +0 -81
- package/esm2022/lib/components/index.mjs +0 -2
- package/esm2022/lib/components/validation-error/index.mjs +0 -3
- package/esm2022/lib/components/validation-error/validation-error.component.mjs +0 -49
- package/esm2022/lib/components/validation-error/validation-error.module.mjs +0 -39
- package/esm2022/lib/enums/components.mjs +0 -2
- package/esm2022/lib/enums/index.mjs +0 -3
- package/esm2022/lib/enums/user-menu-items.mjs +0 -6
- package/esm2022/lib/providers/index.mjs +0 -6
- package/esm2022/lib/providers/init-service.provider.mjs +0 -16
- package/esm2022/lib/providers/language.provider.mjs +0 -15
- package/esm2022/lib/providers/translate.provider.mjs +0 -7
- package/esm2022/lib/providers/user-menu-service.provider.mjs +0 -38
- package/esm2022/lib/providers/user.provider.mjs +0 -15
- package/esm2022/lib/services/index.mjs +0 -4
- package/esm2022/lib/services/language.service.mjs +0 -43
- package/esm2022/lib/services/translate.service.mjs +0 -39
- package/esm2022/lib/services/user-profile.service.mjs +0 -63
- package/esm2022/lib/theme-lepton-x.module.mjs +0 -54
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import {
|
|
1
|
+
import { ModuleWithProviders } from '@angular/core';
|
|
2
2
|
import * as i0 from "@angular/core";
|
|
3
3
|
import * as i1 from "./account-layout.component";
|
|
4
4
|
import * as i2 from "@angular/router";
|
|
@@ -15,4 +15,4 @@ export declare class AccountLayoutModule {
|
|
|
15
15
|
static ɵmod: i0.ɵɵNgModuleDeclaration<AccountLayoutModule, [typeof i1.AccountLayoutComponent], [typeof i2.RouterModule, typeof i3.CoreModule, typeof i4.LpxSideMenuLayoutModule, typeof i5.ThemeSharedModule, typeof i6.PageAlertContainerModule, typeof i7.LanguageSelectionModule, typeof i8.TenantBoxComponent, typeof i9.AuthWrapperComponent], never>;
|
|
16
16
|
static ɵinj: i0.ɵɵInjectorDeclaration<AccountLayoutModule>;
|
|
17
17
|
}
|
|
18
|
-
export declare function initAccountLayout(
|
|
18
|
+
export declare function initAccountLayout(): void;
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { AccountLayoutService } from
|
|
1
|
+
import { AccountLayoutService } from '../../services/account-layout.service';
|
|
2
2
|
import * as i0 from "@angular/core";
|
|
3
3
|
export declare class AuthWrapperComponent {
|
|
4
4
|
service: AccountLayoutService;
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { AccountLayoutService } from
|
|
1
|
+
import { AccountLayoutService } from '../../services/account-layout.service';
|
|
2
2
|
import * as i0 from "@angular/core";
|
|
3
3
|
export declare class TenantBoxComponent {
|
|
4
4
|
service: AccountLayoutService;
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import * as i0 from '@angular/core';
|
|
2
|
-
import { inject, signal, Injectable, Component,
|
|
2
|
+
import { inject, signal, Injectable, Component, provideAppInitializer, NgModule } from '@angular/core';
|
|
3
3
|
import * as i1$1 from '@angular/router';
|
|
4
|
-
import { ActivatedRoute,
|
|
4
|
+
import { ActivatedRoute, RouterModule } from '@angular/router';
|
|
5
5
|
import * as i2$1 from '@volo/abp.ng.lepton-x.core';
|
|
6
6
|
import { PageAlertContainerModule } from '@volo/abp.ng.lepton-x.core';
|
|
7
7
|
import * as i1 from '@angular/common';
|
|
@@ -83,10 +83,10 @@ class AccountLayoutService {
|
|
|
83
83
|
messageLocalizationParams: [this.name()],
|
|
84
84
|
});
|
|
85
85
|
}
|
|
86
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "
|
|
87
|
-
static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "
|
|
86
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.0.7", ngImport: i0, type: AccountLayoutService, deps: [], target: i0.ɵɵFactoryTarget.Injectable }); }
|
|
87
|
+
static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "19.0.7", ngImport: i0, type: AccountLayoutService }); }
|
|
88
88
|
}
|
|
89
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "
|
|
89
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.0.7", ngImport: i0, type: AccountLayoutService, decorators: [{
|
|
90
90
|
type: Injectable
|
|
91
91
|
}] });
|
|
92
92
|
|
|
@@ -94,40 +94,39 @@ class TenantBoxComponent {
|
|
|
94
94
|
constructor() {
|
|
95
95
|
this.service = inject(AccountLayoutService);
|
|
96
96
|
}
|
|
97
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "
|
|
98
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "
|
|
97
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.0.7", ngImport: i0, type: TenantBoxComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
|
|
98
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "19.0.7", type: TenantBoxComponent, isStandalone: true, selector: "lpx-tenant-box", ngImport: i0, template: "@if ((service.currentTenant$ | async) || {}; as currentTenant) {\r\n <div class=\"card shadow-sm rounded mb-3\">\r\n <div class=\"card-body px-5\">\r\n <div class=\"row\">\r\n <div class=\"col\">\r\n <span style=\"font-size: 0.8em\" class=\"text-uppercase text-muted\">{{\r\n 'AbpUiMultiTenancy::Tenant' | abpLocalization\r\n }}</span\r\n ><br />\r\n <h6 class=\"m-0 d-inline-block\">\r\n <i>{{\r\n currentTenant.name ||\r\n ('AbpUiMultiTenancy::NotSelected' | abpLocalization)\r\n }}</i>\r\n </h6>\r\n </div>\r\n <div class=\"col-auto\">\r\n <a\r\n id=\"AbpTenantSwitchLink\"\r\n href=\"javascript:void(0);\"\r\n class=\"btn btn-sm mt-3 btn-outline-primary\"\r\n (click)=\"service.onSwitch()\"\r\n >{{ 'AbpUiMultiTenancy::Switch' | abpLocalization }}</a\r\n >\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n\r\n <abp-modal\r\n size=\"md\"\r\n [(visible)]=\"service.isModalVisible\"\r\n [busy]=\"service.modalBusy\"\r\n >\r\n <ng-template #abpHeader>\r\n <h5>Switch Tenant</h5>\r\n </ng-template>\r\n <ng-template #abpBody>\r\n <form (ngSubmit)=\"service.save()\">\r\n <div class=\"mt-2\">\r\n <div class=\"form-group\">\r\n <label for=\"name\">{{\r\n 'AbpUiMultiTenancy::Name' | abpLocalization\r\n }}</label>\r\n <input\r\n [(ngModel)]=\"service.name\"\r\n type=\"text\"\r\n id=\"name\"\r\n name=\"tenant\"\r\n class=\"form-control\"\r\n autofocus\r\n />\r\n </div>\r\n <p>{{ 'AbpUiMultiTenancy::SwitchTenantHint' | abpLocalization }}</p>\r\n </div>\r\n </form>\r\n </ng-template>\r\n <ng-template #abpFooter>\r\n <button abpClose type=\"button\" class=\"btn btn-outline-primary\">\r\n {{ 'AbpTenantManagement::Cancel' | abpLocalization }}\r\n </button>\r\n <abp-button\r\n type=\"abp-button\"\r\n iconClass=\"fa fa-check\"\r\n (click)=\"service.save()\"\r\n [disabled]=\"currentTenant?.name === service.name\"\r\n >\r\n <span>{{ 'AbpTenantManagement::Save' | abpLocalization }}</span>\r\n </abp-button>\r\n </ng-template>\r\n </abp-modal>\r\n}\r\n", dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "pipe", type: i1.AsyncPipe, name: "async" }, { kind: "ngmodule", type: CoreModule }, { kind: "directive", type: i2.ɵNgNoValidate, selector: "form:not([ngNoForm]):not([ngNativeValidate])" }, { kind: "directive", type: i2.DefaultValueAccessor, selector: "input:not([type=checkbox])[formControlName],textarea[formControlName],input:not([type=checkbox])[formControl],textarea[formControl],input:not([type=checkbox])[ngModel],textarea[ngModel],[ngDefaultControl]" }, { kind: "directive", type: i2.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i2.NgControlStatusGroup, selector: "[formGroupName],[formArrayName],[ngModelGroup],[formGroup],form:not([ngNoForm]),[ngForm]" }, { kind: "directive", type: i2.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }, { kind: "directive", type: i2.NgForm, selector: "form:not([ngNoForm]):not([formGroup]),ng-form,[ngForm]", inputs: ["ngFormOptions"], outputs: ["ngSubmit"], exportAs: ["ngForm"] }, { kind: "pipe", type: i3.LocalizationPipe, name: "abpLocalization" }, { kind: "directive", type: i3.AutofocusDirective, selector: "[autofocus]", inputs: ["autofocus"] }, { kind: "ngmodule", type: ThemeSharedModule }, { kind: "component", type: i4.ButtonComponent, selector: "abp-button", inputs: ["buttonId", "buttonClass", "buttonType", "formName", "iconClass", "loading", "disabled", "attributes"], outputs: ["click", "focus", "blur", "abpClick", "abpFocus", "abpBlur"] }, { kind: "component", type: i4.ModalComponent, selector: "abp-modal", inputs: ["visible", "busy", "options", "suppressUnsavedChangesWarning"], outputs: ["visibleChange", "init", "appear", "disappear"] }, { kind: "directive", type: i4.ModalCloseDirective, selector: "[abpClose]" }] }); }
|
|
99
99
|
}
|
|
100
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "
|
|
100
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.0.7", ngImport: i0, type: TenantBoxComponent, decorators: [{
|
|
101
101
|
type: Component,
|
|
102
|
-
args: [{ selector: 'lpx-tenant-box',
|
|
102
|
+
args: [{ selector: 'lpx-tenant-box', imports: [CommonModule, CoreModule, ThemeSharedModule], template: "@if ((service.currentTenant$ | async) || {}; as currentTenant) {\r\n <div class=\"card shadow-sm rounded mb-3\">\r\n <div class=\"card-body px-5\">\r\n <div class=\"row\">\r\n <div class=\"col\">\r\n <span style=\"font-size: 0.8em\" class=\"text-uppercase text-muted\">{{\r\n 'AbpUiMultiTenancy::Tenant' | abpLocalization\r\n }}</span\r\n ><br />\r\n <h6 class=\"m-0 d-inline-block\">\r\n <i>{{\r\n currentTenant.name ||\r\n ('AbpUiMultiTenancy::NotSelected' | abpLocalization)\r\n }}</i>\r\n </h6>\r\n </div>\r\n <div class=\"col-auto\">\r\n <a\r\n id=\"AbpTenantSwitchLink\"\r\n href=\"javascript:void(0);\"\r\n class=\"btn btn-sm mt-3 btn-outline-primary\"\r\n (click)=\"service.onSwitch()\"\r\n >{{ 'AbpUiMultiTenancy::Switch' | abpLocalization }}</a\r\n >\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n\r\n <abp-modal\r\n size=\"md\"\r\n [(visible)]=\"service.isModalVisible\"\r\n [busy]=\"service.modalBusy\"\r\n >\r\n <ng-template #abpHeader>\r\n <h5>Switch Tenant</h5>\r\n </ng-template>\r\n <ng-template #abpBody>\r\n <form (ngSubmit)=\"service.save()\">\r\n <div class=\"mt-2\">\r\n <div class=\"form-group\">\r\n <label for=\"name\">{{\r\n 'AbpUiMultiTenancy::Name' | abpLocalization\r\n }}</label>\r\n <input\r\n [(ngModel)]=\"service.name\"\r\n type=\"text\"\r\n id=\"name\"\r\n name=\"tenant\"\r\n class=\"form-control\"\r\n autofocus\r\n />\r\n </div>\r\n <p>{{ 'AbpUiMultiTenancy::SwitchTenantHint' | abpLocalization }}</p>\r\n </div>\r\n </form>\r\n </ng-template>\r\n <ng-template #abpFooter>\r\n <button abpClose type=\"button\" class=\"btn btn-outline-primary\">\r\n {{ 'AbpTenantManagement::Cancel' | abpLocalization }}\r\n </button>\r\n <abp-button\r\n type=\"abp-button\"\r\n iconClass=\"fa fa-check\"\r\n (click)=\"service.save()\"\r\n [disabled]=\"currentTenant?.name === service.name\"\r\n >\r\n <span>{{ 'AbpTenantManagement::Save' | abpLocalization }}</span>\r\n </abp-button>\r\n </ng-template>\r\n </abp-modal>\r\n}\r\n" }]
|
|
103
103
|
}] });
|
|
104
104
|
|
|
105
105
|
class AuthWrapperComponent {
|
|
106
106
|
constructor() {
|
|
107
107
|
this.service = inject(AccountLayoutService);
|
|
108
108
|
}
|
|
109
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "
|
|
110
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "
|
|
109
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.0.7", ngImport: i0, type: AuthWrapperComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
|
|
110
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "19.0.7", type: AuthWrapperComponent, isStandalone: true, selector: "lpx-auth-wrapper", providers: [AccountLayoutService], ngImport: i0, template: "<div class=\"row\">\r\n <div class=\"mx-auto col col-md-5\">\r\n @if (\r\n (service.isMultiTenancyEnabled$ | async) && service.isTenantBoxVisible\r\n ) {\r\n <lpx-tenant-box\r\n *abpReplaceableTemplate=\"{ componentKey: service.tenantBoxKey }\"\r\n ></lpx-tenant-box>\r\n }\r\n\r\n <div class=\"abp-account-container\">\r\n @if (service.enableLocalLogin$ | async) {\r\n <div class=\"card mt-3 shadow-sm rounded\">\r\n <div class=\"card-body p-5\">\r\n <lpx-language-selection class=\"float-end\"></lpx-language-selection>\r\n <ng-content></ng-content>\r\n </div>\r\n </div>\r\n } @else {\r\n <div class=\"alert alert-warning\">\r\n <strong>{{\r\n 'AbpAccount::InvalidLoginRequest' | abpLocalization\r\n }}</strong>\r\n {{\r\n 'AbpAccount::ThereAreNoLoginSchemesConfiguredForThisClient'\r\n | abpLocalization\r\n }}\r\n </div>\r\n }\r\n </div>\r\n </div>\r\n</div>\r\n", dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "pipe", type: i1.AsyncPipe, name: "async" }, { kind: "ngmodule", type: CoreModule }, { kind: "pipe", type: i3.LocalizationPipe, name: "abpLocalization" }, { kind: "directive", type: i3.ReplaceableTemplateDirective, selector: "[abpReplaceableTemplate]", inputs: ["abpReplaceableTemplate"] }, { kind: "ngmodule", type: ThemeSharedModule }, { kind: "component", type: TenantBoxComponent, selector: "lpx-tenant-box" }, { kind: "ngmodule", type: LanguageSelectionModule }, { kind: "component", type: i3$1.LanguageSelectionComponent, selector: "lpx-language-selection" }] }); }
|
|
111
111
|
}
|
|
112
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "
|
|
112
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.0.7", ngImport: i0, type: AuthWrapperComponent, decorators: [{
|
|
113
113
|
type: Component,
|
|
114
|
-
args: [{ selector: 'lpx-auth-wrapper',
|
|
114
|
+
args: [{ selector: 'lpx-auth-wrapper', imports: [
|
|
115
115
|
CommonModule,
|
|
116
116
|
CoreModule,
|
|
117
117
|
ThemeSharedModule,
|
|
118
118
|
TenantBoxComponent,
|
|
119
119
|
LanguageSelectionModule,
|
|
120
|
-
RouterOutlet
|
|
121
120
|
], providers: [AccountLayoutService], template: "<div class=\"row\">\r\n <div class=\"mx-auto col col-md-5\">\r\n @if (\r\n (service.isMultiTenancyEnabled$ | async) && service.isTenantBoxVisible\r\n ) {\r\n <lpx-tenant-box\r\n *abpReplaceableTemplate=\"{ componentKey: service.tenantBoxKey }\"\r\n ></lpx-tenant-box>\r\n }\r\n\r\n <div class=\"abp-account-container\">\r\n @if (service.enableLocalLogin$ | async) {\r\n <div class=\"card mt-3 shadow-sm rounded\">\r\n <div class=\"card-body p-5\">\r\n <lpx-language-selection class=\"float-end\"></lpx-language-selection>\r\n <ng-content></ng-content>\r\n </div>\r\n </div>\r\n } @else {\r\n <div class=\"alert alert-warning\">\r\n <strong>{{\r\n 'AbpAccount::InvalidLoginRequest' | abpLocalization\r\n }}</strong>\r\n {{\r\n 'AbpAccount::ThereAreNoLoginSchemesConfiguredForThisClient'\r\n | abpLocalization\r\n }}\r\n </div>\r\n }\r\n </div>\r\n </div>\r\n</div>\r\n" }]
|
|
122
121
|
}] });
|
|
123
122
|
|
|
124
123
|
class AccountLayoutComponent {
|
|
125
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "
|
|
126
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "
|
|
124
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.0.7", ngImport: i0, type: AccountLayoutComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
|
|
125
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "19.0.7", type: AccountLayoutComponent, isStandalone: false, selector: "abp-account-layout", ngImport: i0, template: "<div class=\"container d-flex flex-column vh-100 justify-content-center\">\r\n <abp-page-alert-container></abp-page-alert-container>\r\n <lpx-auth-wrapper>\r\n <router-outlet></router-outlet>\r\n </lpx-auth-wrapper>\r\n</div>\r\n", dependencies: [{ kind: "directive", type: i1$1.RouterOutlet, selector: "router-outlet", inputs: ["name", "routerOutletData"], outputs: ["activate", "deactivate", "attach", "detach"], exportAs: ["outlet"] }, { kind: "component", type: i2$1.PageAlertContainerComponent, selector: "abp-page-alert-container" }, { kind: "component", type: AuthWrapperComponent, selector: "lpx-auth-wrapper" }] }); }
|
|
127
126
|
}
|
|
128
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "
|
|
127
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.0.7", ngImport: i0, type: AccountLayoutComponent, decorators: [{
|
|
129
128
|
type: Component,
|
|
130
|
-
args: [{ selector: 'abp-account-layout', template: "<div class=\"container d-flex flex-column vh-100 justify-content-center\">\r\n <abp-page-alert-container></abp-page-alert-container>\r\n <lpx-auth-wrapper>\r\n <router-outlet></router-outlet>\r\n </lpx-auth-wrapper>\r\n</div>\r\n" }]
|
|
129
|
+
args: [{ standalone: false, selector: 'abp-account-layout', template: "<div class=\"container d-flex flex-column vh-100 justify-content-center\">\r\n <abp-page-alert-container></abp-page-alert-container>\r\n <lpx-auth-wrapper>\r\n <router-outlet></router-outlet>\r\n </lpx-auth-wrapper>\r\n</div>\r\n" }]
|
|
131
130
|
}] });
|
|
132
131
|
|
|
133
132
|
class AccountLayoutModule {
|
|
@@ -135,17 +134,14 @@ class AccountLayoutModule {
|
|
|
135
134
|
return {
|
|
136
135
|
ngModule: AccountLayoutModule,
|
|
137
136
|
providers: [
|
|
138
|
-
{
|
|
139
|
-
|
|
140
|
-
|
|
141
|
-
deps: [Injector],
|
|
142
|
-
multi: true,
|
|
143
|
-
},
|
|
137
|
+
provideAppInitializer(() => {
|
|
138
|
+
initAccountLayout();
|
|
139
|
+
}),
|
|
144
140
|
],
|
|
145
141
|
};
|
|
146
142
|
}
|
|
147
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "
|
|
148
|
-
static { this.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "
|
|
143
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.0.7", ngImport: i0, type: AccountLayoutModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule }); }
|
|
144
|
+
static { this.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "19.0.7", ngImport: i0, type: AccountLayoutModule, declarations: [AccountLayoutComponent], imports: [RouterModule,
|
|
149
145
|
CoreModule,
|
|
150
146
|
LpxSideMenuLayoutModule,
|
|
151
147
|
ThemeSharedModule,
|
|
@@ -153,7 +149,7 @@ class AccountLayoutModule {
|
|
|
153
149
|
LanguageSelectionModule,
|
|
154
150
|
TenantBoxComponent,
|
|
155
151
|
AuthWrapperComponent] }); }
|
|
156
|
-
static { this.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "
|
|
152
|
+
static { this.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "19.0.7", ngImport: i0, type: AccountLayoutModule, imports: [RouterModule,
|
|
157
153
|
CoreModule,
|
|
158
154
|
LpxSideMenuLayoutModule,
|
|
159
155
|
ThemeSharedModule,
|
|
@@ -162,12 +158,10 @@ class AccountLayoutModule {
|
|
|
162
158
|
TenantBoxComponent,
|
|
163
159
|
AuthWrapperComponent] }); }
|
|
164
160
|
}
|
|
165
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "
|
|
161
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.0.7", ngImport: i0, type: AccountLayoutModule, decorators: [{
|
|
166
162
|
type: NgModule,
|
|
167
163
|
args: [{
|
|
168
|
-
declarations: [
|
|
169
|
-
AccountLayoutComponent,
|
|
170
|
-
],
|
|
164
|
+
declarations: [AccountLayoutComponent],
|
|
171
165
|
imports: [
|
|
172
166
|
RouterModule,
|
|
173
167
|
CoreModule,
|
|
@@ -180,15 +174,12 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.1.5", ngImpor
|
|
|
180
174
|
],
|
|
181
175
|
}]
|
|
182
176
|
}] });
|
|
183
|
-
function initAccountLayout(
|
|
184
|
-
|
|
185
|
-
|
|
186
|
-
|
|
187
|
-
|
|
188
|
-
|
|
189
|
-
});
|
|
190
|
-
}
|
|
191
|
-
return init;
|
|
177
|
+
function initAccountLayout() {
|
|
178
|
+
const replaceableComponents = inject(ReplaceableComponentsService);
|
|
179
|
+
replaceableComponents.add({
|
|
180
|
+
key: 'Theme.AccountLayoutComponent',
|
|
181
|
+
component: AccountLayoutComponent,
|
|
182
|
+
});
|
|
192
183
|
}
|
|
193
184
|
|
|
194
185
|
/**
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"abp-ng.theme.lepton-x-account.mjs","sources":["../../../../libs/abp-lepton-x/account/src/account-layout/services/account-layout.service.ts","../../../../libs/abp-lepton-x/account/src/account-layout/components/tenant-box/tenant-box.component.ts","../../../../libs/abp-lepton-x/account/src/account-layout/components/tenant-box/tenant-box.component.html","../../../../libs/abp-lepton-x/account/src/account-layout/components/auth-layout/auth-wrapper.component.ts","../../../../libs/abp-lepton-x/account/src/account-layout/components/auth-layout/auth-wrapper.component.html","../../../../libs/abp-lepton-x/account/src/account-layout/account-layout.component.ts","../../../../libs/abp-lepton-x/account/src/account-layout/account-layout.component.html","../../../../libs/abp-lepton-x/account/src/account-layout/account-layout.module.ts","../../../../libs/abp-lepton-x/account/src/abp-ng.theme.lepton-x-account.ts"],"sourcesContent":["import {inject, Injectable, signal} from '@angular/core';\r\nimport {finalize} from \"rxjs\";\r\nimport {map} from \"rxjs/operators\";\r\nimport {ActivatedRoute} from \"@angular/router\";\r\nimport {\r\n AbpTenantService,\r\n ConfigStateService,\r\n CurrentTenantDto,\r\n MultiTenancyService,\r\n SessionStateService\r\n} from \"@abp/ng.core\";\r\nimport {ToasterService} from \"@abp/ng.theme.shared\";\r\n\r\n@Injectable()\r\nexport class AccountLayoutService {\r\n\r\n private configState = inject(ConfigStateService);\r\n private multiTenancy = inject(MultiTenancyService);\r\n private toasterService = inject(ToasterService);\r\n private tenantService = inject(AbpTenantService);\r\n private sessionState = inject(SessionStateService);\r\n\r\n\r\n isMultiTenancyEnabled$ = this.configState.getDeep$('multiTenancy.isEnabled');\r\n enableLocalLogin$ = this.configState.getSetting$('Abp.Account.EnableLocalLogin')\r\n .pipe(map(value => value?.toLowerCase() !== 'false'));\r\n\r\n tenantBoxKey = 'Account.TenantBoxComponent';\r\n route: ActivatedRoute = inject(ActivatedRoute);\r\n\r\n\r\n get isTenantBoxVisibleForCurrentRoute() {\r\n return this.getMostInnerChild().data.tenantBoxVisible ?? true;\r\n }\r\n\r\n get isTenantBoxVisible() {\r\n return this.isTenantBoxVisibleForCurrentRoute && this.multiTenancy.isTenantBoxVisible;\r\n }\r\n\r\n\r\n private getMostInnerChild() {\r\n let child = this.route.snapshot;\r\n let depth = 0;\r\n const depthLimit = 10;\r\n while (child.firstChild && depth < depthLimit) {\r\n child = child.firstChild;\r\n depth++;\r\n }\r\n return child;\r\n }\r\n\r\n //\r\n currentTenant$ = this.sessionState.getTenant$();\r\n name = signal('')\r\n isModalVisible!: boolean;\r\n modalBusy!: boolean;\r\n\r\n onSwitch() {\r\n const tenant = this.sessionState.getTenant();\r\n this.name.set(tenant?.name || '')\r\n this.isModalVisible = true;\r\n }\r\n\r\n save() {\r\n const name = this.name()\r\n if (!name) {\r\n this.setTenant(null);\r\n this.isModalVisible = false;\r\n return;\r\n }\r\n\r\n this.modalBusy = true;\r\n this.tenantService\r\n .findTenantByName(name)\r\n .pipe(finalize(() => (this.modalBusy = false)))\r\n .subscribe(({success, tenantId: id, ...tenant}) => {\r\n if (!success) {\r\n this.showError();\r\n return;\r\n }\r\n\r\n this.setTenant({...tenant, id, isAvailable: true});\r\n this.isModalVisible = false;\r\n });\r\n }\r\n\r\n private setTenant(tenant: CurrentTenantDto | null) {\r\n this.sessionState.setTenant(tenant);\r\n this.configState.refreshAppState();\r\n }\r\n\r\n private showError() {\r\n this.toasterService.error('AbpUiMultiTenancy::GivenTenantIsNotAvailable', 'AbpUi::Error', {\r\n messageLocalizationParams: [this.name()],\r\n });\r\n }\r\n\r\n}\r\n\r\n\r\n","import {Component, inject} from '@angular/core';\r\nimport {CommonModule} from '@angular/common';\r\nimport {CoreModule} from '@abp/ng.core';\r\nimport {ThemeSharedModule} from '@abp/ng.theme.shared';\r\nimport {AccountLayoutService} from \"../../services/account-layout.service\";\r\n\r\n@Component({\r\n // eslint-disable-next-line @angular-eslint/component-selector\r\n selector: 'lpx-tenant-box',\r\n templateUrl: './tenant-box.component.html',\r\n standalone: true,\r\n imports: [CommonModule, CoreModule, ThemeSharedModule],\r\n})\r\nexport class TenantBoxComponent {\r\n public service = inject(AccountLayoutService)\r\n}\r\n","@if ((service.currentTenant$ | async) || {}; as currentTenant) {\r\n <div class=\"card shadow-sm rounded mb-3\">\r\n <div class=\"card-body px-5\">\r\n <div class=\"row\">\r\n <div class=\"col\">\r\n <span style=\"font-size: 0.8em\" class=\"text-uppercase text-muted\">{{\r\n 'AbpUiMultiTenancy::Tenant' | abpLocalization\r\n }}</span\r\n ><br />\r\n <h6 class=\"m-0 d-inline-block\">\r\n <i>{{\r\n currentTenant.name ||\r\n ('AbpUiMultiTenancy::NotSelected' | abpLocalization)\r\n }}</i>\r\n </h6>\r\n </div>\r\n <div class=\"col-auto\">\r\n <a\r\n id=\"AbpTenantSwitchLink\"\r\n href=\"javascript:void(0);\"\r\n class=\"btn btn-sm mt-3 btn-outline-primary\"\r\n (click)=\"service.onSwitch()\"\r\n >{{ 'AbpUiMultiTenancy::Switch' | abpLocalization }}</a\r\n >\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n\r\n <abp-modal\r\n size=\"md\"\r\n [(visible)]=\"service.isModalVisible\"\r\n [busy]=\"service.modalBusy\"\r\n >\r\n <ng-template #abpHeader>\r\n <h5>Switch Tenant</h5>\r\n </ng-template>\r\n <ng-template #abpBody>\r\n <form (ngSubmit)=\"service.save()\">\r\n <div class=\"mt-2\">\r\n <div class=\"form-group\">\r\n <label for=\"name\">{{\r\n 'AbpUiMultiTenancy::Name' | abpLocalization\r\n }}</label>\r\n <input\r\n [(ngModel)]=\"service.name\"\r\n type=\"text\"\r\n id=\"name\"\r\n name=\"tenant\"\r\n class=\"form-control\"\r\n autofocus\r\n />\r\n </div>\r\n <p>{{ 'AbpUiMultiTenancy::SwitchTenantHint' | abpLocalization }}</p>\r\n </div>\r\n </form>\r\n </ng-template>\r\n <ng-template #abpFooter>\r\n <button abpClose type=\"button\" class=\"btn btn-outline-primary\">\r\n {{ 'AbpTenantManagement::Cancel' | abpLocalization }}\r\n </button>\r\n <abp-button\r\n type=\"abp-button\"\r\n iconClass=\"fa fa-check\"\r\n (click)=\"service.save()\"\r\n [disabled]=\"currentTenant?.name === service.name\"\r\n >\r\n <span>{{ 'AbpTenantManagement::Save' | abpLocalization }}</span>\r\n </abp-button>\r\n </ng-template>\r\n </abp-modal>\r\n}\r\n","import {Component, inject} from '@angular/core';\r\nimport {AuthWrapperService} from '@abp/ng.account.core';\r\nimport {CommonModule} from '@angular/common';\r\nimport {TenantBoxComponent} from '../tenant-box/tenant-box.component';\r\nimport {LanguageSelectionModule} from '@volo/ngx-lepton-x.lite';\r\nimport {CoreModule, SubscriptionService} from '@abp/ng.core';\r\nimport {ThemeSharedModule} from '@abp/ng.theme.shared';\r\nimport {RouterOutlet} from '@angular/router';\r\nimport {AccountLayoutService} from \"../../services/account-layout.service\";\r\n\r\n@Component({\r\n // eslint-disable-next-line @angular-eslint/component-selector\r\n selector: 'lpx-auth-wrapper',\r\n templateUrl: './auth-wrapper.component.html',\r\n standalone: true,\r\n imports: [\r\n CommonModule,\r\n CoreModule,\r\n ThemeSharedModule,\r\n TenantBoxComponent,\r\n LanguageSelectionModule,\r\n RouterOutlet\r\n ],\r\n providers: [AccountLayoutService],\r\n})\r\nexport class AuthWrapperComponent {\r\n service = inject(AccountLayoutService)\r\n}\r\n","<div class=\"row\">\r\n <div class=\"mx-auto col col-md-5\">\r\n @if (\r\n (service.isMultiTenancyEnabled$ | async) && service.isTenantBoxVisible\r\n ) {\r\n <lpx-tenant-box\r\n *abpReplaceableTemplate=\"{ componentKey: service.tenantBoxKey }\"\r\n ></lpx-tenant-box>\r\n }\r\n\r\n <div class=\"abp-account-container\">\r\n @if (service.enableLocalLogin$ | async) {\r\n <div class=\"card mt-3 shadow-sm rounded\">\r\n <div class=\"card-body p-5\">\r\n <lpx-language-selection class=\"float-end\"></lpx-language-selection>\r\n <ng-content></ng-content>\r\n </div>\r\n </div>\r\n } @else {\r\n <div class=\"alert alert-warning\">\r\n <strong>{{\r\n 'AbpAccount::InvalidLoginRequest' | abpLocalization\r\n }}</strong>\r\n {{\r\n 'AbpAccount::ThereAreNoLoginSchemesConfiguredForThisClient'\r\n | abpLocalization\r\n }}\r\n </div>\r\n }\r\n </div>\r\n </div>\r\n</div>\r\n","import {Component} from '@angular/core';\r\n\r\n@Component({\r\n selector: 'abp-account-layout',\r\n templateUrl: './account-layout.component.html'\r\n})\r\nexport class AccountLayoutComponent {}\r\n","<div class=\"container d-flex flex-column vh-100 justify-content-center\">\r\n <abp-page-alert-container></abp-page-alert-container>\r\n <lpx-auth-wrapper>\r\n <router-outlet></router-outlet>\r\n </lpx-auth-wrapper>\r\n</div>\r\n","import {\r\n APP_INITIALIZER,\r\n Injector,\r\n ModuleWithProviders,\r\n NgModule,\r\n} from '@angular/core';\r\nimport { AccountLayoutComponent } from './account-layout.component';\r\nimport { TenantBoxComponent } from './components/tenant-box/tenant-box.component';\r\nimport { AuthWrapperComponent } from './components/auth-layout/auth-wrapper.component';\r\nimport { CoreModule, ReplaceableComponentsService } from '@abp/ng.core';\r\nimport { LpxSideMenuLayoutModule } from '@volo/ngx-lepton-x.lite/layouts';\r\nimport { LanguageSelectionModule } from '@volo/ngx-lepton-x.lite';\r\nimport { RouterModule } from '@angular/router';\r\nimport { ThemeSharedModule } from '@abp/ng.theme.shared';\r\nimport { PageAlertContainerModule } from '@volo/abp.ng.lepton-x.core';\r\n\r\n@NgModule({\r\n declarations: [\r\n AccountLayoutComponent,\r\n ],\r\n imports: [\r\n RouterModule,\r\n CoreModule,\r\n LpxSideMenuLayoutModule,\r\n ThemeSharedModule,\r\n PageAlertContainerModule,\r\n LanguageSelectionModule,\r\n TenantBoxComponent,\r\n AuthWrapperComponent,\r\n ],\r\n})\r\nexport class AccountLayoutModule {\r\n static forRoot(): ModuleWithProviders<AccountLayoutModule> {\r\n return {\r\n ngModule: AccountLayoutModule,\r\n providers: [\r\n {\r\n provide: APP_INITIALIZER,\r\n useFactory: initAccountLayout,\r\n deps: [Injector],\r\n multi: true,\r\n },\r\n ],\r\n };\r\n }\r\n}\r\n\r\nexport function initAccountLayout(injector: Injector) {\r\n function init() {\r\n const replaceableComponents = injector.get(ReplaceableComponentsService);\r\n replaceableComponents.add({\r\n key: 'Theme.AccountLayoutComponent',\r\n component: AccountLayoutComponent,\r\n });\r\n }\r\n\r\n return init;\r\n}\r\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public-api';\n"],"names":["i2","i3","i1","i3.AuthWrapperComponent"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"abp-ng.theme.lepton-x-account.mjs","sources":["../../../../libs/abp-lepton-x/account/src/account-layout/services/account-layout.service.ts","../../../../libs/abp-lepton-x/account/src/account-layout/components/tenant-box/tenant-box.component.ts","../../../../libs/abp-lepton-x/account/src/account-layout/components/tenant-box/tenant-box.component.html","../../../../libs/abp-lepton-x/account/src/account-layout/components/auth-layout/auth-wrapper.component.ts","../../../../libs/abp-lepton-x/account/src/account-layout/components/auth-layout/auth-wrapper.component.html","../../../../libs/abp-lepton-x/account/src/account-layout/account-layout.component.ts","../../../../libs/abp-lepton-x/account/src/account-layout/account-layout.component.html","../../../../libs/abp-lepton-x/account/src/account-layout/account-layout.module.ts","../../../../libs/abp-lepton-x/account/src/abp-ng.theme.lepton-x-account.ts"],"sourcesContent":["import {inject, Injectable, signal} from '@angular/core';\r\nimport {finalize} from \"rxjs\";\r\nimport {map} from \"rxjs/operators\";\r\nimport {ActivatedRoute} from \"@angular/router\";\r\nimport {\r\n AbpTenantService,\r\n ConfigStateService,\r\n CurrentTenantDto,\r\n MultiTenancyService,\r\n SessionStateService\r\n} from \"@abp/ng.core\";\r\nimport {ToasterService} from \"@abp/ng.theme.shared\";\r\n\r\n@Injectable()\r\nexport class AccountLayoutService {\r\n\r\n private configState = inject(ConfigStateService);\r\n private multiTenancy = inject(MultiTenancyService);\r\n private toasterService = inject(ToasterService);\r\n private tenantService = inject(AbpTenantService);\r\n private sessionState = inject(SessionStateService);\r\n\r\n\r\n isMultiTenancyEnabled$ = this.configState.getDeep$('multiTenancy.isEnabled');\r\n enableLocalLogin$ = this.configState.getSetting$('Abp.Account.EnableLocalLogin')\r\n .pipe(map(value => value?.toLowerCase() !== 'false'));\r\n\r\n tenantBoxKey = 'Account.TenantBoxComponent';\r\n route: ActivatedRoute = inject(ActivatedRoute);\r\n\r\n\r\n get isTenantBoxVisibleForCurrentRoute() {\r\n return this.getMostInnerChild().data.tenantBoxVisible ?? true;\r\n }\r\n\r\n get isTenantBoxVisible() {\r\n return this.isTenantBoxVisibleForCurrentRoute && this.multiTenancy.isTenantBoxVisible;\r\n }\r\n\r\n\r\n private getMostInnerChild() {\r\n let child = this.route.snapshot;\r\n let depth = 0;\r\n const depthLimit = 10;\r\n while (child.firstChild && depth < depthLimit) {\r\n child = child.firstChild;\r\n depth++;\r\n }\r\n return child;\r\n }\r\n\r\n //\r\n currentTenant$ = this.sessionState.getTenant$();\r\n name = signal('')\r\n isModalVisible!: boolean;\r\n modalBusy!: boolean;\r\n\r\n onSwitch() {\r\n const tenant = this.sessionState.getTenant();\r\n this.name.set(tenant?.name || '')\r\n this.isModalVisible = true;\r\n }\r\n\r\n save() {\r\n const name = this.name()\r\n if (!name) {\r\n this.setTenant(null);\r\n this.isModalVisible = false;\r\n return;\r\n }\r\n\r\n this.modalBusy = true;\r\n this.tenantService\r\n .findTenantByName(name)\r\n .pipe(finalize(() => (this.modalBusy = false)))\r\n .subscribe(({success, tenantId: id, ...tenant}) => {\r\n if (!success) {\r\n this.showError();\r\n return;\r\n }\r\n\r\n this.setTenant({...tenant, id, isAvailable: true});\r\n this.isModalVisible = false;\r\n });\r\n }\r\n\r\n private setTenant(tenant: CurrentTenantDto | null) {\r\n this.sessionState.setTenant(tenant);\r\n this.configState.refreshAppState();\r\n }\r\n\r\n private showError() {\r\n this.toasterService.error('AbpUiMultiTenancy::GivenTenantIsNotAvailable', 'AbpUi::Error', {\r\n messageLocalizationParams: [this.name()],\r\n });\r\n }\r\n\r\n}\r\n\r\n\r\n","import { Component, inject } from '@angular/core';\r\nimport { CommonModule } from '@angular/common';\r\nimport { CoreModule } from '@abp/ng.core';\r\nimport { ThemeSharedModule } from '@abp/ng.theme.shared';\r\nimport { AccountLayoutService } from '../../services/account-layout.service';\r\n\r\n@Component({\r\n // eslint-disable-next-line @angular-eslint/component-selector\r\n selector: 'lpx-tenant-box',\r\n templateUrl: './tenant-box.component.html',\r\n imports: [CommonModule, CoreModule, ThemeSharedModule],\r\n})\r\nexport class TenantBoxComponent {\r\n public service = inject(AccountLayoutService);\r\n}\r\n","@if ((service.currentTenant$ | async) || {}; as currentTenant) {\r\n <div class=\"card shadow-sm rounded mb-3\">\r\n <div class=\"card-body px-5\">\r\n <div class=\"row\">\r\n <div class=\"col\">\r\n <span style=\"font-size: 0.8em\" class=\"text-uppercase text-muted\">{{\r\n 'AbpUiMultiTenancy::Tenant' | abpLocalization\r\n }}</span\r\n ><br />\r\n <h6 class=\"m-0 d-inline-block\">\r\n <i>{{\r\n currentTenant.name ||\r\n ('AbpUiMultiTenancy::NotSelected' | abpLocalization)\r\n }}</i>\r\n </h6>\r\n </div>\r\n <div class=\"col-auto\">\r\n <a\r\n id=\"AbpTenantSwitchLink\"\r\n href=\"javascript:void(0);\"\r\n class=\"btn btn-sm mt-3 btn-outline-primary\"\r\n (click)=\"service.onSwitch()\"\r\n >{{ 'AbpUiMultiTenancy::Switch' | abpLocalization }}</a\r\n >\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n\r\n <abp-modal\r\n size=\"md\"\r\n [(visible)]=\"service.isModalVisible\"\r\n [busy]=\"service.modalBusy\"\r\n >\r\n <ng-template #abpHeader>\r\n <h5>Switch Tenant</h5>\r\n </ng-template>\r\n <ng-template #abpBody>\r\n <form (ngSubmit)=\"service.save()\">\r\n <div class=\"mt-2\">\r\n <div class=\"form-group\">\r\n <label for=\"name\">{{\r\n 'AbpUiMultiTenancy::Name' | abpLocalization\r\n }}</label>\r\n <input\r\n [(ngModel)]=\"service.name\"\r\n type=\"text\"\r\n id=\"name\"\r\n name=\"tenant\"\r\n class=\"form-control\"\r\n autofocus\r\n />\r\n </div>\r\n <p>{{ 'AbpUiMultiTenancy::SwitchTenantHint' | abpLocalization }}</p>\r\n </div>\r\n </form>\r\n </ng-template>\r\n <ng-template #abpFooter>\r\n <button abpClose type=\"button\" class=\"btn btn-outline-primary\">\r\n {{ 'AbpTenantManagement::Cancel' | abpLocalization }}\r\n </button>\r\n <abp-button\r\n type=\"abp-button\"\r\n iconClass=\"fa fa-check\"\r\n (click)=\"service.save()\"\r\n [disabled]=\"currentTenant?.name === service.name\"\r\n >\r\n <span>{{ 'AbpTenantManagement::Save' | abpLocalization }}</span>\r\n </abp-button>\r\n </ng-template>\r\n </abp-modal>\r\n}\r\n","import { Component, inject } from '@angular/core';\r\nimport { CommonModule } from '@angular/common';\r\nimport { TenantBoxComponent } from '../tenant-box/tenant-box.component';\r\nimport { LanguageSelectionModule } from '@volo/ngx-lepton-x.lite';\r\nimport { CoreModule } from '@abp/ng.core';\r\nimport { ThemeSharedModule } from '@abp/ng.theme.shared';\r\nimport { AccountLayoutService } from '../../services/account-layout.service';\r\n\r\n@Component({\r\n // eslint-disable-next-line @angular-eslint/component-selector\r\n selector: 'lpx-auth-wrapper',\r\n templateUrl: './auth-wrapper.component.html',\r\n imports: [\r\n CommonModule,\r\n CoreModule,\r\n ThemeSharedModule,\r\n TenantBoxComponent,\r\n LanguageSelectionModule,\r\n ],\r\n providers: [AccountLayoutService],\r\n})\r\nexport class AuthWrapperComponent {\r\n service = inject(AccountLayoutService);\r\n}\r\n","<div class=\"row\">\r\n <div class=\"mx-auto col col-md-5\">\r\n @if (\r\n (service.isMultiTenancyEnabled$ | async) && service.isTenantBoxVisible\r\n ) {\r\n <lpx-tenant-box\r\n *abpReplaceableTemplate=\"{ componentKey: service.tenantBoxKey }\"\r\n ></lpx-tenant-box>\r\n }\r\n\r\n <div class=\"abp-account-container\">\r\n @if (service.enableLocalLogin$ | async) {\r\n <div class=\"card mt-3 shadow-sm rounded\">\r\n <div class=\"card-body p-5\">\r\n <lpx-language-selection class=\"float-end\"></lpx-language-selection>\r\n <ng-content></ng-content>\r\n </div>\r\n </div>\r\n } @else {\r\n <div class=\"alert alert-warning\">\r\n <strong>{{\r\n 'AbpAccount::InvalidLoginRequest' | abpLocalization\r\n }}</strong>\r\n {{\r\n 'AbpAccount::ThereAreNoLoginSchemesConfiguredForThisClient'\r\n | abpLocalization\r\n }}\r\n </div>\r\n }\r\n </div>\r\n </div>\r\n</div>\r\n","import { Component } from '@angular/core';\r\n\r\n@Component({\r\n standalone: false,\r\n selector: 'abp-account-layout',\r\n templateUrl: './account-layout.component.html',\r\n})\r\nexport class AccountLayoutComponent {}\r\n","<div class=\"container d-flex flex-column vh-100 justify-content-center\">\r\n <abp-page-alert-container></abp-page-alert-container>\r\n <lpx-auth-wrapper>\r\n <router-outlet></router-outlet>\r\n </lpx-auth-wrapper>\r\n</div>\r\n","import {\r\n ModuleWithProviders,\r\n NgModule,\r\n inject,\r\n provideAppInitializer,\r\n} from '@angular/core';\r\nimport { AccountLayoutComponent } from './account-layout.component';\r\nimport { TenantBoxComponent } from './components/tenant-box/tenant-box.component';\r\nimport { AuthWrapperComponent } from './components/auth-layout/auth-wrapper.component';\r\nimport { CoreModule, ReplaceableComponentsService } from '@abp/ng.core';\r\nimport { LpxSideMenuLayoutModule } from '@volo/ngx-lepton-x.lite/layouts';\r\nimport { LanguageSelectionModule } from '@volo/ngx-lepton-x.lite';\r\nimport { RouterModule } from '@angular/router';\r\nimport { ThemeSharedModule } from '@abp/ng.theme.shared';\r\nimport { PageAlertContainerModule } from '@volo/abp.ng.lepton-x.core';\r\n\r\n@NgModule({\r\n declarations: [AccountLayoutComponent],\r\n imports: [\r\n RouterModule,\r\n CoreModule,\r\n LpxSideMenuLayoutModule,\r\n ThemeSharedModule,\r\n PageAlertContainerModule,\r\n LanguageSelectionModule,\r\n TenantBoxComponent,\r\n AuthWrapperComponent,\r\n ],\r\n})\r\nexport class AccountLayoutModule {\r\n static forRoot(): ModuleWithProviders<AccountLayoutModule> {\r\n return {\r\n ngModule: AccountLayoutModule,\r\n providers: [\r\n provideAppInitializer(() => {\r\n initAccountLayout();\r\n }),\r\n ],\r\n };\r\n }\r\n}\r\n\r\nexport function initAccountLayout() {\r\n const replaceableComponents = inject(ReplaceableComponentsService);\r\n replaceableComponents.add({\r\n key: 'Theme.AccountLayoutComponent',\r\n component: AccountLayoutComponent,\r\n });\r\n}\r\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public-api';\n"],"names":["i2","i3","i1","i3.AuthWrapperComponent"],"mappings":"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"}
|