@abp/ng.theme.basic 5.0.0 → 5.1.2
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/{esm2015/abp-ng.theme.basic.js → esm2020/abp-ng.theme.basic.mjs} +0 -0
- package/esm2020/lib/components/account-layout/account-layout.component.mjs +32 -0
- package/esm2020/lib/components/account-layout/auth-wrapper/auth-wrapper.component.mjs +19 -0
- package/esm2020/lib/components/account-layout/tenant-box/tenant-box.component.mjs +20 -0
- package/esm2020/lib/components/application-layout/application-layout.component.mjs +31 -0
- package/{esm2015/lib/components/empty-layout/empty-layout.component.js → esm2020/lib/components/empty-layout/empty-layout.component.mjs} +5 -5
- package/{esm2015/lib/components/index.js → esm2020/lib/components/index.mjs} +2 -2
- package/{esm2015/lib/components/logo/logo.component.js → esm2020/lib/components/logo/logo.component.mjs} +5 -5
- package/esm2020/lib/components/nav-items/current-user.component.mjs +39 -0
- package/esm2020/lib/components/nav-items/languages.component.mjs +107 -0
- package/esm2020/lib/components/nav-items/nav-items.component.mjs +19 -0
- package/esm2020/lib/components/page-alert-container/page-alert-container.component.mjs +18 -0
- package/esm2020/lib/components/routes/routes.component.mjs +37 -0
- package/esm2020/lib/components/validation-error/validation-error.component.mjs +44 -0
- package/{esm2015/lib/constants/styles.js → esm2020/lib/constants/styles.mjs} +0 -0
- package/{esm2015/lib/enums/components.js → esm2020/lib/enums/components.mjs} +0 -0
- package/{esm2015/lib/enums/index.js → esm2020/lib/enums/index.mjs} +2 -1
- package/esm2020/lib/enums/user-menu-items.mjs +2 -0
- package/{esm2015/lib/handlers/index.js → esm2020/lib/handlers/index.mjs} +0 -0
- package/{esm2015/lib/handlers/lazy-style.handler.js → esm2020/lib/handlers/lazy-style.handler.mjs} +4 -4
- package/{esm2015/lib/models/index.js → esm2020/lib/models/index.mjs} +0 -0
- package/{esm2015/lib/models/layout.js → esm2020/lib/models/layout.mjs} +0 -0
- package/{esm2015/lib/providers/index.js → esm2020/lib/providers/index.mjs} +2 -1
- package/{esm2015/lib/providers/nav-item.provider.js → esm2020/lib/providers/nav-item.provider.mjs} +0 -0
- package/{esm2015/lib/providers/styles.provider.js → esm2020/lib/providers/styles.provider.mjs} +0 -0
- package/esm2020/lib/providers/user-menu.provider.mjs +41 -0
- package/{esm2015/lib/services/layout.service.js → esm2020/lib/services/layout.service.mjs} +4 -4
- package/esm2020/lib/theme-basic.module.mjs +128 -0
- package/{esm2015/lib/tokens/index.js → esm2020/lib/tokens/index.mjs} +0 -0
- package/{esm2015/lib/tokens/lazy-styles.token.js → esm2020/lib/tokens/lazy-styles.token.mjs} +0 -0
- package/{esm2015/public-api.js → esm2020/public-api.mjs} +0 -0
- package/{esm2015/testing/abp-ng.theme.basic-testing.js → esm2020/testing/abp-ng.theme.basic-testing.mjs} +0 -0
- package/{esm2015/testing/lib/theme-basic-testing.module.js → esm2020/testing/lib/theme-basic-testing.module.mjs} +5 -5
- package/{esm2015/testing/public-api.js → esm2020/testing/public-api.mjs} +0 -0
- package/fesm2015/{abp-ng.theme.basic-testing.js → abp-ng.theme.basic-testing.mjs} +5 -5
- package/fesm2015/abp-ng.theme.basic-testing.mjs.map +1 -0
- package/fesm2015/abp-ng.theme.basic.mjs +833 -0
- package/fesm2015/abp-ng.theme.basic.mjs.map +1 -0
- package/fesm2020/abp-ng.theme.basic-testing.mjs +45 -0
- package/fesm2020/abp-ng.theme.basic-testing.mjs.map +1 -0
- package/fesm2020/abp-ng.theme.basic.mjs +835 -0
- package/fesm2020/abp-ng.theme.basic.mjs.map +1 -0
- package/lib/components/index.d.ts +1 -1
- package/lib/components/nav-items/current-user.component.d.ts +6 -2
- package/lib/enums/index.d.ts +1 -0
- package/lib/enums/user-menu-items.d.ts +4 -0
- package/lib/providers/index.d.ts +1 -0
- package/lib/providers/user-menu.provider.d.ts +8 -0
- package/package.json +30 -9
- package/testing/package.json +5 -5
- package/bundles/abp-ng.theme.basic-testing.umd.js +0 -73
- package/bundles/abp-ng.theme.basic-testing.umd.js.map +0 -1
- package/bundles/abp-ng.theme.basic.umd.js +0 -989
- package/bundles/abp-ng.theme.basic.umd.js.map +0 -1
- package/esm2015/lib/components/account-layout/account-layout.component.js +0 -36
- package/esm2015/lib/components/account-layout/auth-wrapper/auth-wrapper.component.js +0 -23
- package/esm2015/lib/components/account-layout/tenant-box/tenant-box.component.js +0 -24
- package/esm2015/lib/components/application-layout/application-layout.component.js +0 -36
- package/esm2015/lib/components/nav-items/current-user.component.js +0 -38
- package/esm2015/lib/components/nav-items/languages.component.js +0 -107
- package/esm2015/lib/components/nav-items/nav-items.component.js +0 -22
- package/esm2015/lib/components/page-alert-container/page-alert-container.component.js +0 -22
- package/esm2015/lib/components/routes/routes.component.js +0 -40
- package/esm2015/lib/components/validation-error/validation-error.component.js +0 -40
- package/esm2015/lib/theme-basic.module.js +0 -127
- package/fesm2015/abp-ng.theme.basic-testing.js.map +0 -1
- package/fesm2015/abp-ng.theme.basic.js +0 -821
- package/fesm2015/abp-ng.theme.basic.js.map +0 -1
|
File without changes
|
|
@@ -0,0 +1,32 @@
|
|
|
1
|
+
import { Component } from '@angular/core';
|
|
2
|
+
import { SubscriptionService } from '@abp/ng.core';
|
|
3
|
+
import { LayoutService } from '../../services/layout.service';
|
|
4
|
+
import * as i0 from "@angular/core";
|
|
5
|
+
import * as i1 from "../../services/layout.service";
|
|
6
|
+
import * as i2 from "../logo/logo.component";
|
|
7
|
+
import * as i3 from "../routes/routes.component";
|
|
8
|
+
import * as i4 from "../nav-items/nav-items.component";
|
|
9
|
+
import * as i5 from "../page-alert-container/page-alert-container.component";
|
|
10
|
+
import * as i6 from "./auth-wrapper/auth-wrapper.component";
|
|
11
|
+
import * as i7 from "@ng-bootstrap/ng-bootstrap";
|
|
12
|
+
import * as i8 from "@abp/ng.core";
|
|
13
|
+
import * as i9 from "@angular/common";
|
|
14
|
+
import * as i10 from "@angular/router";
|
|
15
|
+
export class AccountLayoutComponent {
|
|
16
|
+
constructor(service) {
|
|
17
|
+
this.service = service;
|
|
18
|
+
this.authWrapperKey = 'Account.AuthWrapperComponent';
|
|
19
|
+
}
|
|
20
|
+
ngAfterViewInit() {
|
|
21
|
+
this.service.subscribeWindowSize();
|
|
22
|
+
}
|
|
23
|
+
}
|
|
24
|
+
// required for dynamic component
|
|
25
|
+
AccountLayoutComponent.type = "account" /* account */;
|
|
26
|
+
AccountLayoutComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.1.1", ngImport: i0, type: AccountLayoutComponent, deps: [{ token: i1.LayoutService }], target: i0.ɵɵFactoryTarget.Component });
|
|
27
|
+
AccountLayoutComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "13.1.1", type: AccountLayoutComponent, selector: "abp-layout-account", providers: [LayoutService, SubscriptionService], ngImport: i0, template: "<nav\r\n class=\"navbar navbar-expand-lg navbar-dark bg-dark shadow-sm flex-column flex-md-row mb-4\"\r\n id=\"main-navbar\"\r\n style=\"min-height: 4rem\"\r\n>\r\n <div class=\"container\">\r\n <abp-logo *abpReplaceableTemplate=\"{ componentKey: service.logoComponentKey }\"></abp-logo>\r\n <button\r\n class=\"navbar-toggler\"\r\n type=\"button\"\r\n [attr.aria-expanded]=\"!service.isCollapsed\"\r\n (click)=\"service.isCollapsed = !service.isCollapsed\"\r\n >\r\n <span class=\"navbar-toggler-icon\"></span>\r\n </button>\r\n <div\r\n class=\"navbar-collapse\"\r\n [class.overflow-hidden]=\"service.smallScreen\"\r\n id=\"main-navbar-collapse\"\r\n >\r\n <ng-container *ngTemplateOutlet=\"!service.smallScreen ? navigations : null\"></ng-container>\r\n\r\n <div\r\n *ngIf=\"service.smallScreen\"\r\n [@collapseWithMargin]=\"service.isCollapsed ? 'collapsed' : 'expanded'\"\r\n >\r\n <ng-container *ngTemplateOutlet=\"navigations\"></ng-container>\r\n </div>\r\n\r\n <ng-template #navigations>\r\n <abp-routes\r\n *abpReplaceableTemplate=\"{\r\n componentKey: service.routesComponentKey,\r\n inputs: {\r\n smallScreen: { value: service.smallScreen }\r\n }\r\n }\"\r\n class=\"mx-auto\"\r\n [smallScreen]=\"service.smallScreen\"\r\n ></abp-routes>\r\n\r\n <abp-nav-items\r\n *abpReplaceableTemplate=\"{\r\n componentKey: service.navItemsComponentKey\r\n }\"\r\n ></abp-nav-items>\r\n </ng-template>\r\n </div>\r\n </div>\r\n</nav>\r\n\r\n<!-- [@slideFromBottom]=\"outlet.isActivated && outlet.activatedRoute?.routeConfig?.path\" TODO: throws ExpressionChangedAfterItHasBeenCheck when animation is active. It should be fixed -->\r\n<div class=\"container\">\r\n <abp-page-alert-container></abp-page-alert-container>\r\n <abp-auth-wrapper\r\n *abpReplaceableTemplate=\"{\r\n componentKey: authWrapperKey\r\n }\"\r\n >\r\n <router-outlet #outlet=\"outlet\"></router-outlet>\r\n </abp-auth-wrapper>\r\n</div>\r\n", components: [{ type: i2.LogoComponent, selector: "abp-logo" }, { type: i3.RoutesComponent, selector: "abp-routes", inputs: ["smallScreen"] }, { type: i4.NavItemsComponent, selector: "abp-nav-items" }, { type: i5.PageAlertContainerComponent, selector: "abp-page-alert-container" }, { type: i6.AuthWrapperComponent, selector: "abp-auth-wrapper" }], directives: [{ type: i7.NgbNavbar, selector: ".navbar" }, { type: i8.ReplaceableTemplateDirective, selector: "[abpReplaceableTemplate]", inputs: ["abpReplaceableTemplate"] }, { type: i9.NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet"] }, { type: i9.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { type: i10.RouterOutlet, selector: "router-outlet", outputs: ["activate", "deactivate", "attach", "detach"], exportAs: ["outlet"] }] });
|
|
28
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.1.1", ngImport: i0, type: AccountLayoutComponent, decorators: [{
|
|
29
|
+
type: Component,
|
|
30
|
+
args: [{ selector: 'abp-layout-account', providers: [LayoutService, SubscriptionService], template: "<nav\r\n class=\"navbar navbar-expand-lg navbar-dark bg-dark shadow-sm flex-column flex-md-row mb-4\"\r\n id=\"main-navbar\"\r\n style=\"min-height: 4rem\"\r\n>\r\n <div class=\"container\">\r\n <abp-logo *abpReplaceableTemplate=\"{ componentKey: service.logoComponentKey }\"></abp-logo>\r\n <button\r\n class=\"navbar-toggler\"\r\n type=\"button\"\r\n [attr.aria-expanded]=\"!service.isCollapsed\"\r\n (click)=\"service.isCollapsed = !service.isCollapsed\"\r\n >\r\n <span class=\"navbar-toggler-icon\"></span>\r\n </button>\r\n <div\r\n class=\"navbar-collapse\"\r\n [class.overflow-hidden]=\"service.smallScreen\"\r\n id=\"main-navbar-collapse\"\r\n >\r\n <ng-container *ngTemplateOutlet=\"!service.smallScreen ? navigations : null\"></ng-container>\r\n\r\n <div\r\n *ngIf=\"service.smallScreen\"\r\n [@collapseWithMargin]=\"service.isCollapsed ? 'collapsed' : 'expanded'\"\r\n >\r\n <ng-container *ngTemplateOutlet=\"navigations\"></ng-container>\r\n </div>\r\n\r\n <ng-template #navigations>\r\n <abp-routes\r\n *abpReplaceableTemplate=\"{\r\n componentKey: service.routesComponentKey,\r\n inputs: {\r\n smallScreen: { value: service.smallScreen }\r\n }\r\n }\"\r\n class=\"mx-auto\"\r\n [smallScreen]=\"service.smallScreen\"\r\n ></abp-routes>\r\n\r\n <abp-nav-items\r\n *abpReplaceableTemplate=\"{\r\n componentKey: service.navItemsComponentKey\r\n }\"\r\n ></abp-nav-items>\r\n </ng-template>\r\n </div>\r\n </div>\r\n</nav>\r\n\r\n<!-- [@slideFromBottom]=\"outlet.isActivated && outlet.activatedRoute?.routeConfig?.path\" TODO: throws ExpressionChangedAfterItHasBeenCheck when animation is active. It should be fixed -->\r\n<div class=\"container\">\r\n <abp-page-alert-container></abp-page-alert-container>\r\n <abp-auth-wrapper\r\n *abpReplaceableTemplate=\"{\r\n componentKey: authWrapperKey\r\n }\"\r\n >\r\n <router-outlet #outlet=\"outlet\"></router-outlet>\r\n </abp-auth-wrapper>\r\n</div>\r\n" }]
|
|
31
|
+
}], ctorParameters: function () { return [{ type: i1.LayoutService }]; } });
|
|
32
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYWNjb3VudC1sYXlvdXQuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vcGFja2FnZXMvdGhlbWUtYmFzaWMvc3JjL2xpYi9jb21wb25lbnRzL2FjY291bnQtbGF5b3V0L2FjY291bnQtbGF5b3V0LmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uLy4uLy4uL3BhY2thZ2VzL3RoZW1lLWJhc2ljL3NyYy9saWIvY29tcG9uZW50cy9hY2NvdW50LWxheW91dC9hY2NvdW50LWxheW91dC5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQWlCLFNBQVMsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUN6RCxPQUFPLEVBQWUsbUJBQW1CLEVBQUUsTUFBTSxjQUFjLENBQUM7QUFDaEUsT0FBTyxFQUFFLGFBQWEsRUFBRSxNQUFNLCtCQUErQixDQUFDOzs7Ozs7Ozs7Ozs7QUFPOUQsTUFBTSxPQUFPLHNCQUFzQjtJQU1qQyxZQUFtQixPQUFzQjtRQUF0QixZQUFPLEdBQVAsT0FBTyxDQUFlO1FBRnpDLG1CQUFjLEdBQUcsOEJBQThCLENBQUM7SUFFSixDQUFDO0lBRTdDLGVBQWU7UUFDYixJQUFJLENBQUMsT0FBTyxDQUFDLG1CQUFtQixFQUFFLENBQUM7SUFDckMsQ0FBQzs7QUFURCxpQ0FBaUM7QUFDMUIsMkJBQUksMkJBQXVCO21IQUZ2QixzQkFBc0I7dUdBQXRCLHNCQUFzQiw2Q0FGdEIsQ0FBQyxhQUFhLEVBQUUsbUJBQW1CLENBQUMsMEJDUGpELDBvRUE4REE7MkZEckRhLHNCQUFzQjtrQkFMbEMsU0FBUzsrQkFDRSxvQkFBb0IsYUFFbkIsQ0FBQyxhQUFhLEVBQUUsbUJBQW1CLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBBZnRlclZpZXdJbml0LCBDb21wb25lbnQgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcclxuaW1wb3J0IHsgZUxheW91dFR5cGUsIFN1YnNjcmlwdGlvblNlcnZpY2UgfSBmcm9tICdAYWJwL25nLmNvcmUnO1xyXG5pbXBvcnQgeyBMYXlvdXRTZXJ2aWNlIH0gZnJvbSAnLi4vLi4vc2VydmljZXMvbGF5b3V0LnNlcnZpY2UnO1xyXG5cclxuQENvbXBvbmVudCh7XHJcbiAgc2VsZWN0b3I6ICdhYnAtbGF5b3V0LWFjY291bnQnLFxyXG4gIHRlbXBsYXRlVXJsOiAnLi9hY2NvdW50LWxheW91dC5jb21wb25lbnQuaHRtbCcsXHJcbiAgcHJvdmlkZXJzOiBbTGF5b3V0U2VydmljZSwgU3Vic2NyaXB0aW9uU2VydmljZV0sXHJcbn0pXHJcbmV4cG9ydCBjbGFzcyBBY2NvdW50TGF5b3V0Q29tcG9uZW50IGltcGxlbWVudHMgQWZ0ZXJWaWV3SW5pdCB7XHJcbiAgLy8gcmVxdWlyZWQgZm9yIGR5bmFtaWMgY29tcG9uZW50XHJcbiAgc3RhdGljIHR5cGUgPSBlTGF5b3V0VHlwZS5hY2NvdW50O1xyXG5cclxuICBhdXRoV3JhcHBlcktleSA9ICdBY2NvdW50LkF1dGhXcmFwcGVyQ29tcG9uZW50JztcclxuXHJcbiAgY29uc3RydWN0b3IocHVibGljIHNlcnZpY2U6IExheW91dFNlcnZpY2UpIHt9XHJcblxyXG4gIG5nQWZ0ZXJWaWV3SW5pdCgpIHtcclxuICAgIHRoaXMuc2VydmljZS5zdWJzY3JpYmVXaW5kb3dTaXplKCk7XHJcbiAgfVxyXG59XHJcbiIsIjxuYXZcclxuICBjbGFzcz1cIm5hdmJhciBuYXZiYXItZXhwYW5kLWxnIG5hdmJhci1kYXJrIGJnLWRhcmsgc2hhZG93LXNtIGZsZXgtY29sdW1uIGZsZXgtbWQtcm93IG1iLTRcIlxyXG4gIGlkPVwibWFpbi1uYXZiYXJcIlxyXG4gIHN0eWxlPVwibWluLWhlaWdodDogNHJlbVwiXHJcbj5cclxuICA8ZGl2IGNsYXNzPVwiY29udGFpbmVyXCI+XHJcbiAgICA8YWJwLWxvZ28gKmFicFJlcGxhY2VhYmxlVGVtcGxhdGU9XCJ7IGNvbXBvbmVudEtleTogc2VydmljZS5sb2dvQ29tcG9uZW50S2V5IH1cIj48L2FicC1sb2dvPlxyXG4gICAgPGJ1dHRvblxyXG4gICAgICBjbGFzcz1cIm5hdmJhci10b2dnbGVyXCJcclxuICAgICAgdHlwZT1cImJ1dHRvblwiXHJcbiAgICAgIFthdHRyLmFyaWEtZXhwYW5kZWRdPVwiIXNlcnZpY2UuaXNDb2xsYXBzZWRcIlxyXG4gICAgICAoY2xpY2spPVwic2VydmljZS5pc0NvbGxhcHNlZCA9ICFzZXJ2aWNlLmlzQ29sbGFwc2VkXCJcclxuICAgID5cclxuICAgICAgPHNwYW4gY2xhc3M9XCJuYXZiYXItdG9nZ2xlci1pY29uXCI+PC9zcGFuPlxyXG4gICAgPC9idXR0b24+XHJcbiAgICA8ZGl2XHJcbiAgICAgIGNsYXNzPVwibmF2YmFyLWNvbGxhcHNlXCJcclxuICAgICAgW2NsYXNzLm92ZXJmbG93LWhpZGRlbl09XCJzZXJ2aWNlLnNtYWxsU2NyZWVuXCJcclxuICAgICAgaWQ9XCJtYWluLW5hdmJhci1jb2xsYXBzZVwiXHJcbiAgICA+XHJcbiAgICAgIDxuZy1jb250YWluZXIgKm5nVGVtcGxhdGVPdXRsZXQ9XCIhc2VydmljZS5zbWFsbFNjcmVlbiA/IG5hdmlnYXRpb25zIDogbnVsbFwiPjwvbmctY29udGFpbmVyPlxyXG5cclxuICAgICAgPGRpdlxyXG4gICAgICAgICpuZ0lmPVwic2VydmljZS5zbWFsbFNjcmVlblwiXHJcbiAgICAgICAgW0Bjb2xsYXBzZVdpdGhNYXJnaW5dPVwic2VydmljZS5pc0NvbGxhcHNlZCA/ICdjb2xsYXBzZWQnIDogJ2V4cGFuZGVkJ1wiXHJcbiAgICAgID5cclxuICAgICAgICA8bmctY29udGFpbmVyICpuZ1RlbXBsYXRlT3V0bGV0PVwibmF2aWdhdGlvbnNcIj48L25nLWNvbnRhaW5lcj5cclxuICAgICAgPC9kaXY+XHJcblxyXG4gICAgICA8bmctdGVtcGxhdGUgI25hdmlnYXRpb25zPlxyXG4gICAgICAgIDxhYnAtcm91dGVzXHJcbiAgICAgICAgICAqYWJwUmVwbGFjZWFibGVUZW1wbGF0ZT1cIntcclxuICAgICAgICAgICAgY29tcG9uZW50S2V5OiBzZXJ2aWNlLnJvdXRlc0NvbXBvbmVudEtleSxcclxuICAgICAgICAgICAgaW5wdXRzOiB7XHJcbiAgICAgICAgICAgICAgc21hbGxTY3JlZW46IHsgdmFsdWU6IHNlcnZpY2Uuc21hbGxTY3JlZW4gfVxyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgICB9XCJcclxuICAgICAgICAgIGNsYXNzPVwibXgtYXV0b1wiXHJcbiAgICAgICAgICBbc21hbGxTY3JlZW5dPVwic2VydmljZS5zbWFsbFNjcmVlblwiXHJcbiAgICAgICAgPjwvYWJwLXJvdXRlcz5cclxuXHJcbiAgICAgICAgPGFicC1uYXYtaXRlbXNcclxuICAgICAgICAgICphYnBSZXBsYWNlYWJsZVRlbXBsYXRlPVwie1xyXG4gICAgICAgICAgICBjb21wb25lbnRLZXk6IHNlcnZpY2UubmF2SXRlbXNDb21wb25lbnRLZXlcclxuICAgICAgICAgIH1cIlxyXG4gICAgICAgID48L2FicC1uYXYtaXRlbXM+XHJcbiAgICAgIDwvbmctdGVtcGxhdGU+XHJcbiAgICA8L2Rpdj5cclxuICA8L2Rpdj5cclxuPC9uYXY+XHJcblxyXG48IS0tIFtAc2xpZGVGcm9tQm90dG9tXT1cIm91dGxldC5pc0FjdGl2YXRlZCAmJiBvdXRsZXQuYWN0aXZhdGVkUm91dGU/LnJvdXRlQ29uZmlnPy5wYXRoXCIgVE9ETzogdGhyb3dzIEV4cHJlc3Npb25DaGFuZ2VkQWZ0ZXJJdEhhc0JlZW5DaGVjayB3aGVuIGFuaW1hdGlvbiBpcyBhY3RpdmUuIEl0IHNob3VsZCBiZSBmaXhlZCAtLT5cclxuPGRpdiBjbGFzcz1cImNvbnRhaW5lclwiPlxyXG4gIDxhYnAtcGFnZS1hbGVydC1jb250YWluZXI+PC9hYnAtcGFnZS1hbGVydC1jb250YWluZXI+XHJcbiAgPGFicC1hdXRoLXdyYXBwZXJcclxuICAgICphYnBSZXBsYWNlYWJsZVRlbXBsYXRlPVwie1xyXG4gICAgICBjb21wb25lbnRLZXk6IGF1dGhXcmFwcGVyS2V5XHJcbiAgICB9XCJcclxuICA+XHJcbiAgICA8cm91dGVyLW91dGxldCAjb3V0bGV0PVwib3V0bGV0XCI+PC9yb3V0ZXItb3V0bGV0PlxyXG4gIDwvYWJwLWF1dGgtd3JhcHBlcj5cclxuPC9kaXY+XHJcbiJdfQ==
|
|
@@ -0,0 +1,19 @@
|
|
|
1
|
+
import { AuthWrapperService } from '@abp/ng.account.core';
|
|
2
|
+
import { Component } from '@angular/core';
|
|
3
|
+
import * as i0 from "@angular/core";
|
|
4
|
+
import * as i1 from "@abp/ng.account.core";
|
|
5
|
+
import * as i2 from "../tenant-box/tenant-box.component";
|
|
6
|
+
import * as i3 from "@angular/common";
|
|
7
|
+
import * as i4 from "@abp/ng.core";
|
|
8
|
+
export class AuthWrapperComponent {
|
|
9
|
+
constructor(service) {
|
|
10
|
+
this.service = service;
|
|
11
|
+
}
|
|
12
|
+
}
|
|
13
|
+
AuthWrapperComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.1.1", ngImport: i0, type: AuthWrapperComponent, deps: [{ token: i1.AuthWrapperService }], target: i0.ɵɵFactoryTarget.Component });
|
|
14
|
+
AuthWrapperComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "13.1.1", type: AuthWrapperComponent, selector: "abp-auth-wrapper", providers: [AuthWrapperService], ngImport: i0, template: "<div class=\"row\">\r\n <div class=\"mx-auto col col-md-5\">\r\n <ng-container *ngIf=\"(service.isMultiTenancyEnabled$ | async) && service.isTenantBoxVisible\">\r\n <abp-tenant-box\r\n *abpReplaceableTemplate=\"{ componentKey: service.tenantBoxKey }\"\r\n ></abp-tenant-box>\r\n </ng-container>\r\n\r\n <div class=\"abp-account-container\">\r\n <div\r\n *ngIf=\"service.enableLocalLogin$ | async; else disableLocalLoginTemplate\"\r\n class=\"card mt-3 shadow-sm rounded\"\r\n >\r\n <div class=\"card-body p-5\">\r\n <ng-content></ng-content>\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n</div>\r\n\r\n<ng-template #disableLocalLoginTemplate>\r\n <div class=\"alert alert-warning\">\r\n <strong>{{ 'AbpAccount::InvalidLoginRequest' | abpLocalization }}</strong>\r\n {{ 'AbpAccount::ThereAreNoLoginSchemesConfiguredForThisClient' | abpLocalization }}\r\n </div>\r\n</ng-template>\r\n", components: [{ type: i2.TenantBoxComponent, selector: "abp-tenant-box" }], directives: [{ type: i3.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { type: i4.ReplaceableTemplateDirective, selector: "[abpReplaceableTemplate]", inputs: ["abpReplaceableTemplate"] }], pipes: { "async": i3.AsyncPipe, "abpLocalization": i4.LocalizationPipe } });
|
|
15
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.1.1", ngImport: i0, type: AuthWrapperComponent, decorators: [{
|
|
16
|
+
type: Component,
|
|
17
|
+
args: [{ selector: 'abp-auth-wrapper', providers: [AuthWrapperService], template: "<div class=\"row\">\r\n <div class=\"mx-auto col col-md-5\">\r\n <ng-container *ngIf=\"(service.isMultiTenancyEnabled$ | async) && service.isTenantBoxVisible\">\r\n <abp-tenant-box\r\n *abpReplaceableTemplate=\"{ componentKey: service.tenantBoxKey }\"\r\n ></abp-tenant-box>\r\n </ng-container>\r\n\r\n <div class=\"abp-account-container\">\r\n <div\r\n *ngIf=\"service.enableLocalLogin$ | async; else disableLocalLoginTemplate\"\r\n class=\"card mt-3 shadow-sm rounded\"\r\n >\r\n <div class=\"card-body p-5\">\r\n <ng-content></ng-content>\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n</div>\r\n\r\n<ng-template #disableLocalLoginTemplate>\r\n <div class=\"alert alert-warning\">\r\n <strong>{{ 'AbpAccount::InvalidLoginRequest' | abpLocalization }}</strong>\r\n {{ 'AbpAccount::ThereAreNoLoginSchemesConfiguredForThisClient' | abpLocalization }}\r\n </div>\r\n</ng-template>\r\n" }]
|
|
18
|
+
}], ctorParameters: function () { return [{ type: i1.AuthWrapperService }]; } });
|
|
19
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYXV0aC13cmFwcGVyLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL3BhY2thZ2VzL3RoZW1lLWJhc2ljL3NyYy9saWIvY29tcG9uZW50cy9hY2NvdW50LWxheW91dC9hdXRoLXdyYXBwZXIvYXV0aC13cmFwcGVyLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL3BhY2thZ2VzL3RoZW1lLWJhc2ljL3NyYy9saWIvY29tcG9uZW50cy9hY2NvdW50LWxheW91dC9hdXRoLXdyYXBwZXIvYXV0aC13cmFwcGVyLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxrQkFBa0IsRUFBRSxNQUFNLHNCQUFzQixDQUFDO0FBQzFELE9BQU8sRUFBRSxTQUFTLEVBQUUsTUFBTSxlQUFlLENBQUM7Ozs7OztBQU8xQyxNQUFNLE9BQU8sb0JBQW9CO0lBQy9CLFlBQW1CLE9BQTJCO1FBQTNCLFlBQU8sR0FBUCxPQUFPLENBQW9CO0lBQUcsQ0FBQzs7aUhBRHZDLG9CQUFvQjtxR0FBcEIsb0JBQW9CLDJDQUZwQixDQUFDLGtCQUFrQixDQUFDLDBCQ05qQyxnOUJBMkJBOzJGRG5CYSxvQkFBb0I7a0JBTGhDLFNBQVM7K0JBQ0Usa0JBQWtCLGFBRWpCLENBQUMsa0JBQWtCLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBBdXRoV3JhcHBlclNlcnZpY2UgfSBmcm9tICdAYWJwL25nLmFjY291bnQuY29yZSc7XHJcbmltcG9ydCB7IENvbXBvbmVudCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xyXG5cclxuQENvbXBvbmVudCh7XHJcbiAgc2VsZWN0b3I6ICdhYnAtYXV0aC13cmFwcGVyJyxcclxuICB0ZW1wbGF0ZVVybDogJy4vYXV0aC13cmFwcGVyLmNvbXBvbmVudC5odG1sJyxcclxuICBwcm92aWRlcnM6IFtBdXRoV3JhcHBlclNlcnZpY2VdLFxyXG59KVxyXG5leHBvcnQgY2xhc3MgQXV0aFdyYXBwZXJDb21wb25lbnQge1xyXG4gIGNvbnN0cnVjdG9yKHB1YmxpYyBzZXJ2aWNlOiBBdXRoV3JhcHBlclNlcnZpY2UpIHt9XHJcbn1cclxuIiwiPGRpdiBjbGFzcz1cInJvd1wiPlxyXG4gIDxkaXYgY2xhc3M9XCJteC1hdXRvIGNvbCBjb2wtbWQtNVwiPlxyXG4gICAgPG5nLWNvbnRhaW5lciAqbmdJZj1cIihzZXJ2aWNlLmlzTXVsdGlUZW5hbmN5RW5hYmxlZCQgfCBhc3luYykgJiYgc2VydmljZS5pc1RlbmFudEJveFZpc2libGVcIj5cclxuICAgICAgPGFicC10ZW5hbnQtYm94XHJcbiAgICAgICAgKmFicFJlcGxhY2VhYmxlVGVtcGxhdGU9XCJ7IGNvbXBvbmVudEtleTogc2VydmljZS50ZW5hbnRCb3hLZXkgfVwiXHJcbiAgICAgID48L2FicC10ZW5hbnQtYm94PlxyXG4gICAgPC9uZy1jb250YWluZXI+XHJcblxyXG4gICAgPGRpdiBjbGFzcz1cImFicC1hY2NvdW50LWNvbnRhaW5lclwiPlxyXG4gICAgICA8ZGl2XHJcbiAgICAgICAgKm5nSWY9XCJzZXJ2aWNlLmVuYWJsZUxvY2FsTG9naW4kIHwgYXN5bmM7IGVsc2UgZGlzYWJsZUxvY2FsTG9naW5UZW1wbGF0ZVwiXHJcbiAgICAgICAgY2xhc3M9XCJjYXJkIG10LTMgc2hhZG93LXNtIHJvdW5kZWRcIlxyXG4gICAgICA+XHJcbiAgICAgICAgPGRpdiBjbGFzcz1cImNhcmQtYm9keSBwLTVcIj5cclxuICAgICAgICAgIDxuZy1jb250ZW50PjwvbmctY29udGVudD5cclxuICAgICAgICA8L2Rpdj5cclxuICAgICAgPC9kaXY+XHJcbiAgICA8L2Rpdj5cclxuICA8L2Rpdj5cclxuPC9kaXY+XHJcblxyXG48bmctdGVtcGxhdGUgI2Rpc2FibGVMb2NhbExvZ2luVGVtcGxhdGU+XHJcbiAgPGRpdiBjbGFzcz1cImFsZXJ0IGFsZXJ0LXdhcm5pbmdcIj5cclxuICAgIDxzdHJvbmc+e3sgJ0FicEFjY291bnQ6OkludmFsaWRMb2dpblJlcXVlc3QnIHwgYWJwTG9jYWxpemF0aW9uIH19PC9zdHJvbmc+XHJcbiAgICB7eyAnQWJwQWNjb3VudDo6VGhlcmVBcmVOb0xvZ2luU2NoZW1lc0NvbmZpZ3VyZWRGb3JUaGlzQ2xpZW50JyB8IGFicExvY2FsaXphdGlvbiB9fVxyXG4gIDwvZGl2PlxyXG48L25nLXRlbXBsYXRlPlxyXG4iXX0=
|
|
@@ -0,0 +1,20 @@
|
|
|
1
|
+
import { TenantBoxService } from '@abp/ng.account.core';
|
|
2
|
+
import { Component } from '@angular/core';
|
|
3
|
+
import * as i0 from "@angular/core";
|
|
4
|
+
import * as i1 from "@abp/ng.account.core";
|
|
5
|
+
import * as i2 from "@abp/ng.theme.shared";
|
|
6
|
+
import * as i3 from "@angular/common";
|
|
7
|
+
import * as i4 from "@angular/forms";
|
|
8
|
+
import * as i5 from "@abp/ng.core";
|
|
9
|
+
export class TenantBoxComponent {
|
|
10
|
+
constructor(service) {
|
|
11
|
+
this.service = service;
|
|
12
|
+
}
|
|
13
|
+
}
|
|
14
|
+
TenantBoxComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.1.1", ngImport: i0, type: TenantBoxComponent, deps: [{ token: i1.TenantBoxService }], target: i0.ɵɵFactoryTarget.Component });
|
|
15
|
+
TenantBoxComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "13.1.1", type: TenantBoxComponent, selector: "abp-tenant-box", providers: [TenantBoxService], ngImport: i0, template: "<ng-container *ngIf=\"(service.currentTenant$ | async) || { name: '' } 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>{{ currentTenant.name || ('AbpUiMultiTenancy::NotSelected' | abpLocalization) }}</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 [(visible)]=\"service.isModalVisible\" [busy]=\"service.modalBusy\">\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=\"mb-3 form-group\">\r\n <label for=\"name\" class=\"form-label\">{{\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-secondary\">\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</ng-container>\r\n", components: [{ type: i2.ModalComponent, selector: "abp-modal", inputs: ["visible", "busy", "options", "suppressUnsavedChangesWarning"], outputs: ["visibleChange", "init", "appear", "disappear"] }, { type: i2.ButtonComponent, selector: "abp-button", inputs: ["buttonId", "buttonClass", "buttonType", "iconClass", "loading", "disabled", "attributes"], outputs: ["click", "focus", "blur", "abpClick", "abpFocus", "abpBlur"] }], directives: [{ type: i3.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { type: i4.ɵNgNoValidate, selector: "form:not([ngNoForm]):not([ngNativeValidate])" }, { type: i4.NgControlStatusGroup, selector: "[formGroupName],[formArrayName],[ngModelGroup],[formGroup],form:not([ngNoForm]),[ngForm]" }, { type: i4.NgForm, selector: "form:not([ngNoForm]):not([formGroup]),ng-form,[ngForm]", inputs: ["ngFormOptions"], outputs: ["ngSubmit"], exportAs: ["ngForm"] }, { type: i4.DefaultValueAccessor, selector: "input:not([type=checkbox])[formControlName],textarea[formControlName],input:not([type=checkbox])[formControl],textarea[formControl],input:not([type=checkbox])[ngModel],textarea[ngModel],[ngDefaultControl]" }, { type: i5.AutofocusDirective, selector: "[autofocus]", inputs: ["autofocus"] }, { type: i4.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { type: i4.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }, { type: i2.ModalCloseDirective, selector: "[abpClose]" }], pipes: { "async": i3.AsyncPipe, "abpLocalization": i5.LocalizationPipe } });
|
|
16
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.1.1", ngImport: i0, type: TenantBoxComponent, decorators: [{
|
|
17
|
+
type: Component,
|
|
18
|
+
args: [{ selector: 'abp-tenant-box', providers: [TenantBoxService], template: "<ng-container *ngIf=\"(service.currentTenant$ | async) || { name: '' } 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>{{ currentTenant.name || ('AbpUiMultiTenancy::NotSelected' | abpLocalization) }}</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 [(visible)]=\"service.isModalVisible\" [busy]=\"service.modalBusy\">\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=\"mb-3 form-group\">\r\n <label for=\"name\" class=\"form-label\">{{\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-secondary\">\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</ng-container>\r\n" }]
|
|
19
|
+
}], ctorParameters: function () { return [{ type: i1.TenantBoxService }]; } });
|
|
20
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidGVuYW50LWJveC5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9wYWNrYWdlcy90aGVtZS1iYXNpYy9zcmMvbGliL2NvbXBvbmVudHMvYWNjb3VudC1sYXlvdXQvdGVuYW50LWJveC90ZW5hbnQtYm94LmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL3BhY2thZ2VzL3RoZW1lLWJhc2ljL3NyYy9saWIvY29tcG9uZW50cy9hY2NvdW50LWxheW91dC90ZW5hbnQtYm94L3RlbmFudC1ib3guY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLGdCQUFnQixFQUFFLE1BQU0sc0JBQXNCLENBQUM7QUFDeEQsT0FBTyxFQUFFLFNBQVMsRUFBRSxNQUFNLGVBQWUsQ0FBQzs7Ozs7OztBQU8xQyxNQUFNLE9BQU8sa0JBQWtCO0lBQzdCLFlBQW1CLE9BQXlCO1FBQXpCLFlBQU8sR0FBUCxPQUFPLENBQWtCO0lBQUcsQ0FBQzs7K0dBRHJDLGtCQUFrQjttR0FBbEIsa0JBQWtCLHlDQUZsQixDQUFDLGdCQUFnQixDQUFDLDBCQ04vQixtNEVBaUVBOzJGRHpEYSxrQkFBa0I7a0JBTDlCLFNBQVM7K0JBQ0UsZ0JBQWdCLGFBRWYsQ0FBQyxnQkFBZ0IsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IFRlbmFudEJveFNlcnZpY2UgfSBmcm9tICdAYWJwL25nLmFjY291bnQuY29yZSc7XHJcbmltcG9ydCB7IENvbXBvbmVudCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xyXG5cclxuQENvbXBvbmVudCh7XHJcbiAgc2VsZWN0b3I6ICdhYnAtdGVuYW50LWJveCcsXHJcbiAgdGVtcGxhdGVVcmw6ICcuL3RlbmFudC1ib3guY29tcG9uZW50Lmh0bWwnLFxyXG4gIHByb3ZpZGVyczogW1RlbmFudEJveFNlcnZpY2VdLFxyXG59KVxyXG5leHBvcnQgY2xhc3MgVGVuYW50Qm94Q29tcG9uZW50IHtcclxuICBjb25zdHJ1Y3RvcihwdWJsaWMgc2VydmljZTogVGVuYW50Qm94U2VydmljZSkge31cclxufVxyXG4iLCI8bmctY29udGFpbmVyICpuZ0lmPVwiKHNlcnZpY2UuY3VycmVudFRlbmFudCQgfCBhc3luYykgfHwgeyBuYW1lOiAnJyB9IGFzIGN1cnJlbnRUZW5hbnRcIj5cclxuICA8ZGl2IGNsYXNzPVwiY2FyZCBzaGFkb3ctc20gcm91bmRlZCBtYi0zXCI+XHJcbiAgICA8ZGl2IGNsYXNzPVwiY2FyZC1ib2R5IHB4LTVcIj5cclxuICAgICAgPGRpdiBjbGFzcz1cInJvd1wiPlxyXG4gICAgICAgIDxkaXYgY2xhc3M9XCJjb2xcIj5cclxuICAgICAgICAgIDxzcGFuIHN0eWxlPVwiZm9udC1zaXplOiAwLjhlbVwiIGNsYXNzPVwidGV4dC11cHBlcmNhc2UgdGV4dC1tdXRlZFwiPnt7XHJcbiAgICAgICAgICAgICdBYnBVaU11bHRpVGVuYW5jeTo6VGVuYW50JyB8IGFicExvY2FsaXphdGlvblxyXG4gICAgICAgICAgfX08L3NwYW5cclxuICAgICAgICAgID48YnIgLz5cclxuICAgICAgICAgIDxoNiBjbGFzcz1cIm0tMCBkLWlubGluZS1ibG9ja1wiPlxyXG4gICAgICAgICAgICA8aT57eyBjdXJyZW50VGVuYW50Lm5hbWUgfHwgKCdBYnBVaU11bHRpVGVuYW5jeTo6Tm90U2VsZWN0ZWQnIHwgYWJwTG9jYWxpemF0aW9uKSB9fTwvaT5cclxuICAgICAgICAgIDwvaDY+XHJcbiAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgPGRpdiBjbGFzcz1cImNvbC1hdXRvXCI+XHJcbiAgICAgICAgICA8YVxyXG4gICAgICAgICAgICBpZD1cIkFicFRlbmFudFN3aXRjaExpbmtcIlxyXG4gICAgICAgICAgICBocmVmPVwiamF2YXNjcmlwdDp2b2lkKDApO1wiXHJcbiAgICAgICAgICAgIGNsYXNzPVwiYnRuIGJ0bi1zbSBtdC0zIGJ0bi1vdXRsaW5lLXByaW1hcnlcIlxyXG4gICAgICAgICAgICAoY2xpY2spPVwic2VydmljZS5vblN3aXRjaCgpXCJcclxuICAgICAgICAgICAgPnt7ICdBYnBVaU11bHRpVGVuYW5jeTo6U3dpdGNoJyB8IGFicExvY2FsaXphdGlvbiB9fTwvYVxyXG4gICAgICAgICAgPlxyXG4gICAgICAgIDwvZGl2PlxyXG4gICAgICA8L2Rpdj5cclxuICAgIDwvZGl2PlxyXG4gIDwvZGl2PlxyXG5cclxuICA8YWJwLW1vZGFsIFsodmlzaWJsZSldPVwic2VydmljZS5pc01vZGFsVmlzaWJsZVwiIFtidXN5XT1cInNlcnZpY2UubW9kYWxCdXN5XCI+XHJcbiAgICA8bmctdGVtcGxhdGUgI2FicEhlYWRlcj5cclxuICAgICAgPGg1PlN3aXRjaCBUZW5hbnQ8L2g1PlxyXG4gICAgPC9uZy10ZW1wbGF0ZT5cclxuICAgIDxuZy10ZW1wbGF0ZSAjYWJwQm9keT5cclxuICAgICAgPGZvcm0gKG5nU3VibWl0KT1cInNlcnZpY2Uuc2F2ZSgpXCI+XHJcbiAgICAgICAgPGRpdiBjbGFzcz1cIm10LTJcIj5cclxuICAgICAgICAgIDxkaXYgY2xhc3M9XCJtYi0zIGZvcm0tZ3JvdXBcIj5cclxuICAgICAgICAgICAgPGxhYmVsIGZvcj1cIm5hbWVcIiBjbGFzcz1cImZvcm0tbGFiZWxcIj57e1xyXG4gICAgICAgICAgICAgICdBYnBVaU11bHRpVGVuYW5jeTo6TmFtZScgfCBhYnBMb2NhbGl6YXRpb25cclxuICAgICAgICAgICAgfX08L2xhYmVsPlxyXG4gICAgICAgICAgICA8aW5wdXRcclxuICAgICAgICAgICAgICBbKG5nTW9kZWwpXT1cInNlcnZpY2UubmFtZVwiXHJcbiAgICAgICAgICAgICAgdHlwZT1cInRleHRcIlxyXG4gICAgICAgICAgICAgIGlkPVwibmFtZVwiXHJcbiAgICAgICAgICAgICAgbmFtZT1cInRlbmFudFwiXHJcbiAgICAgICAgICAgICAgY2xhc3M9XCJmb3JtLWNvbnRyb2xcIlxyXG4gICAgICAgICAgICAgIGF1dG9mb2N1c1xyXG4gICAgICAgICAgICAvPlxyXG4gICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICA8cD57eyAnQWJwVWlNdWx0aVRlbmFuY3k6OlN3aXRjaFRlbmFudEhpbnQnIHwgYWJwTG9jYWxpemF0aW9uIH19PC9wPlxyXG4gICAgICAgIDwvZGl2PlxyXG4gICAgICA8L2Zvcm0+XHJcbiAgICA8L25nLXRlbXBsYXRlPlxyXG4gICAgPG5nLXRlbXBsYXRlICNhYnBGb290ZXI+XHJcbiAgICAgIDxidXR0b24gYWJwQ2xvc2UgdHlwZT1cImJ1dHRvblwiIGNsYXNzPVwiYnRuIGJ0bi1zZWNvbmRhcnlcIj5cclxuICAgICAgICB7eyAnQWJwVGVuYW50TWFuYWdlbWVudDo6Q2FuY2VsJyB8IGFicExvY2FsaXphdGlvbiB9fVxyXG4gICAgICA8L2J1dHRvbj5cclxuICAgICAgPGFicC1idXR0b25cclxuICAgICAgICB0eXBlPVwiYWJwLWJ1dHRvblwiXHJcbiAgICAgICAgaWNvbkNsYXNzPVwiZmEgZmEtY2hlY2tcIlxyXG4gICAgICAgIChjbGljayk9XCJzZXJ2aWNlLnNhdmUoKVwiXHJcbiAgICAgICAgW2Rpc2FibGVkXT1cImN1cnJlbnRUZW5hbnQ/Lm5hbWUgPT09IHNlcnZpY2UubmFtZVwiXHJcbiAgICAgID5cclxuICAgICAgICA8c3Bhbj57eyAnQWJwVGVuYW50TWFuYWdlbWVudDo6U2F2ZScgfCBhYnBMb2NhbGl6YXRpb24gfX08L3NwYW4+XHJcbiAgICAgIDwvYWJwLWJ1dHRvbj5cclxuICAgIDwvbmctdGVtcGxhdGU+XHJcbiAgPC9hYnAtbW9kYWw+XHJcbjwvbmctY29udGFpbmVyPlxyXG4iXX0=
|
|
@@ -0,0 +1,31 @@
|
|
|
1
|
+
import { SubscriptionService } from '@abp/ng.core';
|
|
2
|
+
import { collapseWithMargin, slideFromBottom } from '@abp/ng.theme.shared';
|
|
3
|
+
import { Component } from '@angular/core';
|
|
4
|
+
import { LayoutService } from '../../services/layout.service';
|
|
5
|
+
import * as i0 from "@angular/core";
|
|
6
|
+
import * as i1 from "../../services/layout.service";
|
|
7
|
+
import * as i2 from "../logo/logo.component";
|
|
8
|
+
import * as i3 from "../routes/routes.component";
|
|
9
|
+
import * as i4 from "../nav-items/nav-items.component";
|
|
10
|
+
import * as i5 from "../page-alert-container/page-alert-container.component";
|
|
11
|
+
import * as i6 from "@ng-bootstrap/ng-bootstrap";
|
|
12
|
+
import * as i7 from "@abp/ng.core";
|
|
13
|
+
import * as i8 from "@angular/common";
|
|
14
|
+
import * as i9 from "@angular/router";
|
|
15
|
+
export class ApplicationLayoutComponent {
|
|
16
|
+
constructor(service) {
|
|
17
|
+
this.service = service;
|
|
18
|
+
}
|
|
19
|
+
ngAfterViewInit() {
|
|
20
|
+
this.service.subscribeWindowSize();
|
|
21
|
+
}
|
|
22
|
+
}
|
|
23
|
+
// required for dynamic component
|
|
24
|
+
ApplicationLayoutComponent.type = "application" /* application */;
|
|
25
|
+
ApplicationLayoutComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.1.1", ngImport: i0, type: ApplicationLayoutComponent, deps: [{ token: i1.LayoutService }], target: i0.ɵɵFactoryTarget.Component });
|
|
26
|
+
ApplicationLayoutComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "13.1.1", type: ApplicationLayoutComponent, selector: "abp-layout-application", providers: [LayoutService, SubscriptionService], ngImport: i0, template: "<nav\r\n class=\"navbar navbar-expand-lg navbar-dark bg-dark shadow-sm flex-column flex-md-row mb-4\"\r\n id=\"main-navbar\"\r\n style=\"min-height: 4rem\"\r\n>\r\n <div class=\"container\">\r\n <abp-logo *abpReplaceableTemplate=\"{ componentKey: service.logoComponentKey }\"></abp-logo>\r\n <button\r\n class=\"navbar-toggler\"\r\n type=\"button\"\r\n [attr.aria-expanded]=\"!service.isCollapsed\"\r\n (click)=\"service.isCollapsed = !service.isCollapsed\"\r\n >\r\n <span class=\"navbar-toggler-icon\"></span>\r\n </button>\r\n <div class=\"navbar-collapse\" [class.overflow-hidden]=\"service.smallScreen\" id=\"main-navbar-collapse\">\r\n <ng-container *ngTemplateOutlet=\"!service.smallScreen ? navigations : null\"></ng-container>\r\n\r\n <div *ngIf=\"service.smallScreen\" [@collapseWithMargin]=\"service.isCollapsed ? 'collapsed' : 'expanded'\">\r\n <ng-container *ngTemplateOutlet=\"navigations\"></ng-container>\r\n </div>\r\n\r\n <ng-template #navigations>\r\n <abp-routes\r\n *abpReplaceableTemplate=\"{\r\n componentKey: service.routesComponentKey,\r\n inputs: {\r\n smallScreen: { value: service.smallScreen }\r\n }\r\n }\"\r\n class=\"mx-auto\"\r\n [smallScreen]=\"service.smallScreen\"\r\n ></abp-routes>\r\n\r\n <abp-nav-items\r\n *abpReplaceableTemplate=\"{\r\n componentKey: service.navItemsComponentKey\r\n }\"\r\n ></abp-nav-items>\r\n </ng-template>\r\n </div>\r\n </div>\r\n</nav>\r\n\r\n<!-- [@slideFromBottom]=\"outlet.isActivated && outlet.activatedRoute?.routeConfig?.path\" TODO: throws ExpressionChangedAfterItHasBeenCheck when animation is active. It should be fixed -->\r\n<div class=\"container\">\r\n <abp-page-alert-container></abp-page-alert-container>\r\n\r\n <router-outlet #outlet=\"outlet\"></router-outlet>\r\n</div>\r\n", components: [{ type: i2.LogoComponent, selector: "abp-logo" }, { type: i3.RoutesComponent, selector: "abp-routes", inputs: ["smallScreen"] }, { type: i4.NavItemsComponent, selector: "abp-nav-items" }, { type: i5.PageAlertContainerComponent, selector: "abp-page-alert-container" }], directives: [{ type: i6.NgbNavbar, selector: ".navbar" }, { type: i7.ReplaceableTemplateDirective, selector: "[abpReplaceableTemplate]", inputs: ["abpReplaceableTemplate"] }, { type: i8.NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet"] }, { type: i8.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { type: i9.RouterOutlet, selector: "router-outlet", outputs: ["activate", "deactivate", "attach", "detach"], exportAs: ["outlet"] }], animations: [slideFromBottom, collapseWithMargin] });
|
|
27
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.1.1", ngImport: i0, type: ApplicationLayoutComponent, decorators: [{
|
|
28
|
+
type: Component,
|
|
29
|
+
args: [{ selector: 'abp-layout-application', animations: [slideFromBottom, collapseWithMargin], providers: [LayoutService, SubscriptionService], template: "<nav\r\n class=\"navbar navbar-expand-lg navbar-dark bg-dark shadow-sm flex-column flex-md-row mb-4\"\r\n id=\"main-navbar\"\r\n style=\"min-height: 4rem\"\r\n>\r\n <div class=\"container\">\r\n <abp-logo *abpReplaceableTemplate=\"{ componentKey: service.logoComponentKey }\"></abp-logo>\r\n <button\r\n class=\"navbar-toggler\"\r\n type=\"button\"\r\n [attr.aria-expanded]=\"!service.isCollapsed\"\r\n (click)=\"service.isCollapsed = !service.isCollapsed\"\r\n >\r\n <span class=\"navbar-toggler-icon\"></span>\r\n </button>\r\n <div class=\"navbar-collapse\" [class.overflow-hidden]=\"service.smallScreen\" id=\"main-navbar-collapse\">\r\n <ng-container *ngTemplateOutlet=\"!service.smallScreen ? navigations : null\"></ng-container>\r\n\r\n <div *ngIf=\"service.smallScreen\" [@collapseWithMargin]=\"service.isCollapsed ? 'collapsed' : 'expanded'\">\r\n <ng-container *ngTemplateOutlet=\"navigations\"></ng-container>\r\n </div>\r\n\r\n <ng-template #navigations>\r\n <abp-routes\r\n *abpReplaceableTemplate=\"{\r\n componentKey: service.routesComponentKey,\r\n inputs: {\r\n smallScreen: { value: service.smallScreen }\r\n }\r\n }\"\r\n class=\"mx-auto\"\r\n [smallScreen]=\"service.smallScreen\"\r\n ></abp-routes>\r\n\r\n <abp-nav-items\r\n *abpReplaceableTemplate=\"{\r\n componentKey: service.navItemsComponentKey\r\n }\"\r\n ></abp-nav-items>\r\n </ng-template>\r\n </div>\r\n </div>\r\n</nav>\r\n\r\n<!-- [@slideFromBottom]=\"outlet.isActivated && outlet.activatedRoute?.routeConfig?.path\" TODO: throws ExpressionChangedAfterItHasBeenCheck when animation is active. It should be fixed -->\r\n<div class=\"container\">\r\n <abp-page-alert-container></abp-page-alert-container>\r\n\r\n <router-outlet #outlet=\"outlet\"></router-outlet>\r\n</div>\r\n" }]
|
|
30
|
+
}], ctorParameters: function () { return [{ type: i1.LayoutService }]; } });
|
|
31
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYXBwbGljYXRpb24tbGF5b3V0LmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uL3BhY2thZ2VzL3RoZW1lLWJhc2ljL3NyYy9saWIvY29tcG9uZW50cy9hcHBsaWNhdGlvbi1sYXlvdXQvYXBwbGljYXRpb24tbGF5b3V0LmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uLy4uLy4uL3BhY2thZ2VzL3RoZW1lLWJhc2ljL3NyYy9saWIvY29tcG9uZW50cy9hcHBsaWNhdGlvbi1sYXlvdXQvYXBwbGljYXRpb24tbGF5b3V0LmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBZSxtQkFBbUIsRUFBRSxNQUFNLGNBQWMsQ0FBQztBQUNoRSxPQUFPLEVBQUUsa0JBQWtCLEVBQUUsZUFBZSxFQUFFLE1BQU0sc0JBQXNCLENBQUM7QUFDM0UsT0FBTyxFQUFpQixTQUFTLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDekQsT0FBTyxFQUFFLGFBQWEsRUFBRSxNQUFNLCtCQUErQixDQUFDOzs7Ozs7Ozs7OztBQVE5RCxNQUFNLE9BQU8sMEJBQTBCO0lBSXJDLFlBQW1CLE9BQXNCO1FBQXRCLFlBQU8sR0FBUCxPQUFPLENBQWU7SUFBRyxDQUFDO0lBRTdDLGVBQWU7UUFDYixJQUFJLENBQUMsT0FBTyxDQUFDLG1CQUFtQixFQUFFLENBQUM7SUFDckMsQ0FBQzs7QUFQRCxpQ0FBaUM7QUFDMUIsK0JBQUksbUNBQTJCO3VIQUYzQiwwQkFBMEI7MkdBQTFCLDBCQUEwQixpREFGMUIsQ0FBQyxhQUFhLEVBQUUsbUJBQW1CLENBQUMsMEJDVGpELDg3REFrREEsc3lCRDFDYyxDQUFDLGVBQWUsRUFBRSxrQkFBa0IsQ0FBQzsyRkFHdEMsMEJBQTBCO2tCQU50QyxTQUFTOytCQUNFLHdCQUF3QixjQUV0QixDQUFDLGVBQWUsRUFBRSxrQkFBa0IsQ0FBQyxhQUN0QyxDQUFDLGFBQWEsRUFBRSxtQkFBbUIsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IGVMYXlvdXRUeXBlLCBTdWJzY3JpcHRpb25TZXJ2aWNlIH0gZnJvbSAnQGFicC9uZy5jb3JlJztcclxuaW1wb3J0IHsgY29sbGFwc2VXaXRoTWFyZ2luLCBzbGlkZUZyb21Cb3R0b20gfSBmcm9tICdAYWJwL25nLnRoZW1lLnNoYXJlZCc7XHJcbmltcG9ydCB7IEFmdGVyVmlld0luaXQsIENvbXBvbmVudCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xyXG5pbXBvcnQgeyBMYXlvdXRTZXJ2aWNlIH0gZnJvbSAnLi4vLi4vc2VydmljZXMvbGF5b3V0LnNlcnZpY2UnO1xyXG5cclxuQENvbXBvbmVudCh7XHJcbiAgc2VsZWN0b3I6ICdhYnAtbGF5b3V0LWFwcGxpY2F0aW9uJyxcclxuICB0ZW1wbGF0ZVVybDogJy4vYXBwbGljYXRpb24tbGF5b3V0LmNvbXBvbmVudC5odG1sJyxcclxuICBhbmltYXRpb25zOiBbc2xpZGVGcm9tQm90dG9tLCBjb2xsYXBzZVdpdGhNYXJnaW5dLFxyXG4gIHByb3ZpZGVyczogW0xheW91dFNlcnZpY2UsIFN1YnNjcmlwdGlvblNlcnZpY2VdLFxyXG59KVxyXG5leHBvcnQgY2xhc3MgQXBwbGljYXRpb25MYXlvdXRDb21wb25lbnQgaW1wbGVtZW50cyBBZnRlclZpZXdJbml0IHtcclxuICAvLyByZXF1aXJlZCBmb3IgZHluYW1pYyBjb21wb25lbnRcclxuICBzdGF0aWMgdHlwZSA9IGVMYXlvdXRUeXBlLmFwcGxpY2F0aW9uO1xyXG5cclxuICBjb25zdHJ1Y3RvcihwdWJsaWMgc2VydmljZTogTGF5b3V0U2VydmljZSkge31cclxuXHJcbiAgbmdBZnRlclZpZXdJbml0KCkge1xyXG4gICAgdGhpcy5zZXJ2aWNlLnN1YnNjcmliZVdpbmRvd1NpemUoKTtcclxuICB9XHJcbn1cclxuIiwiPG5hdlxyXG4gIGNsYXNzPVwibmF2YmFyIG5hdmJhci1leHBhbmQtbGcgbmF2YmFyLWRhcmsgYmctZGFyayBzaGFkb3ctc20gZmxleC1jb2x1bW4gZmxleC1tZC1yb3cgbWItNFwiXHJcbiAgaWQ9XCJtYWluLW5hdmJhclwiXHJcbiAgc3R5bGU9XCJtaW4taGVpZ2h0OiA0cmVtXCJcclxuPlxyXG4gIDxkaXYgY2xhc3M9XCJjb250YWluZXJcIj5cclxuICAgIDxhYnAtbG9nbyAqYWJwUmVwbGFjZWFibGVUZW1wbGF0ZT1cInsgY29tcG9uZW50S2V5OiBzZXJ2aWNlLmxvZ29Db21wb25lbnRLZXkgfVwiPjwvYWJwLWxvZ28+XHJcbiAgICA8YnV0dG9uXHJcbiAgICAgIGNsYXNzPVwibmF2YmFyLXRvZ2dsZXJcIlxyXG4gICAgICB0eXBlPVwiYnV0dG9uXCJcclxuICAgICAgW2F0dHIuYXJpYS1leHBhbmRlZF09XCIhc2VydmljZS5pc0NvbGxhcHNlZFwiXHJcbiAgICAgIChjbGljayk9XCJzZXJ2aWNlLmlzQ29sbGFwc2VkID0gIXNlcnZpY2UuaXNDb2xsYXBzZWRcIlxyXG4gICAgPlxyXG4gICAgICA8c3BhbiBjbGFzcz1cIm5hdmJhci10b2dnbGVyLWljb25cIj48L3NwYW4+XHJcbiAgICA8L2J1dHRvbj5cclxuICAgIDxkaXYgY2xhc3M9XCJuYXZiYXItY29sbGFwc2VcIiBbY2xhc3Mub3ZlcmZsb3ctaGlkZGVuXT1cInNlcnZpY2Uuc21hbGxTY3JlZW5cIiBpZD1cIm1haW4tbmF2YmFyLWNvbGxhcHNlXCI+XHJcbiAgICAgIDxuZy1jb250YWluZXIgKm5nVGVtcGxhdGVPdXRsZXQ9XCIhc2VydmljZS5zbWFsbFNjcmVlbiA/IG5hdmlnYXRpb25zIDogbnVsbFwiPjwvbmctY29udGFpbmVyPlxyXG5cclxuICAgICAgPGRpdiAqbmdJZj1cInNlcnZpY2Uuc21hbGxTY3JlZW5cIiBbQGNvbGxhcHNlV2l0aE1hcmdpbl09XCJzZXJ2aWNlLmlzQ29sbGFwc2VkID8gJ2NvbGxhcHNlZCcgOiAnZXhwYW5kZWQnXCI+XHJcbiAgICAgICAgPG5nLWNvbnRhaW5lciAqbmdUZW1wbGF0ZU91dGxldD1cIm5hdmlnYXRpb25zXCI+PC9uZy1jb250YWluZXI+XHJcbiAgICAgIDwvZGl2PlxyXG5cclxuICAgICAgPG5nLXRlbXBsYXRlICNuYXZpZ2F0aW9ucz5cclxuICAgICAgICA8YWJwLXJvdXRlc1xyXG4gICAgICAgICAgKmFicFJlcGxhY2VhYmxlVGVtcGxhdGU9XCJ7XHJcbiAgICAgICAgICAgIGNvbXBvbmVudEtleTogc2VydmljZS5yb3V0ZXNDb21wb25lbnRLZXksXHJcbiAgICAgICAgICAgIGlucHV0czoge1xyXG4gICAgICAgICAgICAgIHNtYWxsU2NyZWVuOiB7IHZhbHVlOiBzZXJ2aWNlLnNtYWxsU2NyZWVuIH1cclxuICAgICAgICAgICAgfVxyXG4gICAgICAgICAgfVwiXHJcbiAgICAgICAgICBjbGFzcz1cIm14LWF1dG9cIlxyXG4gICAgICAgICAgW3NtYWxsU2NyZWVuXT1cInNlcnZpY2Uuc21hbGxTY3JlZW5cIlxyXG4gICAgICAgID48L2FicC1yb3V0ZXM+XHJcblxyXG4gICAgICAgIDxhYnAtbmF2LWl0ZW1zXHJcbiAgICAgICAgICAqYWJwUmVwbGFjZWFibGVUZW1wbGF0ZT1cIntcclxuICAgICAgICAgICAgY29tcG9uZW50S2V5OiBzZXJ2aWNlLm5hdkl0ZW1zQ29tcG9uZW50S2V5XHJcbiAgICAgICAgICB9XCJcclxuICAgICAgICA+PC9hYnAtbmF2LWl0ZW1zPlxyXG4gICAgICA8L25nLXRlbXBsYXRlPlxyXG4gICAgPC9kaXY+XHJcbiAgPC9kaXY+XHJcbjwvbmF2PlxyXG5cclxuPCEtLSBbQHNsaWRlRnJvbUJvdHRvbV09XCJvdXRsZXQuaXNBY3RpdmF0ZWQgJiYgb3V0bGV0LmFjdGl2YXRlZFJvdXRlPy5yb3V0ZUNvbmZpZz8ucGF0aFwiIFRPRE86IHRocm93cyBFeHByZXNzaW9uQ2hhbmdlZEFmdGVySXRIYXNCZWVuQ2hlY2sgd2hlbiBhbmltYXRpb24gaXMgYWN0aXZlLiBJdCBzaG91bGQgYmUgZml4ZWQgLS0+XHJcbjxkaXYgY2xhc3M9XCJjb250YWluZXJcIj5cclxuICA8YWJwLXBhZ2UtYWxlcnQtY29udGFpbmVyPjwvYWJwLXBhZ2UtYWxlcnQtY29udGFpbmVyPlxyXG5cclxuICA8cm91dGVyLW91dGxldCAjb3V0bGV0PVwib3V0bGV0XCI+PC9yb3V0ZXItb3V0bGV0PlxyXG48L2Rpdj5cclxuIl19
|
|
@@ -5,12 +5,12 @@ import * as i2 from "@angular/router";
|
|
|
5
5
|
export class EmptyLayoutComponent {
|
|
6
6
|
}
|
|
7
7
|
EmptyLayoutComponent.type = "empty" /* empty */;
|
|
8
|
-
EmptyLayoutComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "
|
|
9
|
-
EmptyLayoutComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "
|
|
8
|
+
EmptyLayoutComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.1.1", ngImport: i0, type: EmptyLayoutComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
|
|
9
|
+
EmptyLayoutComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "13.1.1", type: EmptyLayoutComponent, selector: "abp-layout-empty", ngImport: i0, template: `
|
|
10
10
|
<router-outlet></router-outlet>
|
|
11
11
|
<abp-confirmation></abp-confirmation>
|
|
12
|
-
`, isInline: true, components: [{ type: i1.ConfirmationComponent, selector: "abp-confirmation" }], directives: [{ type: i2.RouterOutlet, selector: "router-outlet", outputs: ["activate", "deactivate"], exportAs: ["outlet"] }] });
|
|
13
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "
|
|
12
|
+
`, isInline: true, components: [{ type: i1.ConfirmationComponent, selector: "abp-confirmation" }], directives: [{ type: i2.RouterOutlet, selector: "router-outlet", outputs: ["activate", "deactivate", "attach", "detach"], exportAs: ["outlet"] }] });
|
|
13
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.1.1", ngImport: i0, type: EmptyLayoutComponent, decorators: [{
|
|
14
14
|
type: Component,
|
|
15
15
|
args: [{
|
|
16
16
|
selector: 'abp-layout-empty',
|
|
@@ -20,4 +20,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.13", ngImpo
|
|
|
20
20
|
`,
|
|
21
21
|
}]
|
|
22
22
|
}] });
|
|
23
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
23
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZW1wdHktbGF5b3V0LmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uL3BhY2thZ2VzL3RoZW1lLWJhc2ljL3NyYy9saWIvY29tcG9uZW50cy9lbXB0eS1sYXlvdXQvZW1wdHktbGF5b3V0LmNvbXBvbmVudC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsU0FBUyxFQUFFLE1BQU0sZUFBZSxDQUFDOzs7O0FBVTFDLE1BQU0sT0FBTyxvQkFBb0I7O0FBQ3hCLHlCQUFJLHVCQUFxQjtpSEFEckIsb0JBQW9CO3FHQUFwQixvQkFBb0Isd0RBTHJCOzs7R0FHVDsyRkFFVSxvQkFBb0I7a0JBUGhDLFNBQVM7bUJBQUM7b0JBQ1QsUUFBUSxFQUFFLGtCQUFrQjtvQkFDNUIsUUFBUSxFQUFFOzs7R0FHVDtpQkFDRiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENvbXBvbmVudCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xyXG5pbXBvcnQgeyBlTGF5b3V0VHlwZSB9IGZyb20gJ0BhYnAvbmcuY29yZSc7XHJcblxyXG5AQ29tcG9uZW50KHtcclxuICBzZWxlY3RvcjogJ2FicC1sYXlvdXQtZW1wdHknLFxyXG4gIHRlbXBsYXRlOiBgXHJcbiAgICA8cm91dGVyLW91dGxldD48L3JvdXRlci1vdXRsZXQ+XHJcbiAgICA8YWJwLWNvbmZpcm1hdGlvbj48L2FicC1jb25maXJtYXRpb24+XHJcbiAgYCxcclxufSlcclxuZXhwb3J0IGNsYXNzIEVtcHR5TGF5b3V0Q29tcG9uZW50IHtcclxuICBzdGF0aWMgdHlwZSA9IGVMYXlvdXRUeXBlLmVtcHR5O1xyXG59XHJcbiJdfQ==
|
|
@@ -7,7 +7,7 @@ export * from './logo/logo.component';
|
|
|
7
7
|
export * from './nav-items/current-user.component';
|
|
8
8
|
export * from './nav-items/languages.component';
|
|
9
9
|
export * from './nav-items/nav-items.component';
|
|
10
|
+
export * from './page-alert-container/page-alert-container.component';
|
|
10
11
|
export * from './routes/routes.component';
|
|
11
12
|
export * from './validation-error/validation-error.component';
|
|
12
|
-
|
|
13
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wYWNrYWdlcy90aGVtZS1iYXNpYy9zcmMvbGliL2NvbXBvbmVudHMvaW5kZXgudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsY0FBYywyQ0FBMkMsQ0FBQztBQUMxRCxjQUFjLHNEQUFzRCxDQUFDO0FBQ3JFLGNBQWMsa0RBQWtELENBQUM7QUFDakUsY0FBYyxtREFBbUQsQ0FBQztBQUNsRSxjQUFjLHVDQUF1QyxDQUFDO0FBQ3RELGNBQWMsdUJBQXVCLENBQUM7QUFDdEMsY0FBYyxvQ0FBb0MsQ0FBQztBQUNuRCxjQUFjLGlDQUFpQyxDQUFDO0FBQ2hELGNBQWMsaUNBQWlDLENBQUM7QUFDaEQsY0FBYywyQkFBMkIsQ0FBQztBQUMxQyxjQUFjLCtDQUErQyxDQUFDO0FBQzlELGNBQWMsdURBQXVELENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJleHBvcnQgKiBmcm9tICcuL2FjY291bnQtbGF5b3V0L2FjY291bnQtbGF5b3V0LmNvbXBvbmVudCc7XHJcbmV4cG9ydCAqIGZyb20gJy4vYWNjb3VudC1sYXlvdXQvYXV0aC13cmFwcGVyL2F1dGgtd3JhcHBlci5jb21wb25lbnQnO1xyXG5leHBvcnQgKiBmcm9tICcuL2FjY291bnQtbGF5b3V0L3RlbmFudC1ib3gvdGVuYW50LWJveC5jb21wb25lbnQnO1xyXG5leHBvcnQgKiBmcm9tICcuL2FwcGxpY2F0aW9uLWxheW91dC9hcHBsaWNhdGlvbi1sYXlvdXQuY29tcG9uZW50JztcclxuZXhwb3J0ICogZnJvbSAnLi9lbXB0eS1sYXlvdXQvZW1wdHktbGF5b3V0LmNvbXBvbmVudCc7XHJcbmV4cG9ydCAqIGZyb20gJy4vbG9nby9sb2dvLmNvbXBvbmVudCc7XHJcbmV4cG9ydCAqIGZyb20gJy4vbmF2LWl0ZW1zL2N1cnJlbnQtdXNlci5jb21wb25lbnQnO1xyXG5leHBvcnQgKiBmcm9tICcuL25hdi1pdGVtcy9sYW5ndWFnZXMuY29tcG9uZW50JztcclxuZXhwb3J0ICogZnJvbSAnLi9uYXYtaXRlbXMvbmF2LWl0ZW1zLmNvbXBvbmVudCc7XHJcbmV4cG9ydCAqIGZyb20gJy4vcm91dGVzL3JvdXRlcy5jb21wb25lbnQnO1xyXG5leHBvcnQgKiBmcm9tICcuL3ZhbGlkYXRpb24tZXJyb3IvdmFsaWRhdGlvbi1lcnJvci5jb21wb25lbnQnO1xyXG5leHBvcnQgKiBmcm9tICcuL3BhZ2UtYWxlcnQtY29udGFpbmVyL3BhZ2UtYWxlcnQtY29udGFpbmVyLmNvbXBvbmVudCc7XHJcbiJdfQ==
|
|
13
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wYWNrYWdlcy90aGVtZS1iYXNpYy9zcmMvbGliL2NvbXBvbmVudHMvaW5kZXgudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsY0FBYywyQ0FBMkMsQ0FBQztBQUMxRCxjQUFjLHNEQUFzRCxDQUFDO0FBQ3JFLGNBQWMsa0RBQWtELENBQUM7QUFDakUsY0FBYyxtREFBbUQsQ0FBQztBQUNsRSxjQUFjLHVDQUF1QyxDQUFDO0FBQ3RELGNBQWMsdUJBQXVCLENBQUM7QUFDdEMsY0FBYyxvQ0FBb0MsQ0FBQztBQUNuRCxjQUFjLGlDQUFpQyxDQUFDO0FBQ2hELGNBQWMsaUNBQWlDLENBQUM7QUFDaEQsY0FBYyx1REFBdUQsQ0FBQztBQUN0RSxjQUFjLDJCQUEyQixDQUFDO0FBQzFDLGNBQWMsK0NBQStDLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJleHBvcnQgKiBmcm9tICcuL2FjY291bnQtbGF5b3V0L2FjY291bnQtbGF5b3V0LmNvbXBvbmVudCc7XHJcbmV4cG9ydCAqIGZyb20gJy4vYWNjb3VudC1sYXlvdXQvYXV0aC13cmFwcGVyL2F1dGgtd3JhcHBlci5jb21wb25lbnQnO1xyXG5leHBvcnQgKiBmcm9tICcuL2FjY291bnQtbGF5b3V0L3RlbmFudC1ib3gvdGVuYW50LWJveC5jb21wb25lbnQnO1xyXG5leHBvcnQgKiBmcm9tICcuL2FwcGxpY2F0aW9uLWxheW91dC9hcHBsaWNhdGlvbi1sYXlvdXQuY29tcG9uZW50JztcclxuZXhwb3J0ICogZnJvbSAnLi9lbXB0eS1sYXlvdXQvZW1wdHktbGF5b3V0LmNvbXBvbmVudCc7XHJcbmV4cG9ydCAqIGZyb20gJy4vbG9nby9sb2dvLmNvbXBvbmVudCc7XHJcbmV4cG9ydCAqIGZyb20gJy4vbmF2LWl0ZW1zL2N1cnJlbnQtdXNlci5jb21wb25lbnQnO1xyXG5leHBvcnQgKiBmcm9tICcuL25hdi1pdGVtcy9sYW5ndWFnZXMuY29tcG9uZW50JztcclxuZXhwb3J0ICogZnJvbSAnLi9uYXYtaXRlbXMvbmF2LWl0ZW1zLmNvbXBvbmVudCc7XHJcbmV4cG9ydCAqIGZyb20gJy4vcGFnZS1hbGVydC1jb250YWluZXIvcGFnZS1hbGVydC1jb250YWluZXIuY29tcG9uZW50JztcclxuZXhwb3J0ICogZnJvbSAnLi9yb3V0ZXMvcm91dGVzLmNvbXBvbmVudCc7XHJcbmV4cG9ydCAqIGZyb20gJy4vdmFsaWRhdGlvbi1lcnJvci92YWxpZGF0aW9uLWVycm9yLmNvbXBvbmVudCc7XHJcbiJdfQ==
|
|
@@ -12,8 +12,8 @@ export class LogoComponent {
|
|
|
12
12
|
return this.environment.getEnvironment().application;
|
|
13
13
|
}
|
|
14
14
|
}
|
|
15
|
-
LogoComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "
|
|
16
|
-
LogoComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "
|
|
15
|
+
LogoComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.1.1", ngImport: i0, type: LogoComponent, deps: [{ token: i1.EnvironmentService }], target: i0.ɵɵFactoryTarget.Component });
|
|
16
|
+
LogoComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "13.1.1", type: LogoComponent, selector: "abp-logo", ngImport: i0, template: `
|
|
17
17
|
<a class="navbar-brand" routerLink="/">
|
|
18
18
|
<img
|
|
19
19
|
*ngIf="appInfo.logoUrl; else appName"
|
|
@@ -27,8 +27,8 @@ LogoComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version:
|
|
|
27
27
|
<ng-template #appName>
|
|
28
28
|
{{ appInfo.name }}
|
|
29
29
|
</ng-template>
|
|
30
|
-
`, isInline: true, directives: [{ type: i2.RouterLinkWithHref, selector: "a[routerLink],area[routerLink]", inputs: ["
|
|
31
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "
|
|
30
|
+
`, isInline: true, directives: [{ type: i2.RouterLinkWithHref, selector: "a[routerLink],area[routerLink]", inputs: ["target", "queryParams", "fragment", "queryParamsHandling", "preserveFragment", "skipLocationChange", "replaceUrl", "state", "relativeTo", "routerLink"] }, { type: i3.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }] });
|
|
31
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.1.1", ngImport: i0, type: LogoComponent, decorators: [{
|
|
32
32
|
type: Component,
|
|
33
33
|
args: [{
|
|
34
34
|
selector: 'abp-logo',
|
|
@@ -49,4 +49,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.13", ngImpo
|
|
|
49
49
|
`,
|
|
50
50
|
}]
|
|
51
51
|
}], ctorParameters: function () { return [{ type: i1.EnvironmentService }]; } });
|
|
52
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
52
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibG9nby5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9wYWNrYWdlcy90aGVtZS1iYXNpYy9zcmMvbGliL2NvbXBvbmVudHMvbG9nby9sb2dvLmNvbXBvbmVudC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQW1CLGtCQUFrQixFQUFFLE1BQU0sY0FBYyxDQUFDO0FBQ25FLE9BQU8sRUFBRSxTQUFTLEVBQUUsTUFBTSxlQUFlLENBQUM7Ozs7O0FBb0IxQyxNQUFNLE9BQU8sYUFBYTtJQUt4QixZQUFvQixXQUErQjtRQUEvQixnQkFBVyxHQUFYLFdBQVcsQ0FBb0I7SUFBRyxDQUFDO0lBSnZELElBQUksT0FBTztRQUNULE9BQU8sSUFBSSxDQUFDLFdBQVcsQ0FBQyxjQUFjLEVBQUUsQ0FBQyxXQUFXLENBQUM7SUFDdkQsQ0FBQzs7MEdBSFUsYUFBYTs4RkFBYixhQUFhLGdEQWhCZDs7Ozs7Ozs7Ozs7Ozs7R0FjVDsyRkFFVSxhQUFhO2tCQWxCekIsU0FBUzttQkFBQztvQkFDVCxRQUFRLEVBQUUsVUFBVTtvQkFDcEIsUUFBUSxFQUFFOzs7Ozs7Ozs7Ozs7OztHQWNUO2lCQUNGIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQXBwbGljYXRpb25JbmZvLCBFbnZpcm9ubWVudFNlcnZpY2UgfSBmcm9tICdAYWJwL25nLmNvcmUnO1xyXG5pbXBvcnQgeyBDb21wb25lbnQgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcclxuXHJcbkBDb21wb25lbnQoe1xyXG4gIHNlbGVjdG9yOiAnYWJwLWxvZ28nLFxyXG4gIHRlbXBsYXRlOiBgXHJcbiAgICA8YSBjbGFzcz1cIm5hdmJhci1icmFuZFwiIHJvdXRlckxpbms9XCIvXCI+XHJcbiAgICAgIDxpbWdcclxuICAgICAgICAqbmdJZj1cImFwcEluZm8ubG9nb1VybDsgZWxzZSBhcHBOYW1lXCJcclxuICAgICAgICBbc3JjXT1cImFwcEluZm8ubG9nb1VybFwiXHJcbiAgICAgICAgW2FsdF09XCJhcHBJbmZvLm5hbWVcIlxyXG4gICAgICAgIHdpZHRoPVwiMTAwJVwiXHJcbiAgICAgICAgaGVpZ2h0PVwiYXV0b1wiXHJcbiAgICAgIC8+XHJcbiAgICA8L2E+XHJcblxyXG4gICAgPG5nLXRlbXBsYXRlICNhcHBOYW1lPlxyXG4gICAgICB7eyBhcHBJbmZvLm5hbWUgfX1cclxuICAgIDwvbmctdGVtcGxhdGU+XHJcbiAgYCxcclxufSlcclxuZXhwb3J0IGNsYXNzIExvZ29Db21wb25lbnQge1xyXG4gIGdldCBhcHBJbmZvKCk6IEFwcGxpY2F0aW9uSW5mbyB7XHJcbiAgICByZXR1cm4gdGhpcy5lbnZpcm9ubWVudC5nZXRFbnZpcm9ubWVudCgpLmFwcGxpY2F0aW9uO1xyXG4gIH1cclxuXHJcbiAgY29uc3RydWN0b3IocHJpdmF0ZSBlbnZpcm9ubWVudDogRW52aXJvbm1lbnRTZXJ2aWNlKSB7fVxyXG59XHJcbiJdfQ==
|
|
@@ -0,0 +1,39 @@
|
|
|
1
|
+
import { AuthService, ConfigStateService, NAVIGATE_TO_MANAGE_PROFILE, SessionStateService, } from '@abp/ng.core';
|
|
2
|
+
import { UserMenuService } from '@abp/ng.theme.shared';
|
|
3
|
+
import { Component, Inject } from '@angular/core';
|
|
4
|
+
import * as i0 from "@angular/core";
|
|
5
|
+
import * as i1 from "@abp/ng.theme.shared";
|
|
6
|
+
import * as i2 from "@abp/ng.core";
|
|
7
|
+
import * as i3 from "@angular/common";
|
|
8
|
+
import * as i4 from "@ng-bootstrap/ng-bootstrap";
|
|
9
|
+
export class CurrentUserComponent {
|
|
10
|
+
constructor(navigateToManageProfile, userMenu, authService, configState, sessionState) {
|
|
11
|
+
this.navigateToManageProfile = navigateToManageProfile;
|
|
12
|
+
this.userMenu = userMenu;
|
|
13
|
+
this.authService = authService;
|
|
14
|
+
this.configState = configState;
|
|
15
|
+
this.sessionState = sessionState;
|
|
16
|
+
this.currentUser$ = this.configState.getOne$('currentUser');
|
|
17
|
+
this.selectedTenant$ = this.sessionState.getTenant$();
|
|
18
|
+
this.trackByFn = (_, element) => element.id;
|
|
19
|
+
}
|
|
20
|
+
get smallScreen() {
|
|
21
|
+
return window.innerWidth < 992;
|
|
22
|
+
}
|
|
23
|
+
navigateToLogin() {
|
|
24
|
+
this.authService.navigateToLogin();
|
|
25
|
+
}
|
|
26
|
+
logout() {
|
|
27
|
+
this.authService.logout().subscribe();
|
|
28
|
+
}
|
|
29
|
+
}
|
|
30
|
+
CurrentUserComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.1.1", ngImport: i0, type: CurrentUserComponent, deps: [{ token: NAVIGATE_TO_MANAGE_PROFILE }, { token: i1.UserMenuService }, { token: i2.AuthService }, { token: i2.ConfigStateService }, { token: i2.SessionStateService }], target: i0.ɵɵFactoryTarget.Component });
|
|
31
|
+
CurrentUserComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "13.1.1", type: CurrentUserComponent, selector: "abp-current-user", ngImport: i0, template: "<ng-template #loginBtn>\r\n <a role=\"button\" class=\"nav-link pointer\" (click)=\"navigateToLogin()\">{{\r\n 'AbpAccount::Login' | abpLocalization\r\n }}</a>\r\n</ng-template>\r\n<div\r\n *ngIf=\"(currentUser$ | async)?.isAuthenticated; else loginBtn\"\r\n ngbDropdown\r\n class=\"dropdown\"\r\n #currentUserDropdown=\"ngbDropdown\"\r\n display=\"static\"\r\n>\r\n <a\r\n ngbDropdownToggle\r\n class=\"nav-link\"\r\n href=\"javascript:void(0)\"\r\n role=\"button\"\r\n id=\"dropdownMenuLink\"\r\n data-toggle=\"dropdown\"\r\n aria-haspopup=\"true\"\r\n aria-expanded=\"false\"\r\n >\r\n <small *ngIf=\"(selectedTenant$ | async)?.name as tenantName\"\r\n ><i>{{ tenantName }}</i\r\n >\\</small\r\n >\r\n <strong>{{ (currentUser$ | async)?.userName }}</strong>\r\n </a>\r\n <div\r\n class=\"dropdown-menu dropdown-menu-end border-0 shadow-sm\"\r\n aria-labelledby=\"dropdownMenuLink\"\r\n [class.d-block]=\"smallScreen && currentUserDropdown.isOpen()\"\r\n >\r\n <ng-container *ngFor=\"let item of userMenu.items$ | async; trackBy: trackByFn\">\r\n <ng-container *ngIf=\"item.visible && item.visible()\">\r\n <li class=\"nav-item d-flex align-items-center\" *abpPermission=\"item.requiredPolicy\">\r\n <ng-container\r\n *ngIf=\"item.component; else htmlTemplate\"\r\n [ngComponentOutlet]=\"item.component\"\r\n [ngComponentOutletInjector]=\"item | toInjector\"\r\n ></ng-container>\r\n\r\n <ng-template #htmlTemplate>\r\n <div\r\n *ngIf=\"item.html; else textTemplate\"\r\n [innerHTML]=\"item.html\"\r\n (click)=\"item.action ? item.action() : null\"\r\n ></div>\r\n </ng-template>\r\n\r\n <ng-template #textTemplate>\r\n <a\r\n *ngIf=\"item.textTemplate\"\r\n (click)=\"item.action ? item.action() : null\"\r\n class=\"dropdown-item pointer\"\r\n >\r\n <i *ngIf=\"item.textTemplate.icon\" class=\"me-1 {{ item.textTemplate.icon }}\"></i>\r\n {{ item.textTemplate.text | abpLocalization }}</a\r\n >\r\n </ng-template>\r\n </li>\r\n </ng-container>\r\n </ng-container>\r\n </div>\r\n</div>\r\n", directives: [{ type: i3.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { type: i4.NgbDropdown, selector: "[ngbDropdown]", inputs: ["autoClose", "dropdownClass", "open", "placement", "container", "display"], outputs: ["openChange"], exportAs: ["ngbDropdown"] }, { type: i4.NgbDropdownToggle, selector: "[ngbDropdownToggle]" }, { type: i3.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { type: i2.PermissionDirective, selector: "[abpPermission]", inputs: ["abpPermission"] }, { type: i3.NgComponentOutlet, selector: "[ngComponentOutlet]", inputs: ["ngComponentOutlet", "ngComponentOutletInjector", "ngComponentOutletContent", "ngComponentOutletNgModuleFactory"] }], pipes: { "abpLocalization": i2.LocalizationPipe, "async": i3.AsyncPipe, "toInjector": i2.ToInjectorPipe } });
|
|
32
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.1.1", ngImport: i0, type: CurrentUserComponent, decorators: [{
|
|
33
|
+
type: Component,
|
|
34
|
+
args: [{ selector: 'abp-current-user', template: "<ng-template #loginBtn>\r\n <a role=\"button\" class=\"nav-link pointer\" (click)=\"navigateToLogin()\">{{\r\n 'AbpAccount::Login' | abpLocalization\r\n }}</a>\r\n</ng-template>\r\n<div\r\n *ngIf=\"(currentUser$ | async)?.isAuthenticated; else loginBtn\"\r\n ngbDropdown\r\n class=\"dropdown\"\r\n #currentUserDropdown=\"ngbDropdown\"\r\n display=\"static\"\r\n>\r\n <a\r\n ngbDropdownToggle\r\n class=\"nav-link\"\r\n href=\"javascript:void(0)\"\r\n role=\"button\"\r\n id=\"dropdownMenuLink\"\r\n data-toggle=\"dropdown\"\r\n aria-haspopup=\"true\"\r\n aria-expanded=\"false\"\r\n >\r\n <small *ngIf=\"(selectedTenant$ | async)?.name as tenantName\"\r\n ><i>{{ tenantName }}</i\r\n >\\</small\r\n >\r\n <strong>{{ (currentUser$ | async)?.userName }}</strong>\r\n </a>\r\n <div\r\n class=\"dropdown-menu dropdown-menu-end border-0 shadow-sm\"\r\n aria-labelledby=\"dropdownMenuLink\"\r\n [class.d-block]=\"smallScreen && currentUserDropdown.isOpen()\"\r\n >\r\n <ng-container *ngFor=\"let item of userMenu.items$ | async; trackBy: trackByFn\">\r\n <ng-container *ngIf=\"item.visible && item.visible()\">\r\n <li class=\"nav-item d-flex align-items-center\" *abpPermission=\"item.requiredPolicy\">\r\n <ng-container\r\n *ngIf=\"item.component; else htmlTemplate\"\r\n [ngComponentOutlet]=\"item.component\"\r\n [ngComponentOutletInjector]=\"item | toInjector\"\r\n ></ng-container>\r\n\r\n <ng-template #htmlTemplate>\r\n <div\r\n *ngIf=\"item.html; else textTemplate\"\r\n [innerHTML]=\"item.html\"\r\n (click)=\"item.action ? item.action() : null\"\r\n ></div>\r\n </ng-template>\r\n\r\n <ng-template #textTemplate>\r\n <a\r\n *ngIf=\"item.textTemplate\"\r\n (click)=\"item.action ? item.action() : null\"\r\n class=\"dropdown-item pointer\"\r\n >\r\n <i *ngIf=\"item.textTemplate.icon\" class=\"me-1 {{ item.textTemplate.icon }}\"></i>\r\n {{ item.textTemplate.text | abpLocalization }}</a\r\n >\r\n </ng-template>\r\n </li>\r\n </ng-container>\r\n </ng-container>\r\n </div>\r\n</div>\r\n" }]
|
|
35
|
+
}], ctorParameters: function () { return [{ type: undefined, decorators: [{
|
|
36
|
+
type: Inject,
|
|
37
|
+
args: [NAVIGATE_TO_MANAGE_PROFILE]
|
|
38
|
+
}] }, { type: i1.UserMenuService }, { type: i2.AuthService }, { type: i2.ConfigStateService }, { type: i2.SessionStateService }]; } });
|
|
39
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY3VycmVudC11c2VyLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uL3BhY2thZ2VzL3RoZW1lLWJhc2ljL3NyYy9saWIvY29tcG9uZW50cy9uYXYtaXRlbXMvY3VycmVudC11c2VyLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uLy4uLy4uL3BhY2thZ2VzL3RoZW1lLWJhc2ljL3NyYy9saWIvY29tcG9uZW50cy9uYXYtaXRlbXMvY3VycmVudC11c2VyLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFDTCxXQUFXLEVBQ1gsa0JBQWtCLEVBRWxCLDBCQUEwQixFQUMxQixtQkFBbUIsR0FDcEIsTUFBTSxjQUFjLENBQUM7QUFDdEIsT0FBTyxFQUFZLGVBQWUsRUFBRSxNQUFNLHNCQUFzQixDQUFDO0FBQ2pFLE9BQU8sRUFBRSxTQUFTLEVBQUUsTUFBTSxFQUFtQixNQUFNLGVBQWUsQ0FBQzs7Ozs7O0FBT25FLE1BQU0sT0FBTyxvQkFBb0I7SUFVL0IsWUFDc0QsdUJBQW1DLEVBQ3ZFLFFBQXlCLEVBQ2pDLFdBQXdCLEVBQ3hCLFdBQStCLEVBQy9CLFlBQWlDO1FBSlcsNEJBQXVCLEdBQXZCLHVCQUF1QixDQUFZO1FBQ3ZFLGFBQVEsR0FBUixRQUFRLENBQWlCO1FBQ2pDLGdCQUFXLEdBQVgsV0FBVyxDQUFhO1FBQ3hCLGdCQUFXLEdBQVgsV0FBVyxDQUFvQjtRQUMvQixpQkFBWSxHQUFaLFlBQVksQ0FBcUI7UUFkM0MsaUJBQVksR0FBK0IsSUFBSSxDQUFDLFdBQVcsQ0FBQyxPQUFPLENBQUMsYUFBYSxDQUFDLENBQUM7UUFDbkYsb0JBQWUsR0FBRyxJQUFJLENBQUMsWUFBWSxDQUFDLFVBQVUsRUFBRSxDQUFDO1FBRWpELGNBQVMsR0FBOEIsQ0FBQyxDQUFDLEVBQUUsT0FBTyxFQUFFLEVBQUUsQ0FBQyxPQUFPLENBQUMsRUFBRSxDQUFDO0lBWS9ELENBQUM7SUFWSixJQUFJLFdBQVc7UUFDYixPQUFPLE1BQU0sQ0FBQyxVQUFVLEdBQUcsR0FBRyxDQUFDO0lBQ2pDLENBQUM7SUFVRCxlQUFlO1FBQ2IsSUFBSSxDQUFDLFdBQVcsQ0FBQyxlQUFlLEVBQUUsQ0FBQztJQUNyQyxDQUFDO0lBRUQsTUFBTTtRQUNKLElBQUksQ0FBQyxXQUFXLENBQUMsTUFBTSxFQUFFLENBQUMsU0FBUyxFQUFFLENBQUM7SUFDeEMsQ0FBQzs7aUhBeEJVLG9CQUFvQixrQkFXckIsMEJBQTBCO3FHQVh6QixvQkFBb0Isd0RDZmpDLGt5RUFpRUE7MkZEbERhLG9CQUFvQjtrQkFKaEMsU0FBUzsrQkFDRSxrQkFBa0I7OzBCQWN6QixNQUFNOzJCQUFDLDBCQUEwQiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7XHJcbiAgQXV0aFNlcnZpY2UsXHJcbiAgQ29uZmlnU3RhdGVTZXJ2aWNlLFxyXG4gIEN1cnJlbnRVc2VyRHRvLFxyXG4gIE5BVklHQVRFX1RPX01BTkFHRV9QUk9GSUxFLFxyXG4gIFNlc3Npb25TdGF0ZVNlcnZpY2UsXHJcbn0gZnJvbSAnQGFicC9uZy5jb3JlJztcclxuaW1wb3J0IHsgVXNlck1lbnUsIFVzZXJNZW51U2VydmljZSB9IGZyb20gJ0BhYnAvbmcudGhlbWUuc2hhcmVkJztcclxuaW1wb3J0IHsgQ29tcG9uZW50LCBJbmplY3QsIFRyYWNrQnlGdW5jdGlvbiB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xyXG5pbXBvcnQgeyBPYnNlcnZhYmxlIH0gZnJvbSAncnhqcyc7XHJcblxyXG5AQ29tcG9uZW50KHtcclxuICBzZWxlY3RvcjogJ2FicC1jdXJyZW50LXVzZXInLFxyXG4gIHRlbXBsYXRlVXJsOiAnLi9jdXJyZW50LXVzZXIuY29tcG9uZW50Lmh0bWwnLFxyXG59KVxyXG5leHBvcnQgY2xhc3MgQ3VycmVudFVzZXJDb21wb25lbnQge1xyXG4gIGN1cnJlbnRVc2VyJDogT2JzZXJ2YWJsZTxDdXJyZW50VXNlckR0bz4gPSB0aGlzLmNvbmZpZ1N0YXRlLmdldE9uZSQoJ2N1cnJlbnRVc2VyJyk7XHJcbiAgc2VsZWN0ZWRUZW5hbnQkID0gdGhpcy5zZXNzaW9uU3RhdGUuZ2V0VGVuYW50JCgpO1xyXG5cclxuICB0cmFja0J5Rm46IFRyYWNrQnlGdW5jdGlvbjxVc2VyTWVudT4gPSAoXywgZWxlbWVudCkgPT4gZWxlbWVudC5pZDtcclxuXHJcbiAgZ2V0IHNtYWxsU2NyZWVuKCk6IGJvb2xlYW4ge1xyXG4gICAgcmV0dXJuIHdpbmRvdy5pbm5lcldpZHRoIDwgOTkyO1xyXG4gIH1cclxuXHJcbiAgY29uc3RydWN0b3IoXHJcbiAgICBASW5qZWN0KE5BVklHQVRFX1RPX01BTkFHRV9QUk9GSUxFKSBwdWJsaWMgcmVhZG9ubHkgbmF2aWdhdGVUb01hbmFnZVByb2ZpbGU6ICgpID0+IHZvaWQsXHJcbiAgICBwdWJsaWMgcmVhZG9ubHkgdXNlck1lbnU6IFVzZXJNZW51U2VydmljZSxcclxuICAgIHByaXZhdGUgYXV0aFNlcnZpY2U6IEF1dGhTZXJ2aWNlLFxyXG4gICAgcHJpdmF0ZSBjb25maWdTdGF0ZTogQ29uZmlnU3RhdGVTZXJ2aWNlLFxyXG4gICAgcHJpdmF0ZSBzZXNzaW9uU3RhdGU6IFNlc3Npb25TdGF0ZVNlcnZpY2UsXHJcbiAgKSB7fVxyXG5cclxuICBuYXZpZ2F0ZVRvTG9naW4oKSB7XHJcbiAgICB0aGlzLmF1dGhTZXJ2aWNlLm5hdmlnYXRlVG9Mb2dpbigpO1xyXG4gIH1cclxuXHJcbiAgbG9nb3V0KCkge1xyXG4gICAgdGhpcy5hdXRoU2VydmljZS5sb2dvdXQoKS5zdWJzY3JpYmUoKTtcclxuICB9XHJcbn1cclxuIiwiPG5nLXRlbXBsYXRlICNsb2dpbkJ0bj5cclxuICA8YSByb2xlPVwiYnV0dG9uXCIgY2xhc3M9XCJuYXYtbGluayBwb2ludGVyXCIgKGNsaWNrKT1cIm5hdmlnYXRlVG9Mb2dpbigpXCI+e3tcclxuICAgICdBYnBBY2NvdW50OjpMb2dpbicgfCBhYnBMb2NhbGl6YXRpb25cclxuICB9fTwvYT5cclxuPC9uZy10ZW1wbGF0ZT5cclxuPGRpdlxyXG4gICpuZ0lmPVwiKGN1cnJlbnRVc2VyJCB8IGFzeW5jKT8uaXNBdXRoZW50aWNhdGVkOyBlbHNlIGxvZ2luQnRuXCJcclxuICBuZ2JEcm9wZG93blxyXG4gIGNsYXNzPVwiZHJvcGRvd25cIlxyXG4gICNjdXJyZW50VXNlckRyb3Bkb3duPVwibmdiRHJvcGRvd25cIlxyXG4gIGRpc3BsYXk9XCJzdGF0aWNcIlxyXG4+XHJcbiAgPGFcclxuICAgIG5nYkRyb3Bkb3duVG9nZ2xlXHJcbiAgICBjbGFzcz1cIm5hdi1saW5rXCJcclxuICAgIGhyZWY9XCJqYXZhc2NyaXB0OnZvaWQoMClcIlxyXG4gICAgcm9sZT1cImJ1dHRvblwiXHJcbiAgICBpZD1cImRyb3Bkb3duTWVudUxpbmtcIlxyXG4gICAgZGF0YS10b2dnbGU9XCJkcm9wZG93blwiXHJcbiAgICBhcmlhLWhhc3BvcHVwPVwidHJ1ZVwiXHJcbiAgICBhcmlhLWV4cGFuZGVkPVwiZmFsc2VcIlxyXG4gID5cclxuICAgIDxzbWFsbCAqbmdJZj1cIihzZWxlY3RlZFRlbmFudCQgfCBhc3luYyk/Lm5hbWUgYXMgdGVuYW50TmFtZVwiXHJcbiAgICAgID48aT57eyB0ZW5hbnROYW1lIH19PC9pXHJcbiAgICAgID5cXDwvc21hbGxcclxuICAgID5cclxuICAgIDxzdHJvbmc+e3sgKGN1cnJlbnRVc2VyJCB8IGFzeW5jKT8udXNlck5hbWUgfX08L3N0cm9uZz5cclxuICA8L2E+XHJcbiAgPGRpdlxyXG4gICAgY2xhc3M9XCJkcm9wZG93bi1tZW51IGRyb3Bkb3duLW1lbnUtZW5kIGJvcmRlci0wIHNoYWRvdy1zbVwiXHJcbiAgICBhcmlhLWxhYmVsbGVkYnk9XCJkcm9wZG93bk1lbnVMaW5rXCJcclxuICAgIFtjbGFzcy5kLWJsb2NrXT1cInNtYWxsU2NyZWVuICYmIGN1cnJlbnRVc2VyRHJvcGRvd24uaXNPcGVuKClcIlxyXG4gID5cclxuICAgIDxuZy1jb250YWluZXIgKm5nRm9yPVwibGV0IGl0ZW0gb2YgdXNlck1lbnUuaXRlbXMkIHwgYXN5bmM7IHRyYWNrQnk6IHRyYWNrQnlGblwiPlxyXG4gICAgICA8bmctY29udGFpbmVyICpuZ0lmPVwiaXRlbS52aXNpYmxlICYmIGl0ZW0udmlzaWJsZSgpXCI+XHJcbiAgICAgICAgPGxpIGNsYXNzPVwibmF2LWl0ZW0gZC1mbGV4IGFsaWduLWl0ZW1zLWNlbnRlclwiICphYnBQZXJtaXNzaW9uPVwiaXRlbS5yZXF1aXJlZFBvbGljeVwiPlxyXG4gICAgICAgICAgPG5nLWNvbnRhaW5lclxyXG4gICAgICAgICAgICAqbmdJZj1cIml0ZW0uY29tcG9uZW50OyBlbHNlIGh0bWxUZW1wbGF0ZVwiXHJcbiAgICAgICAgICAgIFtuZ0NvbXBvbmVudE91dGxldF09XCJpdGVtLmNvbXBvbmVudFwiXHJcbiAgICAgICAgICAgIFtuZ0NvbXBvbmVudE91dGxldEluamVjdG9yXT1cIml0ZW0gfCB0b0luamVjdG9yXCJcclxuICAgICAgICAgID48L25nLWNvbnRhaW5lcj5cclxuXHJcbiAgICAgICAgICA8bmctdGVtcGxhdGUgI2h0bWxUZW1wbGF0ZT5cclxuICAgICAgICAgICAgPGRpdlxyXG4gICAgICAgICAgICAgICpuZ0lmPVwiaXRlbS5odG1sOyBlbHNlIHRleHRUZW1wbGF0ZVwiXHJcbiAgICAgICAgICAgICAgW2lubmVySFRNTF09XCJpdGVtLmh0bWxcIlxyXG4gICAgICAgICAgICAgIChjbGljayk9XCJpdGVtLmFjdGlvbiA/IGl0ZW0uYWN0aW9uKCkgOiBudWxsXCJcclxuICAgICAgICAgICAgPjwvZGl2PlxyXG4gICAgICAgICAgPC9uZy10ZW1wbGF0ZT5cclxuXHJcbiAgICAgICAgICA8bmctdGVtcGxhdGUgI3RleHRUZW1wbGF0ZT5cclxuICAgICAgICAgICAgPGFcclxuICAgICAgICAgICAgICAqbmdJZj1cIml0ZW0udGV4dFRlbXBsYXRlXCJcclxuICAgICAgICAgICAgICAoY2xpY2spPVwiaXRlbS5hY3Rpb24gPyBpdGVtLmFjdGlvbigpIDogbnVsbFwiXHJcbiAgICAgICAgICAgICAgY2xhc3M9XCJkcm9wZG93bi1pdGVtIHBvaW50ZXJcIlxyXG4gICAgICAgICAgICA+XHJcbiAgICAgICAgICAgICAgPGkgKm5nSWY9XCJpdGVtLnRleHRUZW1wbGF0ZS5pY29uXCIgY2xhc3M9XCJtZS0xIHt7IGl0ZW0udGV4dFRlbXBsYXRlLmljb24gfX1cIj48L2k+XHJcbiAgICAgICAgICAgICAge3sgaXRlbS50ZXh0VGVtcGxhdGUudGV4dCB8IGFicExvY2FsaXphdGlvbiB9fTwvYVxyXG4gICAgICAgICAgICA+XHJcbiAgICAgICAgICA8L25nLXRlbXBsYXRlPlxyXG4gICAgICAgIDwvbGk+XHJcbiAgICAgIDwvbmctY29udGFpbmVyPlxyXG4gICAgPC9uZy1jb250YWluZXI+XHJcbiAgPC9kaXY+XHJcbjwvZGl2PlxyXG4iXX0=
|
|
@@ -0,0 +1,107 @@
|
|
|
1
|
+
import { ConfigStateService, SessionStateService } from '@abp/ng.core';
|
|
2
|
+
import { Component } from '@angular/core';
|
|
3
|
+
import { map } from 'rxjs/operators';
|
|
4
|
+
import * as i0 from "@angular/core";
|
|
5
|
+
import * as i1 from "@abp/ng.core";
|
|
6
|
+
import * as i2 from "@angular/common";
|
|
7
|
+
import * as i3 from "@ng-bootstrap/ng-bootstrap";
|
|
8
|
+
export class LanguagesComponent {
|
|
9
|
+
constructor(sessionState, configState) {
|
|
10
|
+
this.sessionState = sessionState;
|
|
11
|
+
this.configState = configState;
|
|
12
|
+
this.languages$ = this.configState.getDeep$('localization.languages');
|
|
13
|
+
}
|
|
14
|
+
get smallScreen() {
|
|
15
|
+
return window.innerWidth < 992;
|
|
16
|
+
}
|
|
17
|
+
get defaultLanguage$() {
|
|
18
|
+
return this.languages$.pipe(map(languages => languages?.find(lang => lang.cultureName === this.selectedLangCulture)?.displayName || ''));
|
|
19
|
+
}
|
|
20
|
+
get dropdownLanguages$() {
|
|
21
|
+
return this.languages$.pipe(map(languages => languages?.filter(lang => lang.cultureName !== this.selectedLangCulture) || []));
|
|
22
|
+
}
|
|
23
|
+
get selectedLangCulture() {
|
|
24
|
+
return this.sessionState.getLanguage();
|
|
25
|
+
}
|
|
26
|
+
onChangeLang(cultureName) {
|
|
27
|
+
this.sessionState.setLanguage(cultureName);
|
|
28
|
+
}
|
|
29
|
+
}
|
|
30
|
+
LanguagesComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.1.1", ngImport: i0, type: LanguagesComponent, deps: [{ token: i1.SessionStateService }, { token: i1.ConfigStateService }], target: i0.ɵɵFactoryTarget.Component });
|
|
31
|
+
LanguagesComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "13.1.1", type: LanguagesComponent, selector: "abp-languages", ngImport: i0, template: `
|
|
32
|
+
<div
|
|
33
|
+
*ngIf="((dropdownLanguages$ | async)?.length || 0) > 0"
|
|
34
|
+
class="dropdown"
|
|
35
|
+
ngbDropdown
|
|
36
|
+
#languageDropdown="ngbDropdown"
|
|
37
|
+
display="static"
|
|
38
|
+
>
|
|
39
|
+
<a
|
|
40
|
+
ngbDropdownToggle
|
|
41
|
+
class="nav-link"
|
|
42
|
+
href="javascript:void(0)"
|
|
43
|
+
role="button"
|
|
44
|
+
id="dropdownMenuLink"
|
|
45
|
+
data-toggle="dropdown"
|
|
46
|
+
aria-haspopup="true"
|
|
47
|
+
aria-expanded="false"
|
|
48
|
+
>
|
|
49
|
+
{{ defaultLanguage$ | async }}
|
|
50
|
+
</a>
|
|
51
|
+
<div
|
|
52
|
+
class="dropdown-menu dropdown-menu-end border-0 shadow-sm"
|
|
53
|
+
aria-labelledby="dropdownMenuLink"
|
|
54
|
+
[class.d-block]="smallScreen && languageDropdown.isOpen()"
|
|
55
|
+
>
|
|
56
|
+
<a
|
|
57
|
+
*ngFor="let lang of dropdownLanguages$ | async"
|
|
58
|
+
href="javascript:void(0)"
|
|
59
|
+
class="dropdown-item"
|
|
60
|
+
(click)="onChangeLang(lang.cultureName || '')"
|
|
61
|
+
>{{ lang?.displayName }}</a
|
|
62
|
+
>
|
|
63
|
+
</div>
|
|
64
|
+
</div>
|
|
65
|
+
`, isInline: true, directives: [{ type: i2.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { type: i3.NgbDropdown, selector: "[ngbDropdown]", inputs: ["autoClose", "dropdownClass", "open", "placement", "container", "display"], outputs: ["openChange"], exportAs: ["ngbDropdown"] }, { type: i3.NgbDropdownToggle, selector: "[ngbDropdownToggle]" }, { type: i2.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }], pipes: { "async": i2.AsyncPipe } });
|
|
66
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.1.1", ngImport: i0, type: LanguagesComponent, decorators: [{
|
|
67
|
+
type: Component,
|
|
68
|
+
args: [{
|
|
69
|
+
selector: 'abp-languages',
|
|
70
|
+
template: `
|
|
71
|
+
<div
|
|
72
|
+
*ngIf="((dropdownLanguages$ | async)?.length || 0) > 0"
|
|
73
|
+
class="dropdown"
|
|
74
|
+
ngbDropdown
|
|
75
|
+
#languageDropdown="ngbDropdown"
|
|
76
|
+
display="static"
|
|
77
|
+
>
|
|
78
|
+
<a
|
|
79
|
+
ngbDropdownToggle
|
|
80
|
+
class="nav-link"
|
|
81
|
+
href="javascript:void(0)"
|
|
82
|
+
role="button"
|
|
83
|
+
id="dropdownMenuLink"
|
|
84
|
+
data-toggle="dropdown"
|
|
85
|
+
aria-haspopup="true"
|
|
86
|
+
aria-expanded="false"
|
|
87
|
+
>
|
|
88
|
+
{{ defaultLanguage$ | async }}
|
|
89
|
+
</a>
|
|
90
|
+
<div
|
|
91
|
+
class="dropdown-menu dropdown-menu-end border-0 shadow-sm"
|
|
92
|
+
aria-labelledby="dropdownMenuLink"
|
|
93
|
+
[class.d-block]="smallScreen && languageDropdown.isOpen()"
|
|
94
|
+
>
|
|
95
|
+
<a
|
|
96
|
+
*ngFor="let lang of dropdownLanguages$ | async"
|
|
97
|
+
href="javascript:void(0)"
|
|
98
|
+
class="dropdown-item"
|
|
99
|
+
(click)="onChangeLang(lang.cultureName || '')"
|
|
100
|
+
>{{ lang?.displayName }}</a
|
|
101
|
+
>
|
|
102
|
+
</div>
|
|
103
|
+
</div>
|
|
104
|
+
`,
|
|
105
|
+
}]
|
|
106
|
+
}], ctorParameters: function () { return [{ type: i1.SessionStateService }, { type: i1.ConfigStateService }]; } });
|
|
107
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibGFuZ3VhZ2VzLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uL3BhY2thZ2VzL3RoZW1lLWJhc2ljL3NyYy9saWIvY29tcG9uZW50cy9uYXYtaXRlbXMvbGFuZ3VhZ2VzLmNvbXBvbmVudC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsa0JBQWtCLEVBQWdCLG1CQUFtQixFQUFFLE1BQU0sY0FBYyxDQUFDO0FBQ3JGLE9BQU8sRUFBRSxTQUFTLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFFMUMsT0FBTyxFQUFFLEdBQUcsRUFBRSxNQUFNLGdCQUFnQixDQUFDOzs7OztBQXdDckMsTUFBTSxPQUFPLGtCQUFrQjtJQTRCN0IsWUFBb0IsWUFBaUMsRUFBVSxXQUErQjtRQUExRSxpQkFBWSxHQUFaLFlBQVksQ0FBcUI7UUFBVSxnQkFBVyxHQUFYLFdBQVcsQ0FBb0I7UUF2QjlGLGVBQVUsR0FBK0IsSUFBSSxDQUFDLFdBQVcsQ0FBQyxRQUFRLENBQUMsd0JBQXdCLENBQUMsQ0FBQztJQXVCSSxDQUFDO0lBM0JsRyxJQUFJLFdBQVc7UUFDYixPQUFPLE1BQU0sQ0FBQyxVQUFVLEdBQUcsR0FBRyxDQUFDO0lBQ2pDLENBQUM7SUFJRCxJQUFJLGdCQUFnQjtRQUNsQixPQUFPLElBQUksQ0FBQyxVQUFVLENBQUMsSUFBSSxDQUN6QixHQUFHLENBQ0QsU0FBUyxDQUFDLEVBQUUsQ0FDVixTQUFTLEVBQUUsSUFBSSxDQUFDLElBQUksQ0FBQyxFQUFFLENBQUMsSUFBSSxDQUFDLFdBQVcsS0FBSyxJQUFJLENBQUMsbUJBQW1CLENBQUMsRUFBRSxXQUFXLElBQUksRUFBRSxDQUM1RixDQUNGLENBQUM7SUFDSixDQUFDO0lBRUQsSUFBSSxrQkFBa0I7UUFDcEIsT0FBTyxJQUFJLENBQUMsVUFBVSxDQUFDLElBQUksQ0FDekIsR0FBRyxDQUNELFNBQVMsQ0FBQyxFQUFFLENBQUMsU0FBUyxFQUFFLE1BQU0sQ0FBQyxJQUFJLENBQUMsRUFBRSxDQUFDLElBQUksQ0FBQyxXQUFXLEtBQUssSUFBSSxDQUFDLG1CQUFtQixDQUFDLElBQUksRUFBRSxDQUM1RixDQUNGLENBQUM7SUFDSixDQUFDO0lBRUQsSUFBSSxtQkFBbUI7UUFDckIsT0FBTyxJQUFJLENBQUMsWUFBWSxDQUFDLFdBQVcsRUFBRSxDQUFDO0lBQ3pDLENBQUM7SUFJRCxZQUFZLENBQUMsV0FBbUI7UUFDOUIsSUFBSSxDQUFDLFlBQVksQ0FBQyxXQUFXLENBQUMsV0FBVyxDQUFDLENBQUM7SUFDN0MsQ0FBQzs7K0dBaENVLGtCQUFrQjttR0FBbEIsa0JBQWtCLHFEQXBDbkI7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7R0FrQ1Q7MkZBRVUsa0JBQWtCO2tCQXRDOUIsU0FBUzttQkFBQztvQkFDVCxRQUFRLEVBQUUsZUFBZTtvQkFDekIsUUFBUSxFQUFFOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O0dBa0NUO2lCQUNGIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ29uZmlnU3RhdGVTZXJ2aWNlLCBMYW5ndWFnZUluZm8sIFNlc3Npb25TdGF0ZVNlcnZpY2UgfSBmcm9tICdAYWJwL25nLmNvcmUnO1xyXG5pbXBvcnQgeyBDb21wb25lbnQgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcclxuaW1wb3J0IHsgT2JzZXJ2YWJsZSB9IGZyb20gJ3J4anMnO1xyXG5pbXBvcnQgeyBtYXAgfSBmcm9tICdyeGpzL29wZXJhdG9ycyc7XHJcblxyXG5AQ29tcG9uZW50KHtcclxuICBzZWxlY3RvcjogJ2FicC1sYW5ndWFnZXMnLFxyXG4gIHRlbXBsYXRlOiBgXHJcbiAgICA8ZGl2XHJcbiAgICAgICpuZ0lmPVwiKChkcm9wZG93bkxhbmd1YWdlcyQgfCBhc3luYyk/Lmxlbmd0aCB8fCAwKSA+IDBcIlxyXG4gICAgICBjbGFzcz1cImRyb3Bkb3duXCJcclxuICAgICAgbmdiRHJvcGRvd25cclxuICAgICAgI2xhbmd1YWdlRHJvcGRvd249XCJuZ2JEcm9wZG93blwiXHJcbiAgICAgIGRpc3BsYXk9XCJzdGF0aWNcIlxyXG4gICAgPlxyXG4gICAgICA8YVxyXG4gICAgICAgIG5nYkRyb3Bkb3duVG9nZ2xlXHJcbiAgICAgICAgY2xhc3M9XCJuYXYtbGlua1wiXHJcbiAgICAgICAgaHJlZj1cImphdmFzY3JpcHQ6dm9pZCgwKVwiXHJcbiAgICAgICAgcm9sZT1cImJ1dHRvblwiXHJcbiAgICAgICAgaWQ9XCJkcm9wZG93bk1lbnVMaW5rXCJcclxuICAgICAgICBkYXRhLXRvZ2dsZT1cImRyb3Bkb3duXCJcclxuICAgICAgICBhcmlhLWhhc3BvcHVwPVwidHJ1ZVwiXHJcbiAgICAgICAgYXJpYS1leHBhbmRlZD1cImZhbHNlXCJcclxuICAgICAgPlxyXG4gICAgICAgIHt7IGRlZmF1bHRMYW5ndWFnZSQgfCBhc3luYyB9fVxyXG4gICAgICA8L2E+XHJcbiAgICAgIDxkaXZcclxuICAgICAgICBjbGFzcz1cImRyb3Bkb3duLW1lbnUgZHJvcGRvd24tbWVudS1lbmQgYm9yZGVyLTAgc2hhZG93LXNtXCJcclxuICAgICAgICBhcmlhLWxhYmVsbGVkYnk9XCJkcm9wZG93bk1lbnVMaW5rXCJcclxuICAgICAgICBbY2xhc3MuZC1ibG9ja109XCJzbWFsbFNjcmVlbiAmJiBsYW5ndWFnZURyb3Bkb3duLmlzT3BlbigpXCJcclxuICAgICAgPlxyXG4gICAgICAgIDxhXHJcbiAgICAgICAgICAqbmdGb3I9XCJsZXQgbGFuZyBvZiBkcm9wZG93bkxhbmd1YWdlcyQgfCBhc3luY1wiXHJcbiAgICAgICAgICBocmVmPVwiamF2YXNjcmlwdDp2b2lkKDApXCJcclxuICAgICAgICAgIGNsYXNzPVwiZHJvcGRvd24taXRlbVwiXHJcbiAgICAgICAgICAoY2xpY2spPVwib25DaGFuZ2VMYW5nKGxhbmcuY3VsdHVyZU5hbWUgfHwgJycpXCJcclxuICAgICAgICAgID57eyBsYW5nPy5kaXNwbGF5TmFtZSB9fTwvYVxyXG4gICAgICAgID5cclxuICAgICAgPC9kaXY+XHJcbiAgICA8L2Rpdj5cclxuICBgLFxyXG59KVxyXG5leHBvcnQgY2xhc3MgTGFuZ3VhZ2VzQ29tcG9uZW50IHtcclxuICBnZXQgc21hbGxTY3JlZW4oKTogYm9vbGVhbiB7XHJcbiAgICByZXR1cm4gd2luZG93LmlubmVyV2lkdGggPCA5OTI7XHJcbiAgfVxyXG5cclxuICBsYW5ndWFnZXMkOiBPYnNlcnZhYmxlPExhbmd1YWdlSW5mb1tdPiA9IHRoaXMuY29uZmlnU3RhdGUuZ2V0RGVlcCQoJ2xvY2FsaXphdGlvbi5sYW5ndWFnZXMnKTtcclxuXHJcbiAgZ2V0IGRlZmF1bHRMYW5ndWFnZSQoKTogT2JzZXJ2YWJsZTxzdHJpbmc+IHtcclxuICAgIHJldHVybiB0aGlzLmxhbmd1YWdlcyQucGlwZShcclxuICAgICAgbWFwKFxyXG4gICAgICAgIGxhbmd1YWdlcyA9PlxyXG4gICAgICAgICAgbGFuZ3VhZ2VzPy5maW5kKGxhbmcgPT4gbGFuZy5jdWx0dXJlTmFtZSA9PT0gdGhpcy5zZWxlY3RlZExhbmdDdWx0dXJlKT8uZGlzcGxheU5hbWUgfHwgJycsXHJcbiAgICAgICksXHJcbiAgICApO1xyXG4gIH1cclxuXHJcbiAgZ2V0IGRyb3Bkb3duTGFuZ3VhZ2VzJCgpOiBPYnNlcnZhYmxlPExhbmd1YWdlSW5mb1tdPiB7XHJcbiAgICByZXR1cm4gdGhpcy5sYW5ndWFnZXMkLnBpcGUoXHJcbiAgICAgIG1hcChcclxuICAgICAgICBsYW5ndWFnZXMgPT4gbGFuZ3VhZ2VzPy5maWx0ZXIobGFuZyA9PiBsYW5nLmN1bHR1cmVOYW1lICE9PSB0aGlzLnNlbGVjdGVkTGFuZ0N1bHR1cmUpIHx8IFtdLFxyXG4gICAgICApLFxyXG4gICAgKTtcclxuICB9XHJcblxyXG4gIGdldCBzZWxlY3RlZExhbmdDdWx0dXJlKCk6IHN0cmluZyB7XHJcbiAgICByZXR1cm4gdGhpcy5zZXNzaW9uU3RhdGUuZ2V0TGFuZ3VhZ2UoKTtcclxuICB9XHJcblxyXG4gIGNvbnN0cnVjdG9yKHByaXZhdGUgc2Vzc2lvblN0YXRlOiBTZXNzaW9uU3RhdGVTZXJ2aWNlLCBwcml2YXRlIGNvbmZpZ1N0YXRlOiBDb25maWdTdGF0ZVNlcnZpY2UpIHt9XHJcblxyXG4gIG9uQ2hhbmdlTGFuZyhjdWx0dXJlTmFtZTogc3RyaW5nKSB7XHJcbiAgICB0aGlzLnNlc3Npb25TdGF0ZS5zZXRMYW5ndWFnZShjdWx0dXJlTmFtZSk7XHJcbiAgfVxyXG59XHJcbiJdfQ==
|
|
@@ -0,0 +1,19 @@
|
|
|
1
|
+
import { NavItemsService } from '@abp/ng.theme.shared';
|
|
2
|
+
import { Component } from '@angular/core';
|
|
3
|
+
import * as i0 from "@angular/core";
|
|
4
|
+
import * as i1 from "@abp/ng.theme.shared";
|
|
5
|
+
import * as i2 from "@angular/common";
|
|
6
|
+
import * as i3 from "@abp/ng.core";
|
|
7
|
+
export class NavItemsComponent {
|
|
8
|
+
constructor(navItems) {
|
|
9
|
+
this.navItems = navItems;
|
|
10
|
+
this.trackByFn = (_, element) => element.id;
|
|
11
|
+
}
|
|
12
|
+
}
|
|
13
|
+
NavItemsComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.1.1", ngImport: i0, type: NavItemsComponent, deps: [{ token: i1.NavItemsService }], target: i0.ɵɵFactoryTarget.Component });
|
|
14
|
+
NavItemsComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "13.1.1", type: NavItemsComponent, selector: "abp-nav-items", ngImport: i0, template: "<ul class=\"navbar-nav\">\r\n <ng-container *ngFor=\"let item of navItems.items$ | async; trackBy: trackByFn\">\r\n <ng-container *ngIf=\"item.visible && item.visible()\">\r\n <li class=\"nav-item d-flex align-items-center\" *abpPermission=\"item.requiredPolicy\">\r\n <ng-container\r\n *ngIf=\"item.component; else htmlTemplate\"\r\n [ngComponentOutlet]=\"item.component\"\r\n [ngComponentOutletInjector]=\"item | toInjector\"\r\n ></ng-container>\r\n\r\n <ng-template #htmlTemplate>\r\n <div [innerHTML]=\"item.html\" (click)=\"item.action ? item.action() : null\"></div>\r\n </ng-template>\r\n </li>\r\n </ng-container>\r\n </ng-container>\r\n</ul>\r\n", directives: [{ type: i2.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { type: i2.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { type: i3.PermissionDirective, selector: "[abpPermission]", inputs: ["abpPermission"] }, { type: i2.NgComponentOutlet, selector: "[ngComponentOutlet]", inputs: ["ngComponentOutlet", "ngComponentOutletInjector", "ngComponentOutletContent", "ngComponentOutletNgModuleFactory"] }], pipes: { "async": i2.AsyncPipe, "toInjector": i3.ToInjectorPipe } });
|
|
15
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.1.1", ngImport: i0, type: NavItemsComponent, decorators: [{
|
|
16
|
+
type: Component,
|
|
17
|
+
args: [{ selector: 'abp-nav-items', template: "<ul class=\"navbar-nav\">\r\n <ng-container *ngFor=\"let item of navItems.items$ | async; trackBy: trackByFn\">\r\n <ng-container *ngIf=\"item.visible && item.visible()\">\r\n <li class=\"nav-item d-flex align-items-center\" *abpPermission=\"item.requiredPolicy\">\r\n <ng-container\r\n *ngIf=\"item.component; else htmlTemplate\"\r\n [ngComponentOutlet]=\"item.component\"\r\n [ngComponentOutletInjector]=\"item | toInjector\"\r\n ></ng-container>\r\n\r\n <ng-template #htmlTemplate>\r\n <div [innerHTML]=\"item.html\" (click)=\"item.action ? item.action() : null\"></div>\r\n </ng-template>\r\n </li>\r\n </ng-container>\r\n </ng-container>\r\n</ul>\r\n" }]
|
|
18
|
+
}], ctorParameters: function () { return [{ type: i1.NavItemsService }]; } });
|
|
19
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibmF2LWl0ZW1zLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uL3BhY2thZ2VzL3RoZW1lLWJhc2ljL3NyYy9saWIvY29tcG9uZW50cy9uYXYtaXRlbXMvbmF2LWl0ZW1zLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uLy4uLy4uL3BhY2thZ2VzL3RoZW1lLWJhc2ljL3NyYy9saWIvY29tcG9uZW50cy9uYXYtaXRlbXMvbmF2LWl0ZW1zLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBVyxlQUFlLEVBQUUsTUFBTSxzQkFBc0IsQ0FBQztBQUNoRSxPQUFPLEVBQUUsU0FBUyxFQUEwQixNQUFNLGVBQWUsQ0FBQzs7Ozs7QUFNbEUsTUFBTSxPQUFPLGlCQUFpQjtJQUc1QixZQUE0QixRQUF5QjtRQUF6QixhQUFRLEdBQVIsUUFBUSxDQUFpQjtRQUZyRCxjQUFTLEdBQTZCLENBQUMsQ0FBQyxFQUFFLE9BQU8sRUFBRSxFQUFFLENBQUMsT0FBTyxDQUFDLEVBQUUsQ0FBQztJQUVULENBQUM7OzhHQUg5QyxpQkFBaUI7a0dBQWpCLGlCQUFpQixxRENQOUIsbXVCQWlCQTsyRkRWYSxpQkFBaUI7a0JBSjdCLFNBQVM7K0JBQ0UsZUFBZSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IE5hdkl0ZW0sIE5hdkl0ZW1zU2VydmljZSB9IGZyb20gJ0BhYnAvbmcudGhlbWUuc2hhcmVkJztcclxuaW1wb3J0IHsgQ29tcG9uZW50LCBJbnB1dCwgVHJhY2tCeUZ1bmN0aW9uIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XHJcblxyXG5AQ29tcG9uZW50KHtcclxuICBzZWxlY3RvcjogJ2FicC1uYXYtaXRlbXMnLFxyXG4gIHRlbXBsYXRlVXJsOiAnbmF2LWl0ZW1zLmNvbXBvbmVudC5odG1sJyxcclxufSlcclxuZXhwb3J0IGNsYXNzIE5hdkl0ZW1zQ29tcG9uZW50IHtcclxuICB0cmFja0J5Rm46IFRyYWNrQnlGdW5jdGlvbjxOYXZJdGVtPiA9IChfLCBlbGVtZW50KSA9PiBlbGVtZW50LmlkO1xyXG5cclxuICBjb25zdHJ1Y3RvcihwdWJsaWMgcmVhZG9ubHkgbmF2SXRlbXM6IE5hdkl0ZW1zU2VydmljZSkge31cclxufVxyXG4iLCI8dWwgY2xhc3M9XCJuYXZiYXItbmF2XCI+XHJcbiAgPG5nLWNvbnRhaW5lciAqbmdGb3I9XCJsZXQgaXRlbSBvZiBuYXZJdGVtcy5pdGVtcyQgfCBhc3luYzsgdHJhY2tCeTogdHJhY2tCeUZuXCI+XHJcbiAgICA8bmctY29udGFpbmVyICpuZ0lmPVwiaXRlbS52aXNpYmxlICYmIGl0ZW0udmlzaWJsZSgpXCI+XHJcbiAgICAgIDxsaSBjbGFzcz1cIm5hdi1pdGVtIGQtZmxleCBhbGlnbi1pdGVtcy1jZW50ZXJcIiAqYWJwUGVybWlzc2lvbj1cIml0ZW0ucmVxdWlyZWRQb2xpY3lcIj5cclxuICAgICAgICA8bmctY29udGFpbmVyXHJcbiAgICAgICAgICAqbmdJZj1cIml0ZW0uY29tcG9uZW50OyBlbHNlIGh0bWxUZW1wbGF0ZVwiXHJcbiAgICAgICAgICBbbmdDb21wb25lbnRPdXRsZXRdPVwiaXRlbS5jb21wb25lbnRcIlxyXG4gICAgICAgICAgW25nQ29tcG9uZW50T3V0bGV0SW5qZWN0b3JdPVwiaXRlbSB8IHRvSW5qZWN0b3JcIlxyXG4gICAgICAgID48L25nLWNvbnRhaW5lcj5cclxuXHJcbiAgICAgICAgPG5nLXRlbXBsYXRlICNodG1sVGVtcGxhdGU+XHJcbiAgICAgICAgICA8ZGl2IFtpbm5lckhUTUxdPVwiaXRlbS5odG1sXCIgKGNsaWNrKT1cIml0ZW0uYWN0aW9uID8gaXRlbS5hY3Rpb24oKSA6IG51bGxcIj48L2Rpdj5cclxuICAgICAgICA8L25nLXRlbXBsYXRlPlxyXG4gICAgICA8L2xpPlxyXG4gICAgPC9uZy1jb250YWluZXI+XHJcbiAgPC9uZy1jb250YWluZXI+XHJcbjwvdWw+XHJcbiJdfQ==
|
|
@@ -0,0 +1,18 @@
|
|
|
1
|
+
import { Component, ViewEncapsulation } from '@angular/core';
|
|
2
|
+
import { PageAlertService } from '@abp/ng.theme.shared';
|
|
3
|
+
import * as i0 from "@angular/core";
|
|
4
|
+
import * as i1 from "@abp/ng.theme.shared";
|
|
5
|
+
import * as i2 from "@angular/common";
|
|
6
|
+
import * as i3 from "@abp/ng.core";
|
|
7
|
+
export class PageAlertContainerComponent {
|
|
8
|
+
constructor(service) {
|
|
9
|
+
this.service = service;
|
|
10
|
+
}
|
|
11
|
+
}
|
|
12
|
+
PageAlertContainerComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.1.1", ngImport: i0, type: PageAlertContainerComponent, deps: [{ token: i1.PageAlertService }], target: i0.ɵɵFactoryTarget.Component });
|
|
13
|
+
PageAlertContainerComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "13.1.1", type: PageAlertContainerComponent, selector: "abp-page-alert-container", ngImport: i0, template: "<ng-container *ngFor=\"let alert of service.alerts$ | async; let i = index\">\r\n <div\r\n class=\"alert alert-{{ alert.type }} fade show\"\r\n [ngClass]=\"{ 'alert-dismissible fade show': alert.dismissible }\"\r\n role=\"alert\"\r\n >\r\n <h4 class=\"alert-heading\" *ngIf=\"alert.title\">\r\n {{ alert.title | abpLocalization: alert.titleLocalizationParams }}\r\n </h4>\r\n {{ alert.message | abpLocalization: alert.messageLocalizationParams }}\r\n <button\r\n *ngIf=\"alert.dismissible\"\r\n type=\"button\"\r\n class=\"btn-close\"\r\n data-dismiss=\"alert\"\r\n aria-label=\"Close\"\r\n (click)=\"service.remove(i)\"\r\n ></button>\r\n </div>\r\n</ng-container>\r\n", directives: [{ type: i2.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { type: i2.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { type: i2.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }], pipes: { "async": i2.AsyncPipe, "abpLocalization": i3.LocalizationPipe }, encapsulation: i0.ViewEncapsulation.None });
|
|
14
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.1.1", ngImport: i0, type: PageAlertContainerComponent, decorators: [{
|
|
15
|
+
type: Component,
|
|
16
|
+
args: [{ selector: 'abp-page-alert-container', encapsulation: ViewEncapsulation.None, template: "<ng-container *ngFor=\"let alert of service.alerts$ | async; let i = index\">\r\n <div\r\n class=\"alert alert-{{ alert.type }} fade show\"\r\n [ngClass]=\"{ 'alert-dismissible fade show': alert.dismissible }\"\r\n role=\"alert\"\r\n >\r\n <h4 class=\"alert-heading\" *ngIf=\"alert.title\">\r\n {{ alert.title | abpLocalization: alert.titleLocalizationParams }}\r\n </h4>\r\n {{ alert.message | abpLocalization: alert.messageLocalizationParams }}\r\n <button\r\n *ngIf=\"alert.dismissible\"\r\n type=\"button\"\r\n class=\"btn-close\"\r\n data-dismiss=\"alert\"\r\n aria-label=\"Close\"\r\n (click)=\"service.remove(i)\"\r\n ></button>\r\n </div>\r\n</ng-container>\r\n" }]
|
|
17
|
+
}], ctorParameters: function () { return [{ type: i1.PageAlertService }]; } });
|
|
18
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicGFnZS1hbGVydC1jb250YWluZXIuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vcGFja2FnZXMvdGhlbWUtYmFzaWMvc3JjL2xpYi9jb21wb25lbnRzL3BhZ2UtYWxlcnQtY29udGFpbmVyL3BhZ2UtYWxlcnQtY29udGFpbmVyLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uLy4uLy4uL3BhY2thZ2VzL3RoZW1lLWJhc2ljL3NyYy9saWIvY29tcG9uZW50cy9wYWdlLWFsZXJ0LWNvbnRhaW5lci9wYWdlLWFsZXJ0LWNvbnRhaW5lci5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsU0FBUyxFQUFFLGlCQUFpQixFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQzdELE9BQU8sRUFBRSxnQkFBZ0IsRUFBRSxNQUFNLHNCQUFzQixDQUFDOzs7OztBQU94RCxNQUFNLE9BQU8sMkJBQTJCO0lBQ3RDLFlBQW1CLE9BQXlCO1FBQXpCLFlBQU8sR0FBUCxPQUFPLENBQWtCO0lBQUcsQ0FBQzs7d0hBRHJDLDJCQUEyQjs0R0FBM0IsMkJBQTJCLGdFQ1J4Qyw2dEJBb0JBOzJGRFphLDJCQUEyQjtrQkFMdkMsU0FBUzsrQkFDRSwwQkFBMEIsaUJBRXJCLGlCQUFpQixDQUFDLElBQUkiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDb21wb25lbnQsIFZpZXdFbmNhcHN1bGF0aW9uIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XHJcbmltcG9ydCB7IFBhZ2VBbGVydFNlcnZpY2UgfSBmcm9tICdAYWJwL25nLnRoZW1lLnNoYXJlZCc7XHJcblxyXG5AQ29tcG9uZW50KHtcclxuICBzZWxlY3RvcjogJ2FicC1wYWdlLWFsZXJ0LWNvbnRhaW5lcicsXHJcbiAgdGVtcGxhdGVVcmw6ICcuL3BhZ2UtYWxlcnQtY29udGFpbmVyLmNvbXBvbmVudC5odG1sJyxcclxuICBlbmNhcHN1bGF0aW9uOiBWaWV3RW5jYXBzdWxhdGlvbi5Ob25lLFxyXG59KVxyXG5leHBvcnQgY2xhc3MgUGFnZUFsZXJ0Q29udGFpbmVyQ29tcG9uZW50IHtcclxuICBjb25zdHJ1Y3RvcihwdWJsaWMgc2VydmljZTogUGFnZUFsZXJ0U2VydmljZSkge31cclxufVxyXG4iLCI8bmctY29udGFpbmVyICpuZ0Zvcj1cImxldCBhbGVydCBvZiBzZXJ2aWNlLmFsZXJ0cyQgfCBhc3luYzsgbGV0IGkgPSBpbmRleFwiPlxyXG4gIDxkaXZcclxuICAgIGNsYXNzPVwiYWxlcnQgYWxlcnQte3sgYWxlcnQudHlwZSB9fSBmYWRlIHNob3dcIlxyXG4gICAgW25nQ2xhc3NdPVwieyAnYWxlcnQtZGlzbWlzc2libGUgZmFkZSBzaG93JzogYWxlcnQuZGlzbWlzc2libGUgfVwiXHJcbiAgICByb2xlPVwiYWxlcnRcIlxyXG4gID5cclxuICAgIDxoNCBjbGFzcz1cImFsZXJ0LWhlYWRpbmdcIiAqbmdJZj1cImFsZXJ0LnRpdGxlXCI+XHJcbiAgICAgIHt7IGFsZXJ0LnRpdGxlIHwgYWJwTG9jYWxpemF0aW9uOiBhbGVydC50aXRsZUxvY2FsaXphdGlvblBhcmFtcyB9fVxyXG4gICAgPC9oND5cclxuICAgIHt7IGFsZXJ0Lm1lc3NhZ2UgfCBhYnBMb2NhbGl6YXRpb246IGFsZXJ0Lm1lc3NhZ2VMb2NhbGl6YXRpb25QYXJhbXMgfX1cclxuICAgIDxidXR0b25cclxuICAgICAgKm5nSWY9XCJhbGVydC5kaXNtaXNzaWJsZVwiXHJcbiAgICAgIHR5cGU9XCJidXR0b25cIlxyXG4gICAgICBjbGFzcz1cImJ0bi1jbG9zZVwiXHJcbiAgICAgIGRhdGEtZGlzbWlzcz1cImFsZXJ0XCJcclxuICAgICAgYXJpYS1sYWJlbD1cIkNsb3NlXCJcclxuICAgICAgKGNsaWNrKT1cInNlcnZpY2UucmVtb3ZlKGkpXCJcclxuICAgID48L2J1dHRvbj5cclxuICA8L2Rpdj5cclxuPC9uZy1jb250YWluZXI+XHJcbiJdfQ==
|