@abp/ng.theme.basic 7.2.2 → 7.2.3
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/README.md +129 -2
- package/esm2020/lib/components/account-layout/account-layout.component.mjs +7 -8
- package/esm2020/lib/components/application-layout/application-layout.component.mjs +6 -7
- package/fesm2015/abp-ng.theme.basic.mjs +4 -4
- package/fesm2015/abp-ng.theme.basic.mjs.map +1 -1
- package/fesm2020/abp-ng.theme.basic.mjs +4 -4
- package/fesm2020/abp-ng.theme.basic.mjs.map +1 -1
- package/package.json +18 -4
package/README.md
CHANGED
|
@@ -1,3 +1,130 @@
|
|
|
1
|
-
|
|
1
|
+
## ℹ️ Description
|
|
2
2
|
|
|
3
|
-
[
|
|
3
|
+
ABP Framework is a complete open-source infrastructure to create modern web applications by following the best practices and conventions of software development. This package is a part of the [ABP Framework](https://abp.io) and contains client-side files.
|
|
4
|
+
For more information, check out the below links:
|
|
5
|
+
|
|
6
|
+
🔗Official Website: https://abp.io
|
|
7
|
+
|
|
8
|
+
🔗Commercial Website: https://commercial.abp.io
|
|
9
|
+
|
|
10
|
+
🔗Commercial Demo: https://commercial.abp.io/demo
|
|
11
|
+
|
|
12
|
+
🔗GitHub Repository: https://github.com/abpframework/abp
|
|
13
|
+
|
|
14
|
+
🔗Official Theme: https://www.LeptonTheme.com
|
|
15
|
+
|
|
16
|
+
🔗Documentation: https://docs.abp.io
|
|
17
|
+
|
|
18
|
+
🔗Community: https://community.abp.io
|
|
19
|
+
|
|
20
|
+
🔗Blog: https://blog.abp.io
|
|
21
|
+
|
|
22
|
+
🔗Books: https://abp.io/books
|
|
23
|
+
|
|
24
|
+
🔗Twitter: https://twitter.com/abpframework
|
|
25
|
+
|
|
26
|
+
🔗Discord: https://community.abp.io/discord
|
|
27
|
+
|
|
28
|
+
🔗Stackoverflow: https://stackoverflow.com/questions/tagged/abp
|
|
29
|
+
|
|
30
|
+
🔗YouTube: https://www.youtube.com/@Volosoft
|
|
31
|
+
|
|
32
|
+
|
|
33
|
+
## 🤔 Why ABP Platform?
|
|
34
|
+
|
|
35
|
+
Why should you use the ABP.IO Platform instead of creating a new solution from scratch?
|
|
36
|
+
|
|
37
|
+
You can find the answer here 👉🏻 [Why ABP Platform?](https://docs.abp.io/en/commercial/latest/why-abp-io-platform)
|
|
38
|
+
|
|
39
|
+
|
|
40
|
+
## 🚀 Key Features of the ABP Framework
|
|
41
|
+
|
|
42
|
+
🟡 Modularity
|
|
43
|
+
|
|
44
|
+
🟡 Multi-Tenancy
|
|
45
|
+
|
|
46
|
+
🟡 Bootstrap Tag Helpers
|
|
47
|
+
|
|
48
|
+
🟡 Dynamic Forms
|
|
49
|
+
|
|
50
|
+
🟡 Authentication
|
|
51
|
+
|
|
52
|
+
🟡 Authorization
|
|
53
|
+
|
|
54
|
+
🟡 Distributed Event Bus
|
|
55
|
+
|
|
56
|
+
🟡 BLOB Storing
|
|
57
|
+
|
|
58
|
+
🟡 Text Templating
|
|
59
|
+
|
|
60
|
+
🟡 Tooling: ABP CLI
|
|
61
|
+
|
|
62
|
+
🟡 Cross-Cutting Concerns
|
|
63
|
+
|
|
64
|
+
🟡 Bundling & Minification
|
|
65
|
+
|
|
66
|
+
🟡 Virtual File System
|
|
67
|
+
|
|
68
|
+
🟡 Theming
|
|
69
|
+
|
|
70
|
+
🟡 Background Jobs
|
|
71
|
+
|
|
72
|
+
🟡 DDD Infrastructure
|
|
73
|
+
|
|
74
|
+
🟡 Auto REST APIs
|
|
75
|
+
|
|
76
|
+
🟡 Dynamic Client Proxies
|
|
77
|
+
|
|
78
|
+
🟡 Multiple Database Providers
|
|
79
|
+
|
|
80
|
+
🟡 Data filtering
|
|
81
|
+
|
|
82
|
+
🟡 Test Infrastructure
|
|
83
|
+
|
|
84
|
+
🟡 Audit Logging
|
|
85
|
+
|
|
86
|
+
🟡 Object to Object Mapping
|
|
87
|
+
|
|
88
|
+
🟡 Email & SMS Abstractions
|
|
89
|
+
|
|
90
|
+
🟡 Localization
|
|
91
|
+
|
|
92
|
+
🟡 Setting Management
|
|
93
|
+
|
|
94
|
+
🟡 Extension Methods
|
|
95
|
+
|
|
96
|
+
🟡 Aspect Oriented Programming
|
|
97
|
+
|
|
98
|
+
🟡 Dependency Injection
|
|
99
|
+
|
|
100
|
+
|
|
101
|
+
## 🧐 How It Works?
|
|
102
|
+
|
|
103
|
+
The following page explains how you use the ABP.IO Platform as a .NET developer 👉 [How it works?](https://commercial.abp.io/how-it-works)
|
|
104
|
+
|
|
105
|
+
|
|
106
|
+
### 📘 Supported Database Providers
|
|
107
|
+
|
|
108
|
+
🔵 Entity Framework Core
|
|
109
|
+
|
|
110
|
+
🔵 MongoDB
|
|
111
|
+
|
|
112
|
+
🔵 Dapper
|
|
113
|
+
|
|
114
|
+
|
|
115
|
+
### 🎴 Supported UI Frameworks
|
|
116
|
+
|
|
117
|
+
🔵 Angular
|
|
118
|
+
|
|
119
|
+
🔵 Razor Pages
|
|
120
|
+
|
|
121
|
+
🔵 Blazor Web Assembly
|
|
122
|
+
|
|
123
|
+
🔵 Blazor Server
|
|
124
|
+
|
|
125
|
+
🔵 MAUI with Blazor Hybrid
|
|
126
|
+
|
|
127
|
+
|
|
128
|
+
## 📫 Bug & Support
|
|
129
|
+
|
|
130
|
+
Support for open-source ABP Framework client-side packages is available at [GitHub Issues](https://github.com/abpframework/abp/issues), and the commercial support is available at [support.abp.io](https://support.abp.io).
|
|
@@ -6,12 +6,11 @@ import * as i1 from "../../services/layout.service";
|
|
|
6
6
|
import * as i2 from "@angular/common";
|
|
7
7
|
import * as i3 from "@angular/router";
|
|
8
8
|
import * as i4 from "@abp/ng.core";
|
|
9
|
-
import * as i5 from "
|
|
10
|
-
import * as i6 from "../
|
|
11
|
-
import * as i7 from "../
|
|
12
|
-
import * as i8 from "../
|
|
13
|
-
import * as i9 from "
|
|
14
|
-
import * as i10 from "./auth-wrapper/auth-wrapper.component";
|
|
9
|
+
import * as i5 from "../logo/logo.component";
|
|
10
|
+
import * as i6 from "../nav-items/nav-items.component";
|
|
11
|
+
import * as i7 from "../routes/routes.component";
|
|
12
|
+
import * as i8 from "../page-alert-container/page-alert-container.component";
|
|
13
|
+
import * as i9 from "./auth-wrapper/auth-wrapper.component";
|
|
15
14
|
export class AccountLayoutComponent {
|
|
16
15
|
constructor(service) {
|
|
17
16
|
this.service = service;
|
|
@@ -24,9 +23,9 @@ export class AccountLayoutComponent {
|
|
|
24
23
|
// required for dynamic component
|
|
25
24
|
AccountLayoutComponent.type = "account" /* eLayoutType.account */;
|
|
26
25
|
AccountLayoutComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.0.4", ngImport: i0, type: AccountLayoutComponent, deps: [{ token: i1.LayoutService }], target: i0.ɵɵFactoryTarget.Component });
|
|
27
|
-
AccountLayoutComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "15.0.4", 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", dependencies: [{ kind: "directive", type: i2.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i2.NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }, { kind: "directive", type: i3.RouterOutlet, selector: "router-outlet", inputs: ["name"], outputs: ["activate", "deactivate", "attach", "detach"], exportAs: ["outlet"] }, { kind: "directive", type: i4.ReplaceableTemplateDirective, selector: "[abpReplaceableTemplate]", inputs: ["abpReplaceableTemplate"] }, { kind: "
|
|
26
|
+
AccountLayoutComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "15.0.4", 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", dependencies: [{ kind: "directive", type: i2.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i2.NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }, { kind: "directive", type: i3.RouterOutlet, selector: "router-outlet", inputs: ["name"], outputs: ["activate", "deactivate", "attach", "detach"], exportAs: ["outlet"] }, { kind: "directive", type: i4.ReplaceableTemplateDirective, selector: "[abpReplaceableTemplate]", inputs: ["abpReplaceableTemplate"] }, { kind: "component", type: i5.LogoComponent, selector: "abp-logo" }, { kind: "component", type: i6.NavItemsComponent, selector: "abp-nav-items" }, { kind: "component", type: i7.RoutesComponent, selector: "abp-routes", inputs: ["smallScreen"] }, { kind: "component", type: i8.PageAlertContainerComponent, selector: "abp-page-alert-container" }, { kind: "component", type: i9.AuthWrapperComponent, selector: "abp-auth-wrapper" }] });
|
|
28
27
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.0.4", ngImport: i0, type: AccountLayoutComponent, decorators: [{
|
|
29
28
|
type: Component,
|
|
30
29
|
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
30
|
}], ctorParameters: function () { return [{ type: i1.LayoutService }]; } });
|
|
32
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
31
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYWNjb3VudC1sYXlvdXQuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vcGFja2FnZXMvdGhlbWUtYmFzaWMvc3JjL2xpYi9jb21wb25lbnRzL2FjY291bnQtbGF5b3V0L2FjY291bnQtbGF5b3V0LmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uLy4uLy4uL3BhY2thZ2VzL3RoZW1lLWJhc2ljL3NyYy9saWIvY29tcG9uZW50cy9hY2NvdW50LWxheW91dC9hY2NvdW50LWxheW91dC5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQWlCLFNBQVMsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUN6RCxPQUFPLEVBQWUsbUJBQW1CLEVBQUUsTUFBTSxjQUFjLENBQUM7QUFDaEUsT0FBTyxFQUFFLGFBQWEsRUFBRSxNQUFNLCtCQUErQixDQUFDOzs7Ozs7Ozs7OztBQU85RCxNQUFNLE9BQU8sc0JBQXNCO0lBTWpDLFlBQW1CLE9BQXNCO1FBQXRCLFlBQU8sR0FBUCxPQUFPLENBQWU7UUFGekMsbUJBQWMsR0FBRyw4QkFBOEIsQ0FBQztJQUVKLENBQUM7SUFFN0MsZUFBZTtRQUNiLElBQUksQ0FBQyxPQUFPLENBQUMsbUJBQW1CLEVBQUUsQ0FBQztJQUNyQyxDQUFDOztBQVRELGlDQUFpQztBQUMxQiwyQkFBSSx1Q0FBdUI7bUhBRnZCLHNCQUFzQjt1R0FBdEIsc0JBQXNCLDZDQUZ0QixDQUFDLGFBQWEsRUFBRSxtQkFBbUIsQ0FBQywwQkNQakQsMG9FQThEQTsyRkRyRGEsc0JBQXNCO2tCQUxsQyxTQUFTOytCQUNFLG9CQUFvQixhQUVuQixDQUFDLGFBQWEsRUFBRSxtQkFBbUIsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEFmdGVyVmlld0luaXQsIENvbXBvbmVudCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xyXG5pbXBvcnQgeyBlTGF5b3V0VHlwZSwgU3Vic2NyaXB0aW9uU2VydmljZSB9IGZyb20gJ0BhYnAvbmcuY29yZSc7XHJcbmltcG9ydCB7IExheW91dFNlcnZpY2UgfSBmcm9tICcuLi8uLi9zZXJ2aWNlcy9sYXlvdXQuc2VydmljZSc7XHJcblxyXG5AQ29tcG9uZW50KHtcclxuICBzZWxlY3RvcjogJ2FicC1sYXlvdXQtYWNjb3VudCcsXHJcbiAgdGVtcGxhdGVVcmw6ICcuL2FjY291bnQtbGF5b3V0LmNvbXBvbmVudC5odG1sJyxcclxuICBwcm92aWRlcnM6IFtMYXlvdXRTZXJ2aWNlLCBTdWJzY3JpcHRpb25TZXJ2aWNlXSxcclxufSlcclxuZXhwb3J0IGNsYXNzIEFjY291bnRMYXlvdXRDb21wb25lbnQgaW1wbGVtZW50cyBBZnRlclZpZXdJbml0IHtcclxuICAvLyByZXF1aXJlZCBmb3IgZHluYW1pYyBjb21wb25lbnRcclxuICBzdGF0aWMgdHlwZSA9IGVMYXlvdXRUeXBlLmFjY291bnQ7XHJcblxyXG4gIGF1dGhXcmFwcGVyS2V5ID0gJ0FjY291bnQuQXV0aFdyYXBwZXJDb21wb25lbnQnO1xyXG5cclxuICBjb25zdHJ1Y3RvcihwdWJsaWMgc2VydmljZTogTGF5b3V0U2VydmljZSkge31cclxuXHJcbiAgbmdBZnRlclZpZXdJbml0KCkge1xyXG4gICAgdGhpcy5zZXJ2aWNlLnN1YnNjcmliZVdpbmRvd1NpemUoKTtcclxuICB9XHJcbn1cclxuIiwiPG5hdlxyXG4gIGNsYXNzPVwibmF2YmFyIG5hdmJhci1leHBhbmQtbGcgbmF2YmFyLWRhcmsgYmctZGFyayBzaGFkb3ctc20gZmxleC1jb2x1bW4gZmxleC1tZC1yb3cgbWItNFwiXHJcbiAgaWQ9XCJtYWluLW5hdmJhclwiXHJcbiAgc3R5bGU9XCJtaW4taGVpZ2h0OiA0cmVtXCJcclxuPlxyXG4gIDxkaXYgY2xhc3M9XCJjb250YWluZXJcIj5cclxuICAgIDxhYnAtbG9nbyAqYWJwUmVwbGFjZWFibGVUZW1wbGF0ZT1cInsgY29tcG9uZW50S2V5OiBzZXJ2aWNlLmxvZ29Db21wb25lbnRLZXkgfVwiPjwvYWJwLWxvZ28+XHJcbiAgICA8YnV0dG9uXHJcbiAgICAgIGNsYXNzPVwibmF2YmFyLXRvZ2dsZXJcIlxyXG4gICAgICB0eXBlPVwiYnV0dG9uXCJcclxuICAgICAgW2F0dHIuYXJpYS1leHBhbmRlZF09XCIhc2VydmljZS5pc0NvbGxhcHNlZFwiXHJcbiAgICAgIChjbGljayk9XCJzZXJ2aWNlLmlzQ29sbGFwc2VkID0gIXNlcnZpY2UuaXNDb2xsYXBzZWRcIlxyXG4gICAgPlxyXG4gICAgICA8c3BhbiBjbGFzcz1cIm5hdmJhci10b2dnbGVyLWljb25cIj48L3NwYW4+XHJcbiAgICA8L2J1dHRvbj5cclxuICAgIDxkaXZcclxuICAgICAgY2xhc3M9XCJuYXZiYXItY29sbGFwc2VcIlxyXG4gICAgICBbY2xhc3Mub3ZlcmZsb3ctaGlkZGVuXT1cInNlcnZpY2Uuc21hbGxTY3JlZW5cIlxyXG4gICAgICBpZD1cIm1haW4tbmF2YmFyLWNvbGxhcHNlXCJcclxuICAgID5cclxuICAgICAgPG5nLWNvbnRhaW5lciAqbmdUZW1wbGF0ZU91dGxldD1cIiFzZXJ2aWNlLnNtYWxsU2NyZWVuID8gbmF2aWdhdGlvbnMgOiBudWxsXCI+PC9uZy1jb250YWluZXI+XHJcblxyXG4gICAgICA8ZGl2XHJcbiAgICAgICAgKm5nSWY9XCJzZXJ2aWNlLnNtYWxsU2NyZWVuXCJcclxuICAgICAgICBbQGNvbGxhcHNlV2l0aE1hcmdpbl09XCJzZXJ2aWNlLmlzQ29sbGFwc2VkID8gJ2NvbGxhcHNlZCcgOiAnZXhwYW5kZWQnXCJcclxuICAgICAgPlxyXG4gICAgICAgIDxuZy1jb250YWluZXIgKm5nVGVtcGxhdGVPdXRsZXQ9XCJuYXZpZ2F0aW9uc1wiPjwvbmctY29udGFpbmVyPlxyXG4gICAgICA8L2Rpdj5cclxuXHJcbiAgICAgIDxuZy10ZW1wbGF0ZSAjbmF2aWdhdGlvbnM+XHJcbiAgICAgICAgPGFicC1yb3V0ZXNcclxuICAgICAgICAgICphYnBSZXBsYWNlYWJsZVRlbXBsYXRlPVwie1xyXG4gICAgICAgICAgICBjb21wb25lbnRLZXk6IHNlcnZpY2Uucm91dGVzQ29tcG9uZW50S2V5LFxyXG4gICAgICAgICAgICBpbnB1dHM6IHtcclxuICAgICAgICAgICAgICBzbWFsbFNjcmVlbjogeyB2YWx1ZTogc2VydmljZS5zbWFsbFNjcmVlbiB9XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICAgIH1cIlxyXG4gICAgICAgICAgY2xhc3M9XCJteC1hdXRvXCJcclxuICAgICAgICAgIFtzbWFsbFNjcmVlbl09XCJzZXJ2aWNlLnNtYWxsU2NyZWVuXCJcclxuICAgICAgICA+PC9hYnAtcm91dGVzPlxyXG5cclxuICAgICAgICA8YWJwLW5hdi1pdGVtc1xyXG4gICAgICAgICAgKmFicFJlcGxhY2VhYmxlVGVtcGxhdGU9XCJ7XHJcbiAgICAgICAgICAgIGNvbXBvbmVudEtleTogc2VydmljZS5uYXZJdGVtc0NvbXBvbmVudEtleVxyXG4gICAgICAgICAgfVwiXHJcbiAgICAgICAgPjwvYWJwLW5hdi1pdGVtcz5cclxuICAgICAgPC9uZy10ZW1wbGF0ZT5cclxuICAgIDwvZGl2PlxyXG4gIDwvZGl2PlxyXG48L25hdj5cclxuXHJcbjwhLS0gW0BzbGlkZUZyb21Cb3R0b21dPVwib3V0bGV0LmlzQWN0aXZhdGVkICYmIG91dGxldC5hY3RpdmF0ZWRSb3V0ZT8ucm91dGVDb25maWc/LnBhdGhcIiBUT0RPOiB0aHJvd3MgRXhwcmVzc2lvbkNoYW5nZWRBZnRlckl0SGFzQmVlbkNoZWNrIHdoZW4gYW5pbWF0aW9uIGlzIGFjdGl2ZS4gSXQgc2hvdWxkIGJlIGZpeGVkIC0tPlxyXG48ZGl2IGNsYXNzPVwiY29udGFpbmVyXCI+XHJcbiAgPGFicC1wYWdlLWFsZXJ0LWNvbnRhaW5lcj48L2FicC1wYWdlLWFsZXJ0LWNvbnRhaW5lcj5cclxuICA8YWJwLWF1dGgtd3JhcHBlclxyXG4gICAgKmFicFJlcGxhY2VhYmxlVGVtcGxhdGU9XCJ7XHJcbiAgICAgIGNvbXBvbmVudEtleTogYXV0aFdyYXBwZXJLZXlcclxuICAgIH1cIlxyXG4gID5cclxuICAgIDxyb3V0ZXItb3V0bGV0ICNvdXRsZXQ9XCJvdXRsZXRcIj48L3JvdXRlci1vdXRsZXQ+XHJcbiAgPC9hYnAtYXV0aC13cmFwcGVyPlxyXG48L2Rpdj5cclxuIl19
|
|
@@ -7,11 +7,10 @@ import * as i1 from "../../services/layout.service";
|
|
|
7
7
|
import * as i2 from "@angular/common";
|
|
8
8
|
import * as i3 from "@angular/router";
|
|
9
9
|
import * as i4 from "@abp/ng.core";
|
|
10
|
-
import * as i5 from "
|
|
11
|
-
import * as i6 from "../
|
|
12
|
-
import * as i7 from "../
|
|
13
|
-
import * as i8 from "../
|
|
14
|
-
import * as i9 from "../page-alert-container/page-alert-container.component";
|
|
10
|
+
import * as i5 from "../logo/logo.component";
|
|
11
|
+
import * as i6 from "../nav-items/nav-items.component";
|
|
12
|
+
import * as i7 from "../routes/routes.component";
|
|
13
|
+
import * as i8 from "../page-alert-container/page-alert-container.component";
|
|
15
14
|
export class ApplicationLayoutComponent {
|
|
16
15
|
constructor(service) {
|
|
17
16
|
this.service = service;
|
|
@@ -23,9 +22,9 @@ export class ApplicationLayoutComponent {
|
|
|
23
22
|
// required for dynamic component
|
|
24
23
|
ApplicationLayoutComponent.type = "application" /* eLayoutType.application */;
|
|
25
24
|
ApplicationLayoutComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.0.4", ngImport: i0, type: ApplicationLayoutComponent, deps: [{ token: i1.LayoutService }], target: i0.ɵɵFactoryTarget.Component });
|
|
26
|
-
ApplicationLayoutComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "15.0.4", 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", dependencies: [{ kind: "directive", type: i2.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i2.NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }, { kind: "directive", type: i3.RouterOutlet, selector: "router-outlet", inputs: ["name"], outputs: ["activate", "deactivate", "attach", "detach"], exportAs: ["outlet"] }, { kind: "directive", type: i4.ReplaceableTemplateDirective, selector: "[abpReplaceableTemplate]", inputs: ["abpReplaceableTemplate"] }, { kind: "
|
|
25
|
+
ApplicationLayoutComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "15.0.4", 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", dependencies: [{ kind: "directive", type: i2.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i2.NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }, { kind: "directive", type: i3.RouterOutlet, selector: "router-outlet", inputs: ["name"], outputs: ["activate", "deactivate", "attach", "detach"], exportAs: ["outlet"] }, { kind: "directive", type: i4.ReplaceableTemplateDirective, selector: "[abpReplaceableTemplate]", inputs: ["abpReplaceableTemplate"] }, { kind: "component", type: i5.LogoComponent, selector: "abp-logo" }, { kind: "component", type: i6.NavItemsComponent, selector: "abp-nav-items" }, { kind: "component", type: i7.RoutesComponent, selector: "abp-routes", inputs: ["smallScreen"] }, { kind: "component", type: i8.PageAlertContainerComponent, selector: "abp-page-alert-container" }], animations: [slideFromBottom, collapseWithMargin] });
|
|
27
26
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.0.4", ngImport: i0, type: ApplicationLayoutComponent, decorators: [{
|
|
28
27
|
type: Component,
|
|
29
28
|
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
29
|
}], ctorParameters: function () { return [{ type: i1.LayoutService }]; } });
|
|
31
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
30
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYXBwbGljYXRpb24tbGF5b3V0LmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uL3BhY2thZ2VzL3RoZW1lLWJhc2ljL3NyYy9saWIvY29tcG9uZW50cy9hcHBsaWNhdGlvbi1sYXlvdXQvYXBwbGljYXRpb24tbGF5b3V0LmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uLy4uLy4uL3BhY2thZ2VzL3RoZW1lLWJhc2ljL3NyYy9saWIvY29tcG9uZW50cy9hcHBsaWNhdGlvbi1sYXlvdXQvYXBwbGljYXRpb24tbGF5b3V0LmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBYyxtQkFBbUIsRUFBQyxNQUFNLGNBQWMsQ0FBQztBQUM5RCxPQUFPLEVBQUUsa0JBQWtCLEVBQUUsZUFBZSxFQUFFLE1BQU0sc0JBQXNCLENBQUM7QUFDM0UsT0FBTyxFQUFnQixTQUFTLEVBQUMsTUFBTSxlQUFlLENBQUM7QUFDdkQsT0FBTyxFQUFFLGFBQWEsRUFBRSxNQUFNLCtCQUErQixDQUFDOzs7Ozs7Ozs7O0FBUzlELE1BQU0sT0FBTywwQkFBMEI7SUFJckMsWUFBbUIsT0FBc0I7UUFBdEIsWUFBTyxHQUFQLE9BQU8sQ0FBZTtJQUFHLENBQUM7SUFFN0MsZUFBZTtRQUNiLElBQUksQ0FBQyxPQUFPLENBQUMsbUJBQW1CLEVBQUUsQ0FBQztJQUNyQyxDQUFDOztBQVBELGlDQUFpQztBQUMxQiwrQkFBSSwrQ0FBMkI7dUhBRjNCLDBCQUEwQjsyR0FBMUIsMEJBQTBCLGlEQUYxQixDQUFDLGFBQWEsRUFBRSxtQkFBbUIsQ0FBQywwQkNWakQsODdEQWtEQSxtN0JEekNjLENBQUMsZUFBZSxFQUFFLGtCQUFrQixDQUFDOzJGQUd0QywwQkFBMEI7a0JBTnRDLFNBQVM7K0JBQ0Usd0JBQXdCLGNBRXRCLENBQUMsZUFBZSxFQUFFLGtCQUFrQixDQUFDLGFBQ3RDLENBQUMsYUFBYSxFQUFFLG1CQUFtQixDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtlTGF5b3V0VHlwZSwgU3Vic2NyaXB0aW9uU2VydmljZX0gZnJvbSAnQGFicC9uZy5jb3JlJztcclxuaW1wb3J0IHsgY29sbGFwc2VXaXRoTWFyZ2luLCBzbGlkZUZyb21Cb3R0b20gfSBmcm9tICdAYWJwL25nLnRoZW1lLnNoYXJlZCc7XHJcbmltcG9ydCB7QWZ0ZXJWaWV3SW5pdCwgQ29tcG9uZW50fSBmcm9tICdAYW5ndWxhci9jb3JlJztcclxuaW1wb3J0IHsgTGF5b3V0U2VydmljZSB9IGZyb20gJy4uLy4uL3NlcnZpY2VzL2xheW91dC5zZXJ2aWNlJztcclxuXHJcblxyXG5AQ29tcG9uZW50KHtcclxuICBzZWxlY3RvcjogJ2FicC1sYXlvdXQtYXBwbGljYXRpb24nLFxyXG4gIHRlbXBsYXRlVXJsOiAnLi9hcHBsaWNhdGlvbi1sYXlvdXQuY29tcG9uZW50Lmh0bWwnLFxyXG4gIGFuaW1hdGlvbnM6IFtzbGlkZUZyb21Cb3R0b20sIGNvbGxhcHNlV2l0aE1hcmdpbl0sXHJcbiAgcHJvdmlkZXJzOiBbTGF5b3V0U2VydmljZSwgU3Vic2NyaXB0aW9uU2VydmljZV0sXHJcbn0pXHJcbmV4cG9ydCBjbGFzcyBBcHBsaWNhdGlvbkxheW91dENvbXBvbmVudCBpbXBsZW1lbnRzIEFmdGVyVmlld0luaXQge1xyXG4gIC8vIHJlcXVpcmVkIGZvciBkeW5hbWljIGNvbXBvbmVudFxyXG4gIHN0YXRpYyB0eXBlID0gZUxheW91dFR5cGUuYXBwbGljYXRpb247XHJcblxyXG4gIGNvbnN0cnVjdG9yKHB1YmxpYyBzZXJ2aWNlOiBMYXlvdXRTZXJ2aWNlKSB7fVxyXG5cclxuICBuZ0FmdGVyVmlld0luaXQoKSB7XHJcbiAgICB0aGlzLnNlcnZpY2Uuc3Vic2NyaWJlV2luZG93U2l6ZSgpO1xyXG4gIH1cclxufVxyXG4iLCI8bmF2XHJcbiAgY2xhc3M9XCJuYXZiYXIgbmF2YmFyLWV4cGFuZC1sZyBuYXZiYXItZGFyayBiZy1kYXJrIHNoYWRvdy1zbSBmbGV4LWNvbHVtbiBmbGV4LW1kLXJvdyBtYi00XCJcclxuICBpZD1cIm1haW4tbmF2YmFyXCJcclxuICBzdHlsZT1cIm1pbi1oZWlnaHQ6IDRyZW1cIlxyXG4+XHJcbiAgPGRpdiBjbGFzcz1cImNvbnRhaW5lclwiPlxyXG4gICAgPGFicC1sb2dvICphYnBSZXBsYWNlYWJsZVRlbXBsYXRlPVwieyBjb21wb25lbnRLZXk6IHNlcnZpY2UubG9nb0NvbXBvbmVudEtleSB9XCI+PC9hYnAtbG9nbz5cclxuICAgIDxidXR0b25cclxuICAgICAgY2xhc3M9XCJuYXZiYXItdG9nZ2xlclwiXHJcbiAgICAgIHR5cGU9XCJidXR0b25cIlxyXG4gICAgICBbYXR0ci5hcmlhLWV4cGFuZGVkXT1cIiFzZXJ2aWNlLmlzQ29sbGFwc2VkXCJcclxuICAgICAgKGNsaWNrKT1cInNlcnZpY2UuaXNDb2xsYXBzZWQgPSAhc2VydmljZS5pc0NvbGxhcHNlZFwiXHJcbiAgICA+XHJcbiAgICAgIDxzcGFuIGNsYXNzPVwibmF2YmFyLXRvZ2dsZXItaWNvblwiPjwvc3Bhbj5cclxuICAgIDwvYnV0dG9uPlxyXG4gICAgPGRpdiBjbGFzcz1cIm5hdmJhci1jb2xsYXBzZVwiIFtjbGFzcy5vdmVyZmxvdy1oaWRkZW5dPVwic2VydmljZS5zbWFsbFNjcmVlblwiIGlkPVwibWFpbi1uYXZiYXItY29sbGFwc2VcIj5cclxuICAgICAgPG5nLWNvbnRhaW5lciAqbmdUZW1wbGF0ZU91dGxldD1cIiFzZXJ2aWNlLnNtYWxsU2NyZWVuID8gbmF2aWdhdGlvbnMgOiBudWxsXCI+PC9uZy1jb250YWluZXI+XHJcblxyXG4gICAgICA8ZGl2ICpuZ0lmPVwic2VydmljZS5zbWFsbFNjcmVlblwiIFtAY29sbGFwc2VXaXRoTWFyZ2luXT1cInNlcnZpY2UuaXNDb2xsYXBzZWQgPyAnY29sbGFwc2VkJyA6ICdleHBhbmRlZCdcIj5cclxuICAgICAgICA8bmctY29udGFpbmVyICpuZ1RlbXBsYXRlT3V0bGV0PVwibmF2aWdhdGlvbnNcIj48L25nLWNvbnRhaW5lcj5cclxuICAgICAgPC9kaXY+XHJcblxyXG4gICAgICA8bmctdGVtcGxhdGUgI25hdmlnYXRpb25zPlxyXG4gICAgICAgIDxhYnAtcm91dGVzXHJcbiAgICAgICAgICAqYWJwUmVwbGFjZWFibGVUZW1wbGF0ZT1cIntcclxuICAgICAgICAgICAgY29tcG9uZW50S2V5OiBzZXJ2aWNlLnJvdXRlc0NvbXBvbmVudEtleSxcclxuICAgICAgICAgICAgaW5wdXRzOiB7XHJcbiAgICAgICAgICAgICAgc21hbGxTY3JlZW46IHsgdmFsdWU6IHNlcnZpY2Uuc21hbGxTY3JlZW4gfVxyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgICB9XCJcclxuICAgICAgICAgIGNsYXNzPVwibXgtYXV0b1wiXHJcbiAgICAgICAgICBbc21hbGxTY3JlZW5dPVwic2VydmljZS5zbWFsbFNjcmVlblwiXHJcbiAgICAgICAgPjwvYWJwLXJvdXRlcz5cclxuXHJcbiAgICAgICAgPGFicC1uYXYtaXRlbXNcclxuICAgICAgICAgICphYnBSZXBsYWNlYWJsZVRlbXBsYXRlPVwie1xyXG4gICAgICAgICAgICBjb21wb25lbnRLZXk6IHNlcnZpY2UubmF2SXRlbXNDb21wb25lbnRLZXlcclxuICAgICAgICAgIH1cIlxyXG4gICAgICAgID48L2FicC1uYXYtaXRlbXM+XHJcbiAgICAgIDwvbmctdGVtcGxhdGU+XHJcbiAgICA8L2Rpdj5cclxuICA8L2Rpdj5cclxuPC9uYXY+XHJcblxyXG48IS0tIFtAc2xpZGVGcm9tQm90dG9tXT1cIm91dGxldC5pc0FjdGl2YXRlZCAmJiBvdXRsZXQuYWN0aXZhdGVkUm91dGU/LnJvdXRlQ29uZmlnPy5wYXRoXCIgVE9ETzogdGhyb3dzIEV4cHJlc3Npb25DaGFuZ2VkQWZ0ZXJJdEhhc0JlZW5DaGVjayB3aGVuIGFuaW1hdGlvbiBpcyBhY3RpdmUuIEl0IHNob3VsZCBiZSBmaXhlZCAtLT5cclxuPGRpdiBjbGFzcz1cImNvbnRhaW5lclwiPlxyXG4gIDxhYnAtcGFnZS1hbGVydC1jb250YWluZXI+PC9hYnAtcGFnZS1hbGVydC1jb250YWluZXI+XHJcblxyXG4gIDxyb3V0ZXItb3V0bGV0ICNvdXRsZXQ9XCJvdXRsZXRcIj48L3JvdXRlci1vdXRsZXQ+XHJcbjwvZGl2PlxyXG4iXX0=
|
|
@@ -6,10 +6,10 @@ import { fromEvent } from 'rxjs';
|
|
|
6
6
|
import { debounceTime, map } from 'rxjs/operators';
|
|
7
7
|
import * as i2 from '@angular/common';
|
|
8
8
|
import * as i3 from '@angular/router';
|
|
9
|
-
import * as i5 from '@ng-bootstrap/ng-bootstrap';
|
|
10
|
-
import { NgbCollapseModule, NgbDropdownModule } from '@ng-bootstrap/ng-bootstrap';
|
|
11
9
|
import * as i1$1 from '@abp/ng.theme.shared';
|
|
12
10
|
import { slideFromBottom, collapseWithMargin, DocumentDirHandlerService, NavItemsService, UserMenuService, ThemeSharedModule } from '@abp/ng.theme.shared';
|
|
11
|
+
import * as i5 from '@ng-bootstrap/ng-bootstrap';
|
|
12
|
+
import { NgbCollapseModule, NgbDropdownModule } from '@ng-bootstrap/ng-bootstrap';
|
|
13
13
|
import * as i1$2 from '@abp/ng.account.core';
|
|
14
14
|
import { TenantBoxService, AuthWrapperService } from '@abp/ng.account.core';
|
|
15
15
|
import * as i3$1 from '@angular/forms';
|
|
@@ -186,7 +186,7 @@ class AccountLayoutComponent {
|
|
|
186
186
|
// required for dynamic component
|
|
187
187
|
AccountLayoutComponent.type = "account" /* eLayoutType.account */;
|
|
188
188
|
AccountLayoutComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.0.4", ngImport: i0, type: AccountLayoutComponent, deps: [{ token: LayoutService }], target: i0.ɵɵFactoryTarget.Component });
|
|
189
|
-
AccountLayoutComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "15.0.4", 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", dependencies: [{ kind: "directive", type: i2.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i2.NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }, { kind: "directive", type: i3.RouterOutlet, selector: "router-outlet", inputs: ["name"], outputs: ["activate", "deactivate", "attach", "detach"], exportAs: ["outlet"] }, { kind: "directive", type: i1.ReplaceableTemplateDirective, selector: "[abpReplaceableTemplate]", inputs: ["abpReplaceableTemplate"] }, { kind: "
|
|
189
|
+
AccountLayoutComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "15.0.4", 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", dependencies: [{ kind: "directive", type: i2.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i2.NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }, { kind: "directive", type: i3.RouterOutlet, selector: "router-outlet", inputs: ["name"], outputs: ["activate", "deactivate", "attach", "detach"], exportAs: ["outlet"] }, { kind: "directive", type: i1.ReplaceableTemplateDirective, selector: "[abpReplaceableTemplate]", inputs: ["abpReplaceableTemplate"] }, { kind: "component", type: LogoComponent, selector: "abp-logo" }, { kind: "component", type: NavItemsComponent, selector: "abp-nav-items" }, { kind: "component", type: RoutesComponent, selector: "abp-routes", inputs: ["smallScreen"] }, { kind: "component", type: PageAlertContainerComponent, selector: "abp-page-alert-container" }, { kind: "component", type: AuthWrapperComponent, selector: "abp-auth-wrapper" }] });
|
|
190
190
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.0.4", ngImport: i0, type: AccountLayoutComponent, decorators: [{
|
|
191
191
|
type: Component,
|
|
192
192
|
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" }]
|
|
@@ -203,7 +203,7 @@ class ApplicationLayoutComponent {
|
|
|
203
203
|
// required for dynamic component
|
|
204
204
|
ApplicationLayoutComponent.type = "application" /* eLayoutType.application */;
|
|
205
205
|
ApplicationLayoutComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.0.4", ngImport: i0, type: ApplicationLayoutComponent, deps: [{ token: LayoutService }], target: i0.ɵɵFactoryTarget.Component });
|
|
206
|
-
ApplicationLayoutComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "15.0.4", 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", dependencies: [{ kind: "directive", type: i2.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i2.NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }, { kind: "directive", type: i3.RouterOutlet, selector: "router-outlet", inputs: ["name"], outputs: ["activate", "deactivate", "attach", "detach"], exportAs: ["outlet"] }, { kind: "directive", type: i1.ReplaceableTemplateDirective, selector: "[abpReplaceableTemplate]", inputs: ["abpReplaceableTemplate"] }, { kind: "
|
|
206
|
+
ApplicationLayoutComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "15.0.4", 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", dependencies: [{ kind: "directive", type: i2.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i2.NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }, { kind: "directive", type: i3.RouterOutlet, selector: "router-outlet", inputs: ["name"], outputs: ["activate", "deactivate", "attach", "detach"], exportAs: ["outlet"] }, { kind: "directive", type: i1.ReplaceableTemplateDirective, selector: "[abpReplaceableTemplate]", inputs: ["abpReplaceableTemplate"] }, { kind: "component", type: LogoComponent, selector: "abp-logo" }, { kind: "component", type: NavItemsComponent, selector: "abp-nav-items" }, { kind: "component", type: RoutesComponent, selector: "abp-routes", inputs: ["smallScreen"] }, { kind: "component", type: PageAlertContainerComponent, selector: "abp-page-alert-container" }], animations: [slideFromBottom, collapseWithMargin] });
|
|
207
207
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.0.4", ngImport: i0, type: ApplicationLayoutComponent, decorators: [{
|
|
208
208
|
type: Component,
|
|
209
209
|
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" }]
|