@abp/ng.theme.basic 4.4.3 → 5.0.0-beta.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (91) hide show
  1. package/abp-ng.theme.basic.d.ts +1 -15
  2. package/bundles/abp-ng.theme.basic-testing.umd.js +33 -7
  3. package/bundles/abp-ng.theme.basic-testing.umd.js.map +1 -1
  4. package/bundles/abp-ng.theme.basic.umd.js +305 -263
  5. package/bundles/abp-ng.theme.basic.umd.js.map +1 -1
  6. package/esm2015/abp-ng.theme.basic.js +1 -16
  7. package/esm2015/abp-ng.theme.basic.js.map +1 -0
  8. package/esm2015/lib/components/account-layout/account-layout.component.js +22 -11
  9. package/esm2015/lib/components/account-layout/account-layout.component.js.map +1 -0
  10. package/esm2015/lib/components/account-layout/auth-wrapper/auth-wrapper.component.js +17 -13
  11. package/esm2015/lib/components/account-layout/auth-wrapper/auth-wrapper.component.js.map +1 -0
  12. package/esm2015/lib/components/account-layout/tenant-box/tenant-box.component.js +18 -13
  13. package/esm2015/lib/components/account-layout/tenant-box/tenant-box.component.js.map +1 -0
  14. package/esm2015/lib/components/application-layout/application-layout.component.js +22 -12
  15. package/esm2015/lib/components/application-layout/application-layout.component.js.map +1 -0
  16. package/esm2015/lib/components/empty-layout/empty-layout.component.js +17 -8
  17. package/esm2015/lib/components/empty-layout/empty-layout.component.js.map +1 -0
  18. package/esm2015/lib/components/index.js +1 -1
  19. package/esm2015/lib/components/index.js.map +1 -0
  20. package/esm2015/lib/components/logo/logo.component.js +29 -11
  21. package/esm2015/lib/components/logo/logo.component.js.map +1 -0
  22. package/esm2015/lib/components/nav-items/current-user.component.js +17 -13
  23. package/esm2015/lib/components/nav-items/current-user.component.js.map +1 -0
  24. package/esm2015/lib/components/nav-items/languages.component.js +51 -16
  25. package/esm2015/lib/components/nav-items/languages.component.js.map +1 -0
  26. package/esm2015/lib/components/nav-items/nav-items.component.js +14 -10
  27. package/esm2015/lib/components/nav-items/nav-items.component.js.map +1 -0
  28. package/esm2015/lib/components/page-alert-container/page-alert-container.component.js +15 -11
  29. package/esm2015/lib/components/page-alert-container/page-alert-container.component.js.map +1 -0
  30. package/esm2015/lib/components/routes/routes.component.js +22 -16
  31. package/esm2015/lib/components/routes/routes.component.js.map +1 -0
  32. package/esm2015/lib/components/validation-error/validation-error.component.js +19 -9
  33. package/esm2015/lib/components/validation-error/validation-error.component.js.map +1 -0
  34. package/esm2015/lib/constants/styles.js +1 -1
  35. package/esm2015/lib/constants/styles.js.map +1 -0
  36. package/esm2015/lib/enums/components.js +1 -1
  37. package/esm2015/lib/enums/components.js.map +1 -0
  38. package/esm2015/lib/enums/index.js +1 -1
  39. package/esm2015/lib/enums/index.js.map +1 -0
  40. package/esm2015/lib/models/index.js +1 -1
  41. package/esm2015/lib/models/index.js.map +1 -0
  42. package/esm2015/lib/models/layout.js +1 -1
  43. package/esm2015/lib/models/layout.js.map +1 -0
  44. package/esm2015/lib/providers/index.js +1 -1
  45. package/esm2015/lib/providers/index.js.map +1 -0
  46. package/esm2015/lib/providers/nav-item.provider.js +1 -1
  47. package/esm2015/lib/providers/nav-item.provider.js.map +1 -0
  48. package/esm2015/lib/providers/styles.provider.js +2 -2
  49. package/esm2015/lib/providers/styles.provider.js.map +1 -0
  50. package/esm2015/lib/services/layout.service.js +8 -8
  51. package/esm2015/lib/services/layout.service.js.map +1 -0
  52. package/esm2015/lib/theme-basic.module.js +74 -41
  53. package/esm2015/lib/theme-basic.module.js.map +1 -0
  54. package/esm2015/public-api.js +1 -1
  55. package/esm2015/public-api.js.map +1 -0
  56. package/esm2015/testing/abp-ng.theme.basic-testing.js +1 -1
  57. package/esm2015/testing/abp-ng.theme.basic-testing.js.map +1 -0
  58. package/esm2015/testing/lib/theme-basic-testing.module.js +12 -7
  59. package/esm2015/testing/lib/theme-basic-testing.module.js.map +1 -0
  60. package/esm2015/testing/public-api.js +1 -1
  61. package/esm2015/testing/public-api.js.map +1 -0
  62. package/fesm2015/abp-ng.theme.basic-testing.js +11 -6
  63. package/fesm2015/abp-ng.theme.basic-testing.js.map +1 -1
  64. package/fesm2015/abp-ng.theme.basic.js +334 -240
  65. package/fesm2015/abp-ng.theme.basic.js.map +1 -1
  66. package/lib/components/account-layout/account-layout.component.d.ts +3 -0
  67. package/lib/components/account-layout/auth-wrapper/auth-wrapper.component.d.ts +4 -3
  68. package/lib/components/account-layout/tenant-box/tenant-box.component.d.ts +4 -3
  69. package/lib/components/application-layout/application-layout.component.d.ts +3 -0
  70. package/lib/components/empty-layout/empty-layout.component.d.ts +3 -0
  71. package/lib/components/logo/logo.component.d.ts +3 -0
  72. package/lib/components/nav-items/current-user.component.d.ts +3 -0
  73. package/lib/components/nav-items/languages.component.d.ts +3 -0
  74. package/lib/components/nav-items/nav-items.component.d.ts +3 -0
  75. package/lib/components/page-alert-container/page-alert-container.component.d.ts +3 -0
  76. package/lib/components/routes/routes.component.d.ts +3 -0
  77. package/lib/components/validation-error/validation-error.component.d.ts +3 -0
  78. package/lib/providers/nav-item.provider.d.ts +1 -1
  79. package/lib/providers/styles.provider.d.ts +2 -2
  80. package/lib/services/layout.service.d.ts +3 -0
  81. package/lib/theme-basic.module.d.ts +23 -0
  82. package/package.json +5 -3
  83. package/testing/abp-ng.theme.basic-testing.d.ts +1 -0
  84. package/testing/lib/theme-basic-testing.module.d.ts +5 -0
  85. package/testing/package.json +0 -1
  86. package/abp-ng.theme.basic.metadata.json +0 -1
  87. package/bundles/abp-ng.theme.basic-testing.umd.min.js +0 -2
  88. package/bundles/abp-ng.theme.basic-testing.umd.min.js.map +0 -1
  89. package/bundles/abp-ng.theme.basic.umd.min.js +0 -17
  90. package/bundles/abp-ng.theme.basic.umd.min.js.map +0 -1
  91. package/testing/abp-ng.theme.basic-testing.metadata.json +0 -1
@@ -1,12 +1,19 @@
1
- import { Injectable, ChangeDetectorRef, Component, Inject, Renderer2, Input, ViewChildren, ChangeDetectionStrategy, ViewEncapsulation, APP_INITIALIZER, NgModule } from '@angular/core';
2
- import { SubscriptionService, EnvironmentService, NAVIGATE_TO_MANAGE_PROFILE, AuthService, ConfigStateService, SessionStateService, RoutesService, DomInsertionService, ReplaceableComponentsService, CONTENT_STRATEGY, CoreModule } from '@abp/ng.core';
1
+ import * as i0 from '@angular/core';
2
+ import { Injectable, Component, Input, ViewChildren, ViewEncapsulation, Inject, ChangeDetectionStrategy, APP_INITIALIZER, NgModule } from '@angular/core';
3
+ import * as i1 from '@abp/ng.core';
4
+ import { SubscriptionService, NAVIGATE_TO_MANAGE_PROFILE, DomInsertionService, ReplaceableComponentsService, CONTENT_STRATEGY, CoreModule } from '@abp/ng.core';
3
5
  import { fromEvent } from 'rxjs';
4
6
  import { debounceTime, map } from 'rxjs/operators';
5
- import { AuthWrapperService, TenantBoxService } from '@abp/ng.account.core';
6
- import { slideFromBottom, collapseWithMargin, NavItemsService, PageAlertService, ThemeSharedModule } from '@abp/ng.theme.shared';
7
- import snq from 'snq';
8
- import { ValidationErrorComponent as ValidationErrorComponent$1, NgxValidateCoreModule, VALIDATION_ERROR_TEMPLATE, VALIDATION_TARGET_SELECTOR, VALIDATION_INVALID_CLASSES } from '@ngx-validate/core';
7
+ import * as i2 from '@angular/router';
8
+ import * as i2$1 from '@angular/common';
9
+ import * as i3 from '@ng-bootstrap/ng-bootstrap';
9
10
  import { NgbCollapseModule, NgbDropdownModule } from '@ng-bootstrap/ng-bootstrap';
11
+ import * as i1$1 from '@abp/ng.theme.shared';
12
+ import { slideFromBottom, collapseWithMargin, NavItemsService, ThemeSharedModule } from '@abp/ng.theme.shared';
13
+ import * as i1$2 from '@abp/ng.account.core';
14
+ import { TenantBoxService, AuthWrapperService } from '@abp/ng.account.core';
15
+ import * as i4 from '@angular/forms';
16
+ import { ValidationErrorComponent as ValidationErrorComponent$1, NgxValidateCoreModule, VALIDATION_ERROR_TEMPLATE, VALIDATION_TARGET_SELECTOR, VALIDATION_INVALID_CLASSES } from '@ngx-validate/core';
10
17
 
11
18
  class LayoutService {
12
19
  constructor(subscription, cdRef) {
@@ -34,69 +41,174 @@ class LayoutService {
34
41
  this.subscription.addOne(resize$, () => this.checkWindowWidth());
35
42
  }
36
43
  }
37
- LayoutService.decorators = [
38
- { type: Injectable }
39
- ];
40
- LayoutService.ctorParameters = () => [
41
- { type: SubscriptionService },
42
- { type: ChangeDetectorRef }
43
- ];
44
+ LayoutService.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "12.2.6", ngImport: i0, type: LayoutService, deps: [{ token: i1.SubscriptionService }, { token: i0.ChangeDetectorRef }], target: i0.ɵɵFactoryTarget.Injectable });
45
+ LayoutService.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "12.2.6", ngImport: i0, type: LayoutService });
46
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.6", ngImport: i0, type: LayoutService, decorators: [{
47
+ type: Injectable
48
+ }], ctorParameters: function () { return [{ type: i1.SubscriptionService }, { type: i0.ChangeDetectorRef }]; } });
44
49
 
45
- class AccountLayoutComponent {
50
+ class LogoComponent {
51
+ constructor(environment) {
52
+ this.environment = environment;
53
+ }
54
+ get appInfo() {
55
+ return this.environment.getEnvironment().application;
56
+ }
57
+ }
58
+ LogoComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "12.2.6", ngImport: i0, type: LogoComponent, deps: [{ token: i1.EnvironmentService }], target: i0.ɵɵFactoryTarget.Component });
59
+ LogoComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "12.2.6", type: LogoComponent, selector: "abp-logo", ngImport: i0, template: `
60
+ <a class="navbar-brand" routerLink="/">
61
+ <img
62
+ *ngIf="appInfo.logoUrl; else appName"
63
+ [src]="appInfo.logoUrl"
64
+ [alt]="appInfo.name"
65
+ width="100%"
66
+ height="auto"
67
+ />
68
+ </a>
69
+
70
+ <ng-template #appName>
71
+ {{ appInfo.name }}
72
+ </ng-template>
73
+ `, isInline: true, directives: [{ type: i2.RouterLinkWithHref, selector: "a[routerLink],area[routerLink]", inputs: ["routerLink", "target", "queryParams", "fragment", "queryParamsHandling", "preserveFragment", "skipLocationChange", "replaceUrl", "state", "relativeTo"] }, { type: i2$1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }] });
74
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.6", ngImport: i0, type: LogoComponent, decorators: [{
75
+ type: Component,
76
+ args: [{
77
+ selector: 'abp-logo',
78
+ template: `
79
+ <a class="navbar-brand" routerLink="/">
80
+ <img
81
+ *ngIf="appInfo.logoUrl; else appName"
82
+ [src]="appInfo.logoUrl"
83
+ [alt]="appInfo.name"
84
+ width="100%"
85
+ height="auto"
86
+ />
87
+ </a>
88
+
89
+ <ng-template #appName>
90
+ {{ appInfo.name }}
91
+ </ng-template>
92
+ `,
93
+ }]
94
+ }], ctorParameters: function () { return [{ type: i1.EnvironmentService }]; } });
95
+
96
+ class RoutesComponent {
97
+ constructor(routesService, renderer) {
98
+ this.routesService = routesService;
99
+ this.renderer = renderer;
100
+ this.trackByFn = (_, item) => item.name;
101
+ }
102
+ isDropdown(node) {
103
+ return !(node === null || node === void 0 ? void 0 : node.isLeaf) || this.routesService.hasChildren(node.name);
104
+ }
105
+ closeDropdown() {
106
+ this.childrenContainers.forEach(({ nativeElement }) => {
107
+ this.renderer.addClass(nativeElement, 'd-none');
108
+ setTimeout(() => this.renderer.removeClass(nativeElement, 'd-none'), 0);
109
+ });
110
+ }
111
+ }
112
+ RoutesComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "12.2.6", ngImport: i0, type: RoutesComponent, deps: [{ token: i1.RoutesService }, { token: i0.Renderer2 }], target: i0.ɵɵFactoryTarget.Component });
113
+ RoutesComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "12.2.6", type: RoutesComponent, selector: "abp-routes", inputs: { smallScreen: "smallScreen" }, viewQueries: [{ propertyName: "childrenContainers", predicate: ["childrenContainer"], descendants: true }], ngImport: i0, template: "<ul class=\"navbar-nav\">\n <ng-container\n *ngFor=\"let route of routesService.visible$ | async; trackBy: trackByFn\"\n [ngTemplateOutlet]=\"isDropdown(route) ? dropdownLink : defaultLink\"\n [ngTemplateOutletContext]=\"{ $implicit: route }\"\n >\n </ng-container>\n\n <ng-template #defaultLink let-route>\n <li class=\"nav-item\" *abpPermission=\"route.requiredPolicy\">\n <a class=\"nav-link\" [routerLink]=\"[route.path]\"\n ><i *ngIf=\"route.iconClass\" [ngClass]=\"route.iconClass\"></i>\n {{ route.name | abpLocalization }}</a\n >\n </li>\n </ng-template>\n\n <ng-template #dropdownLink let-route>\n <ng-container *ngIf=\"route.children?.length\">\n <li\n #navbarRootDropdown\n class=\"nav-item dropdown\"\n display=\"static\"\n *abpPermission=\"route.requiredPolicy\"\n (click)=\"\n navbarRootDropdown.expand\n ? (navbarRootDropdown.expand = false)\n : (navbarRootDropdown.expand = true)\n \"\n >\n <a\n class=\"nav-link dropdown-toggle\"\n data-toggle=\"dropdown\"\n aria-haspopup=\"true\"\n aria-expanded=\"false\"\n href=\"javascript:void(0)\"\n >\n <i *ngIf=\"route.iconClass\" [ngClass]=\"route.iconClass\"></i>\n {{ route.name | abpLocalization }}\n </a>\n <div\n #routeContainer\n class=\"dropdown-menu border-0 shadow-sm\"\n (click)=\"$event.preventDefault(); $event.stopPropagation()\"\n [class.d-block]=\"smallScreen && navbarRootDropdown.expand\"\n >\n <ng-container\n *ngTemplateOutlet=\"forTemplate; context: { $implicit: route }\"\n ></ng-container>\n </div>\n </li>\n </ng-container>\n </ng-template>\n\n <ng-template #forTemplate let-route>\n <ng-container *ngFor=\"let child of route.children\">\n <ng-template\n [ngTemplateOutlet]=\"child.children?.length ? dropdownChild : defaultChild\"\n [ngTemplateOutletContext]=\"{ $implicit: child }\"\n ></ng-template>\n </ng-container>\n </ng-template>\n\n <ng-template #defaultChild let-child>\n <ng-container *ngIf=\"child.path\">\n <div class=\"dropdown-submenu\" *abpPermission=\"child.requiredPolicy\">\n <a class=\"dropdown-item\" [routerLink]=\"[child.path]\" (click)=\"closeDropdown()\">\n <i *ngIf=\"child.iconClass\" [ngClass]=\"child.iconClass\"></i>\n {{ child.name | abpLocalization }}</a\n >\n </div>\n </ng-container>\n </ng-template>\n\n <ng-template #dropdownChild let-child>\n <div\n class=\"dropdown-submenu\"\n ngbDropdown\n #dropdownSubmenu=\"ngbDropdown\"\n placement=\"right-top\"\n [autoClose]=\"true\"\n *abpPermission=\"child.requiredPolicy\"\n >\n <div ngbDropdownToggle [class.dropdown-toggle]=\"false\">\n <a\n abpEllipsis=\"210px\"\n [abpEllipsisEnabled]=\"!smallScreen\"\n role=\"button\"\n class=\"btn d-block text-left dropdown-toggle\"\n >\n <i *ngIf=\"child.iconClass\" [ngClass]=\"child.iconClass\"></i>\n {{ child.name | abpLocalization }}\n </a>\n </div>\n <div\n #childrenContainer\n class=\"dropdown-menu border-0 shadow-sm\"\n [class.d-block]=\"smallScreen && dropdownSubmenu.isOpen()\"\n >\n <ng-container *ngTemplateOutlet=\"forTemplate; context: { $implicit: child }\"></ng-container>\n </div>\n </div>\n </ng-template>\n</ul>\n", directives: [{ type: i2$1.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { type: i2$1.NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet"] }, { type: i1.PermissionDirective, selector: "[abpPermission]", inputs: ["abpPermission"] }, { type: i2.RouterLinkWithHref, selector: "a[routerLink],area[routerLink]", inputs: ["routerLink", "target", "queryParams", "fragment", "queryParamsHandling", "preserveFragment", "skipLocationChange", "replaceUrl", "state", "relativeTo"] }, { type: i2$1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { type: i2$1.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { type: i3.NgbDropdown, selector: "[ngbDropdown]", inputs: ["open", "placement", "container", "autoClose", "display"], outputs: ["openChange"], exportAs: ["ngbDropdown"] }, { type: i3.NgbDropdownToggle, selector: "[ngbDropdownToggle]" }, { type: i1$1.EllipsisDirective, selector: "[abpEllipsis]", inputs: ["abpEllipsis", "title", "abpEllipsisEnabled"] }], pipes: { "async": i2$1.AsyncPipe, "abpLocalization": i1.LocalizationPipe } });
114
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.6", ngImport: i0, type: RoutesComponent, decorators: [{
115
+ type: Component,
116
+ args: [{
117
+ selector: 'abp-routes',
118
+ templateUrl: 'routes.component.html',
119
+ }]
120
+ }], ctorParameters: function () { return [{ type: i1.RoutesService }, { type: i0.Renderer2 }]; }, propDecorators: { smallScreen: [{
121
+ type: Input
122
+ }], childrenContainers: [{
123
+ type: ViewChildren,
124
+ args: ['childrenContainer']
125
+ }] } });
126
+
127
+ class NavItemsComponent {
128
+ constructor(navItems) {
129
+ this.navItems = navItems;
130
+ this.trackByFn = (_, element) => element.id;
131
+ }
132
+ }
133
+ NavItemsComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "12.2.6", ngImport: i0, type: NavItemsComponent, deps: [{ token: i1$1.NavItemsService }], target: i0.ɵɵFactoryTarget.Component });
134
+ NavItemsComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "12.2.6", type: NavItemsComponent, selector: "abp-nav-items", ngImport: i0, template: "<ul class=\"navbar-nav\">\n <ng-container *ngFor=\"let item of navItems.items$ | async; trackBy: trackByFn\">\n <ng-container *ngIf=\"item.visible()\">\n <li class=\"nav-item d-flex align-items-center\" *abpPermission=\"item.requiredPolicy\">\n <ng-container\n *ngIf=\"item.component; else htmlTemplate\"\n [ngComponentOutlet]=\"item.component\"\n ></ng-container>\n\n <ng-template #htmlTemplate>\n <div [innerHTML]=\"item.html\" (click)=\"item.action ? item.action() : null\"></div>\n </ng-template>\n </li>\n </ng-container>\n </ng-container>\n</ul>\n", directives: [{ type: i2$1.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { type: i2$1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { type: i1.PermissionDirective, selector: "[abpPermission]", inputs: ["abpPermission"] }, { type: i2$1.NgComponentOutlet, selector: "[ngComponentOutlet]", inputs: ["ngComponentOutlet", "ngComponentOutletInjector", "ngComponentOutletContent", "ngComponentOutletNgModuleFactory"] }], pipes: { "async": i2$1.AsyncPipe } });
135
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.6", ngImport: i0, type: NavItemsComponent, decorators: [{
136
+ type: Component,
137
+ args: [{
138
+ selector: 'abp-nav-items',
139
+ templateUrl: 'nav-items.component.html',
140
+ }]
141
+ }], ctorParameters: function () { return [{ type: i1$1.NavItemsService }]; } });
142
+
143
+ class PageAlertContainerComponent {
46
144
  constructor(service) {
47
145
  this.service = service;
48
- this.authWrapperKey = 'Account.AuthWrapperComponent';
49
146
  }
50
- ngAfterViewInit() {
51
- this.service.subscribeWindowSize();
147
+ }
148
+ PageAlertContainerComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "12.2.6", ngImport: i0, type: PageAlertContainerComponent, deps: [{ token: i1$1.PageAlertService }], target: i0.ɵɵFactoryTarget.Component });
149
+ PageAlertContainerComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "12.2.6", type: PageAlertContainerComponent, selector: "abp-page-alert-container", ngImport: i0, template: "<ng-container *ngFor=\"let alert of service.alerts$ | async; let i = index\">\n <div\n class=\"alert alert-{{ alert.type }} fade show\"\n [ngClass]=\"{ 'alert-dismissible fade show': alert.dismissible }\"\n role=\"alert\"\n >\n <h4 class=\"alert-heading\" *ngIf=\"alert.title\">\n {{ alert.title | abpLocalization: alert.titleLocalizationParams }}\n </h4>\n {{ alert.message | abpLocalization: alert.messageLocalizationParams }}\n <button\n *ngIf=\"alert.dismissible\"\n type=\"button\"\n class=\"close\"\n data-dismiss=\"alert\"\n aria-label=\"Close\"\n (click)=\"service.remove(i)\"\n >\n <span aria-hidden=\"true\">&times;</span>\n </button>\n </div>\n</ng-container>\n", directives: [{ type: i2$1.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { type: i2$1.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { type: i2$1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }], pipes: { "async": i2$1.AsyncPipe, "abpLocalization": i1.LocalizationPipe }, encapsulation: i0.ViewEncapsulation.None });
150
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.6", ngImport: i0, type: PageAlertContainerComponent, decorators: [{
151
+ type: Component,
152
+ args: [{
153
+ selector: 'abp-page-alert-container',
154
+ templateUrl: './page-alert-container.component.html',
155
+ encapsulation: ViewEncapsulation.None,
156
+ }]
157
+ }], ctorParameters: function () { return [{ type: i1$1.PageAlertService }]; } });
158
+
159
+ class TenantBoxComponent {
160
+ constructor(service) {
161
+ this.service = service;
52
162
  }
53
163
  }
54
- // required for dynamic component
55
- AccountLayoutComponent.type = "account" /* account */;
56
- AccountLayoutComponent.decorators = [
57
- { type: Component, args: [{
58
- selector: 'abp-layout-account',
59
- template: "<nav\n class=\"navbar navbar-expand-lg navbar-dark bg-dark shadow-sm flex-column flex-md-row mb-4\"\n id=\"main-navbar\"\n style=\"min-height: 4rem\"\n>\n <div class=\"container\">\n <abp-logo *abpReplaceableTemplate=\"{ componentKey: service.logoComponentKey }\"></abp-logo>\n <button\n class=\"navbar-toggler\"\n type=\"button\"\n [attr.aria-expanded]=\"!service.isCollapsed\"\n (click)=\"service.isCollapsed = !service.isCollapsed\"\n >\n <span class=\"navbar-toggler-icon\"></span>\n </button>\n <div\n class=\"navbar-collapse\"\n [class.overflow-hidden]=\"service.smallScreen\"\n id=\"main-navbar-collapse\"\n >\n <ng-container *ngTemplateOutlet=\"!service.smallScreen ? navigations : null\"></ng-container>\n\n <div\n *ngIf=\"service.smallScreen\"\n [@collapseWithMargin]=\"service.isCollapsed ? 'collapsed' : 'expanded'\"\n >\n <ng-container *ngTemplateOutlet=\"navigations\"></ng-container>\n </div>\n\n <ng-template #navigations>\n <abp-routes\n *abpReplaceableTemplate=\"{\n componentKey: service.routesComponentKey,\n inputs: {\n smallScreen: { value: service.smallScreen }\n }\n }\"\n class=\"mx-auto\"\n [smallScreen]=\"service.smallScreen\"\n ></abp-routes>\n\n <abp-nav-items\n *abpReplaceableTemplate=\"{\n componentKey: service.navItemsComponentKey\n }\"\n ></abp-nav-items>\n </ng-template>\n </div>\n </div>\n</nav>\n\n<!-- [@slideFromBottom]=\"outlet.isActivated && outlet.activatedRoute?.routeConfig?.path\" TODO: throws ExpressionChangedAfterItHasBeenCheck when animation is active. It should be fixed -->\n<div class=\"container\">\n <abp-page-alert-container></abp-page-alert-container>\n <abp-auth-wrapper\n *abpReplaceableTemplate=\"{\n componentKey: authWrapperKey\n }\"\n >\n <router-outlet #outlet=\"outlet\"></router-outlet>\n </abp-auth-wrapper>\n</div>\n",
60
- providers: [LayoutService, SubscriptionService]
61
- },] }
62
- ];
63
- AccountLayoutComponent.ctorParameters = () => [
64
- { type: LayoutService }
65
- ];
164
+ TenantBoxComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "12.2.6", ngImport: i0, type: TenantBoxComponent, deps: [{ token: i1$2.TenantBoxService }], target: i0.ɵɵFactoryTarget.Component });
165
+ TenantBoxComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "12.2.6", type: TenantBoxComponent, selector: "abp-tenant-box", providers: [TenantBoxService], ngImport: i0, template: "<ng-container *ngIf=\"(service.currentTenant$ | async) || {} as currentTenant\">\n <div class=\"card shadow-sm rounded mb-3\">\n <div class=\"card-body px-5\">\n <div class=\"row\">\n <div class=\"col\">\n <span style=\"font-size: 0.8em\" class=\"text-uppercase text-muted\">{{\n 'AbpUiMultiTenancy::Tenant' | abpLocalization\n }}</span\n ><br />\n <h6 class=\"m-0 d-inline-block\">\n <i>{{ currentTenant.name || ('AbpUiMultiTenancy::NotSelected' | abpLocalization) }}</i>\n </h6>\n </div>\n <div class=\"col-auto\">\n <a\n id=\"AbpTenantSwitchLink\"\n href=\"javascript:void(0);\"\n class=\"btn btn-sm mt-3 btn-outline-primary\"\n (click)=\"service.onSwitch()\"\n >{{ 'AbpUiMultiTenancy::Switch' | abpLocalization }}</a\n >\n </div>\n </div>\n </div>\n </div>\n\n <abp-modal [(visible)]=\"service.isModalVisible\" [busy]=\"service.modalBusy\">\n <ng-template #abpHeader>\n <h5>Switch Tenant</h5>\n </ng-template>\n <ng-template #abpBody>\n <form (ngSubmit)=\"service.save()\">\n <div class=\"mt-2\">\n <div class=\"form-group\">\n <label for=\"name\">{{ 'AbpUiMultiTenancy::Name' | abpLocalization }}</label>\n <input\n [(ngModel)]=\"service.name\"\n type=\"text\"\n id=\"name\"\n name=\"tenant\"\n class=\"form-control\"\n autofocus\n />\n </div>\n <p>{{ 'AbpUiMultiTenancy::SwitchTenantHint' | abpLocalization }}</p>\n </div>\n </form>\n </ng-template>\n <ng-template #abpFooter>\n <button abpClose type=\"button\" class=\"btn btn-secondary\">\n {{ 'AbpTenantManagement::Cancel' | abpLocalization }}\n </button>\n <abp-button\n type=\"abp-button\"\n iconClass=\"fa fa-check\"\n (click)=\"service.save()\"\n [disabled]=\"currentTenant?.name === service.name\"\n >\n <span>{{ 'AbpTenantManagement::Save' | abpLocalization }}</span>\n </abp-button>\n </ng-template>\n </abp-modal>\n</ng-container>\n", components: [{ type: i1$1.ModalComponent, selector: "abp-modal", inputs: ["visible", "busy", "options", "suppressUnsavedChangesWarning"], outputs: ["visibleChange", "init", "appear", "disappear"] }, { type: i1$1.ButtonComponent, selector: "abp-button", inputs: ["buttonId", "buttonClass", "buttonType", "iconClass", "loading", "disabled", "attributes"], outputs: ["click", "focus", "blur", "abpClick", "abpFocus", "abpBlur"] }], directives: [{ type: i2$1.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: i1.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: i1$1.ModalCloseDirective, selector: "[abpClose]" }], pipes: { "async": i2$1.AsyncPipe, "abpLocalization": i1.LocalizationPipe } });
166
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.6", ngImport: i0, type: TenantBoxComponent, decorators: [{
167
+ type: Component,
168
+ args: [{
169
+ selector: 'abp-tenant-box',
170
+ templateUrl: './tenant-box.component.html',
171
+ providers: [TenantBoxService],
172
+ }]
173
+ }], ctorParameters: function () { return [{ type: i1$2.TenantBoxService }]; } });
66
174
 
67
175
  class AuthWrapperComponent {
68
176
  constructor(service) {
69
177
  this.service = service;
70
178
  }
71
- ngOnInit() { }
72
179
  }
73
- AuthWrapperComponent.decorators = [
74
- { type: Component, args: [{
75
- selector: 'abp-auth-wrapper',
76
- template: "<div class=\"row\">\n <div class=\"mx-auto col col-md-5\">\n <ng-container *ngIf=\"(service.isMultiTenancyEnabled$ | async) && service.isTenantBoxVisible\">\n <abp-tenant-box\n *abpReplaceableTemplate=\"{ componentKey: service.tenantBoxKey }\"\n ></abp-tenant-box>\n </ng-container>\n\n <div class=\"abp-account-container\">\n <div\n *ngIf=\"service.enableLocalLogin$ | async; else disableLocalLoginTemplate\"\n class=\"card mt-3 shadow-sm rounded\"\n >\n <div class=\"card-body p-5\">\n <ng-content></ng-content>\n </div>\n </div>\n </div>\n </div>\n</div>\n\n<ng-template #disableLocalLoginTemplate>\n <div class=\"alert alert-warning\">\n <strong>{{ 'AbpAccount::InvalidLoginRequest' | abpLocalization }}</strong>\n {{ 'AbpAccount::ThereAreNoLoginSchemesConfiguredForThisClient' | abpLocalization }}\n </div>\n</ng-template>\n",
77
- providers: [AuthWrapperService]
78
- },] }
79
- ];
80
- AuthWrapperComponent.ctorParameters = () => [
81
- { type: AuthWrapperService }
82
- ];
180
+ AuthWrapperComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "12.2.6", ngImport: i0, type: AuthWrapperComponent, deps: [{ token: i1$2.AuthWrapperService }], target: i0.ɵɵFactoryTarget.Component });
181
+ AuthWrapperComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "12.2.6", type: AuthWrapperComponent, selector: "abp-auth-wrapper", providers: [AuthWrapperService], ngImport: i0, template: "<div class=\"row\">\n <div class=\"mx-auto col col-md-5\">\n <ng-container *ngIf=\"(service.isMultiTenancyEnabled$ | async) && service.isTenantBoxVisible\">\n <abp-tenant-box\n *abpReplaceableTemplate=\"{ componentKey: service.tenantBoxKey }\"\n ></abp-tenant-box>\n </ng-container>\n\n <div class=\"abp-account-container\">\n <div\n *ngIf=\"service.enableLocalLogin$ | async; else disableLocalLoginTemplate\"\n class=\"card mt-3 shadow-sm rounded\"\n >\n <div class=\"card-body p-5\">\n <ng-content></ng-content>\n </div>\n </div>\n </div>\n </div>\n</div>\n\n<ng-template #disableLocalLoginTemplate>\n <div class=\"alert alert-warning\">\n <strong>{{ 'AbpAccount::InvalidLoginRequest' | abpLocalization }}</strong>\n {{ 'AbpAccount::ThereAreNoLoginSchemesConfiguredForThisClient' | abpLocalization }}\n </div>\n</ng-template>\n", components: [{ type: TenantBoxComponent, selector: "abp-tenant-box" }], directives: [{ type: i2$1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { type: i1.ReplaceableTemplateDirective, selector: "[abpReplaceableTemplate]", inputs: ["abpReplaceableTemplate"] }], pipes: { "async": i2$1.AsyncPipe, "abpLocalization": i1.LocalizationPipe } });
182
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.6", ngImport: i0, type: AuthWrapperComponent, decorators: [{
183
+ type: Component,
184
+ args: [{
185
+ selector: 'abp-auth-wrapper',
186
+ templateUrl: './auth-wrapper.component.html',
187
+ providers: [AuthWrapperService],
188
+ }]
189
+ }], ctorParameters: function () { return [{ type: i1$2.AuthWrapperService }]; } });
83
190
 
84
- class TenantBoxComponent {
191
+ class AccountLayoutComponent {
85
192
  constructor(service) {
86
193
  this.service = service;
194
+ this.authWrapperKey = 'Account.AuthWrapperComponent';
195
+ }
196
+ ngAfterViewInit() {
197
+ this.service.subscribeWindowSize();
87
198
  }
88
- ngOnInit() { }
89
199
  }
90
- TenantBoxComponent.decorators = [
91
- { type: Component, args: [{
92
- selector: 'abp-tenant-box',
93
- template: "<ng-container *ngIf=\"(service.currentTenant$ | async) || {} as currentTenant\">\n <div class=\"card shadow-sm rounded mb-3\">\n <div class=\"card-body px-5\">\n <div class=\"row\">\n <div class=\"col\">\n <span style=\"font-size: 0.8em\" class=\"text-uppercase text-muted\">{{\n 'AbpUiMultiTenancy::Tenant' | abpLocalization\n }}</span\n ><br />\n <h6 class=\"m-0 d-inline-block\">\n <i>{{ currentTenant.name || ('AbpUiMultiTenancy::NotSelected' | abpLocalization) }}</i>\n </h6>\n </div>\n <div class=\"col-auto\">\n <a\n id=\"AbpTenantSwitchLink\"\n href=\"javascript:void(0);\"\n class=\"btn btn-sm mt-3 btn-outline-primary\"\n (click)=\"service.onSwitch()\"\n >{{ 'AbpUiMultiTenancy::Switch' | abpLocalization }}</a\n >\n </div>\n </div>\n </div>\n </div>\n\n <abp-modal size=\"md\" [(visible)]=\"service.isModalVisible\" [busy]=\"service.modalBusy\">\n <ng-template #abpHeader>\n <h5>Switch Tenant</h5>\n </ng-template>\n <ng-template #abpBody>\n <form (ngSubmit)=\"service.save()\">\n <div class=\"mt-2\">\n <div class=\"form-group\">\n <label for=\"name\">{{ 'AbpUiMultiTenancy::Name' | abpLocalization }}</label>\n <input\n [(ngModel)]=\"service.name\"\n type=\"text\"\n id=\"name\"\n name=\"tenant\"\n class=\"form-control\"\n autofocus\n />\n </div>\n <p>{{ 'AbpUiMultiTenancy::SwitchTenantHint' | abpLocalization }}</p>\n </div>\n </form>\n </ng-template>\n <ng-template #abpFooter>\n <button abpClose type=\"button\" class=\"btn btn-secondary\">\n {{ 'AbpTenantManagement::Cancel' | abpLocalization }}\n </button>\n <abp-button\n type=\"abp-button\"\n iconClass=\"fa fa-check\"\n (click)=\"service.save()\"\n [disabled]=\"currentTenant?.name === service.name\"\n >\n <span>{{ 'AbpTenantManagement::Save' | abpLocalization }}</span>\n </abp-button>\n </ng-template>\n </abp-modal>\n</ng-container>\n",
94
- providers: [TenantBoxService]
95
- },] }
96
- ];
97
- TenantBoxComponent.ctorParameters = () => [
98
- { type: TenantBoxService }
99
- ];
200
+ // required for dynamic component
201
+ AccountLayoutComponent.type = "account" /* account */;
202
+ AccountLayoutComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "12.2.6", ngImport: i0, type: AccountLayoutComponent, deps: [{ token: LayoutService }], target: i0.ɵɵFactoryTarget.Component });
203
+ AccountLayoutComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "12.2.6", type: AccountLayoutComponent, selector: "abp-layout-account", providers: [LayoutService, SubscriptionService], ngImport: i0, template: "<nav\n class=\"navbar navbar-expand-lg navbar-dark bg-dark shadow-sm flex-column flex-md-row mb-4\"\n id=\"main-navbar\"\n style=\"min-height: 4rem\"\n>\n <div class=\"container\">\n <abp-logo *abpReplaceableTemplate=\"{ componentKey: service.logoComponentKey }\"></abp-logo>\n <button\n class=\"navbar-toggler\"\n type=\"button\"\n [attr.aria-expanded]=\"!service.isCollapsed\"\n (click)=\"service.isCollapsed = !service.isCollapsed\"\n >\n <span class=\"navbar-toggler-icon\"></span>\n </button>\n <div\n class=\"navbar-collapse\"\n [class.overflow-hidden]=\"service.smallScreen\"\n id=\"main-navbar-collapse\"\n >\n <ng-container *ngTemplateOutlet=\"!service.smallScreen ? navigations : null\"></ng-container>\n\n <div\n *ngIf=\"service.smallScreen\"\n [@collapseWithMargin]=\"service.isCollapsed ? 'collapsed' : 'expanded'\"\n >\n <ng-container *ngTemplateOutlet=\"navigations\"></ng-container>\n </div>\n\n <ng-template #navigations>\n <abp-routes\n *abpReplaceableTemplate=\"{\n componentKey: service.routesComponentKey,\n inputs: {\n smallScreen: { value: service.smallScreen }\n }\n }\"\n class=\"mx-auto\"\n [smallScreen]=\"service.smallScreen\"\n ></abp-routes>\n\n <abp-nav-items\n *abpReplaceableTemplate=\"{\n componentKey: service.navItemsComponentKey\n }\"\n ></abp-nav-items>\n </ng-template>\n </div>\n </div>\n</nav>\n\n<!-- [@slideFromBottom]=\"outlet.isActivated && outlet.activatedRoute?.routeConfig?.path\" TODO: throws ExpressionChangedAfterItHasBeenCheck when animation is active. It should be fixed -->\n<div class=\"container\">\n <abp-page-alert-container></abp-page-alert-container>\n <abp-auth-wrapper\n *abpReplaceableTemplate=\"{\n componentKey: authWrapperKey\n }\"\n >\n <router-outlet #outlet=\"outlet\"></router-outlet>\n </abp-auth-wrapper>\n</div>\n", components: [{ type: LogoComponent, selector: "abp-logo" }, { type: RoutesComponent, selector: "abp-routes", inputs: ["smallScreen"] }, { type: NavItemsComponent, selector: "abp-nav-items" }, { type: PageAlertContainerComponent, selector: "abp-page-alert-container" }, { type: AuthWrapperComponent, selector: "abp-auth-wrapper" }], directives: [{ type: i3.NgbNavbar, selector: ".navbar" }, { type: i1.ReplaceableTemplateDirective, selector: "[abpReplaceableTemplate]", inputs: ["abpReplaceableTemplate"] }, { type: i2$1.NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet"] }, { type: i2$1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { type: i2.RouterOutlet, selector: "router-outlet", outputs: ["activate", "deactivate"], exportAs: ["outlet"] }] });
204
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.6", ngImport: i0, type: AccountLayoutComponent, decorators: [{
205
+ type: Component,
206
+ args: [{
207
+ selector: 'abp-layout-account',
208
+ templateUrl: './account-layout.component.html',
209
+ providers: [LayoutService, SubscriptionService],
210
+ }]
211
+ }], ctorParameters: function () { return [{ type: LayoutService }]; } });
100
212
 
101
213
  class ApplicationLayoutComponent {
102
214
  constructor(service) {
@@ -108,62 +220,36 @@ class ApplicationLayoutComponent {
108
220
  }
109
221
  // required for dynamic component
110
222
  ApplicationLayoutComponent.type = "application" /* application */;
111
- ApplicationLayoutComponent.decorators = [
112
- { type: Component, args: [{
113
- selector: 'abp-layout-application',
114
- template: "<nav\n class=\"navbar navbar-expand-lg navbar-dark bg-dark shadow-sm flex-column flex-md-row mb-4\"\n id=\"main-navbar\"\n style=\"min-height: 4rem\"\n>\n <div class=\"container\">\n <abp-logo *abpReplaceableTemplate=\"{ componentKey: service.logoComponentKey }\"></abp-logo>\n <button\n class=\"navbar-toggler\"\n type=\"button\"\n [attr.aria-expanded]=\"!service.isCollapsed\"\n (click)=\"service.isCollapsed = !service.isCollapsed\"\n >\n <span class=\"navbar-toggler-icon\"></span>\n </button>\n <div class=\"navbar-collapse\" [class.overflow-hidden]=\"service.smallScreen\" id=\"main-navbar-collapse\">\n <ng-container *ngTemplateOutlet=\"!service.smallScreen ? navigations : null\"></ng-container>\n\n <div *ngIf=\"service.smallScreen\" [@collapseWithMargin]=\"service.isCollapsed ? 'collapsed' : 'expanded'\">\n <ng-container *ngTemplateOutlet=\"navigations\"></ng-container>\n </div>\n\n <ng-template #navigations>\n <abp-routes\n *abpReplaceableTemplate=\"{\n componentKey: service.routesComponentKey,\n inputs: {\n smallScreen: { value: service.smallScreen }\n }\n }\"\n class=\"mx-auto\"\n [smallScreen]=\"service.smallScreen\"\n ></abp-routes>\n\n <abp-nav-items\n *abpReplaceableTemplate=\"{\n componentKey: service.navItemsComponentKey\n }\"\n ></abp-nav-items>\n </ng-template>\n </div>\n </div>\n</nav>\n\n<!-- [@slideFromBottom]=\"outlet.isActivated && outlet.activatedRoute?.routeConfig?.path\" TODO: throws ExpressionChangedAfterItHasBeenCheck when animation is active. It should be fixed -->\n<div class=\"container\">\n <abp-page-alert-container></abp-page-alert-container>\n\n <router-outlet #outlet=\"outlet\"></router-outlet>\n</div>\n",
115
- animations: [slideFromBottom, collapseWithMargin],
116
- providers: [LayoutService, SubscriptionService]
117
- },] }
118
- ];
119
- ApplicationLayoutComponent.ctorParameters = () => [
120
- { type: LayoutService }
121
- ];
223
+ ApplicationLayoutComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "12.2.6", ngImport: i0, type: ApplicationLayoutComponent, deps: [{ token: LayoutService }], target: i0.ɵɵFactoryTarget.Component });
224
+ ApplicationLayoutComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "12.2.6", type: ApplicationLayoutComponent, selector: "abp-layout-application", providers: [LayoutService, SubscriptionService], ngImport: i0, template: "<nav\n class=\"navbar navbar-expand-lg navbar-dark bg-dark shadow-sm flex-column flex-md-row mb-4\"\n id=\"main-navbar\"\n style=\"min-height: 4rem\"\n>\n <div class=\"container\">\n <abp-logo *abpReplaceableTemplate=\"{ componentKey: service.logoComponentKey }\"></abp-logo>\n <button\n class=\"navbar-toggler\"\n type=\"button\"\n [attr.aria-expanded]=\"!service.isCollapsed\"\n (click)=\"service.isCollapsed = !service.isCollapsed\"\n >\n <span class=\"navbar-toggler-icon\"></span>\n </button>\n <div class=\"navbar-collapse\" [class.overflow-hidden]=\"service.smallScreen\" id=\"main-navbar-collapse\">\n <ng-container *ngTemplateOutlet=\"!service.smallScreen ? navigations : null\"></ng-container>\n\n <div *ngIf=\"service.smallScreen\" [@collapseWithMargin]=\"service.isCollapsed ? 'collapsed' : 'expanded'\">\n <ng-container *ngTemplateOutlet=\"navigations\"></ng-container>\n </div>\n\n <ng-template #navigations>\n <abp-routes\n *abpReplaceableTemplate=\"{\n componentKey: service.routesComponentKey,\n inputs: {\n smallScreen: { value: service.smallScreen }\n }\n }\"\n class=\"mx-auto\"\n [smallScreen]=\"service.smallScreen\"\n ></abp-routes>\n\n <abp-nav-items\n *abpReplaceableTemplate=\"{\n componentKey: service.navItemsComponentKey\n }\"\n ></abp-nav-items>\n </ng-template>\n </div>\n </div>\n</nav>\n\n<!-- [@slideFromBottom]=\"outlet.isActivated && outlet.activatedRoute?.routeConfig?.path\" TODO: throws ExpressionChangedAfterItHasBeenCheck when animation is active. It should be fixed -->\n<div class=\"container\">\n <abp-page-alert-container></abp-page-alert-container>\n\n <router-outlet #outlet=\"outlet\"></router-outlet>\n</div>\n", components: [{ type: LogoComponent, selector: "abp-logo" }, { type: RoutesComponent, selector: "abp-routes", inputs: ["smallScreen"] }, { type: NavItemsComponent, selector: "abp-nav-items" }, { type: PageAlertContainerComponent, selector: "abp-page-alert-container" }], directives: [{ type: i3.NgbNavbar, selector: ".navbar" }, { type: i1.ReplaceableTemplateDirective, selector: "[abpReplaceableTemplate]", inputs: ["abpReplaceableTemplate"] }, { type: i2$1.NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet"] }, { type: i2$1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { type: i2.RouterOutlet, selector: "router-outlet", outputs: ["activate", "deactivate"], exportAs: ["outlet"] }], animations: [slideFromBottom, collapseWithMargin] });
225
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.6", ngImport: i0, type: ApplicationLayoutComponent, decorators: [{
226
+ type: Component,
227
+ args: [{
228
+ selector: 'abp-layout-application',
229
+ templateUrl: './application-layout.component.html',
230
+ animations: [slideFromBottom, collapseWithMargin],
231
+ providers: [LayoutService, SubscriptionService],
232
+ }]
233
+ }], ctorParameters: function () { return [{ type: LayoutService }]; } });
122
234
 
123
235
  class EmptyLayoutComponent {
124
236
  }
125
237
  EmptyLayoutComponent.type = "empty" /* empty */;
126
- EmptyLayoutComponent.decorators = [
127
- { type: Component, args: [{
128
- selector: 'abp-layout-empty',
129
- template: `
238
+ EmptyLayoutComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "12.2.6", ngImport: i0, type: EmptyLayoutComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
239
+ EmptyLayoutComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "12.2.6", type: EmptyLayoutComponent, selector: "abp-layout-empty", ngImport: i0, template: `
130
240
  <router-outlet></router-outlet>
131
241
  <abp-confirmation></abp-confirmation>
132
- `
133
- },] }
134
- ];
135
-
136
- class LogoComponent {
137
- constructor(environment) {
138
- this.environment = environment;
139
- }
140
- get appInfo() {
141
- return this.environment.getEnvironment().application;
142
- }
143
- }
144
- LogoComponent.decorators = [
145
- { type: Component, args: [{
146
- selector: 'abp-logo',
147
- template: `
148
- <a class="navbar-brand" routerLink="/">
149
- <img
150
- *ngIf="appInfo.logoUrl; else appName"
151
- [src]="appInfo.logoUrl"
152
- [alt]="appInfo.name"
153
- width="100%"
154
- height="auto"
155
- />
156
- </a>
157
-
158
- <ng-template #appName>
159
- {{ appInfo.name }}
160
- </ng-template>
161
- `
162
- },] }
163
- ];
164
- LogoComponent.ctorParameters = () => [
165
- { type: EnvironmentService }
166
- ];
242
+ `, isInline: true, components: [{ type: i1$1.ConfirmationComponent, selector: "abp-confirmation" }], directives: [{ type: i2.RouterOutlet, selector: "router-outlet", outputs: ["activate", "deactivate"], exportAs: ["outlet"] }] });
243
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.6", ngImport: i0, type: EmptyLayoutComponent, decorators: [{
244
+ type: Component,
245
+ args: [{
246
+ selector: 'abp-layout-empty',
247
+ template: `
248
+ <router-outlet></router-outlet>
249
+ <abp-confirmation></abp-confirmation>
250
+ `,
251
+ }]
252
+ }] });
167
253
 
168
254
  class CurrentUserComponent {
169
255
  constructor(navigateToManageProfile, authService, configState, sessionState) {
@@ -184,18 +270,18 @@ class CurrentUserComponent {
184
270
  this.authService.logout().subscribe();
185
271
  }
186
272
  }
187
- CurrentUserComponent.decorators = [
188
- { type: Component, args: [{
189
- selector: 'abp-current-user',
190
- template: "<ng-template #loginBtn>\n <a role=\"button\" class=\"nav-link pointer\" (click)=\"navigateToLogin()\">{{\n 'AbpAccount::Login' | abpLocalization\n }}</a>\n</ng-template>\n<div\n *ngIf=\"(currentUser$ | async)?.isAuthenticated; else loginBtn\"\n ngbDropdown\n class=\"dropdown\"\n #currentUserDropdown=\"ngbDropdown\"\n display=\"static\"\n>\n <a\n ngbDropdownToggle\n class=\"nav-link\"\n href=\"javascript:void(0)\"\n role=\"button\"\n id=\"dropdownMenuLink\"\n data-toggle=\"dropdown\"\n aria-haspopup=\"true\"\n aria-expanded=\"false\"\n >\n <small *ngIf=\"(selectedTenant$ | async)?.name as tenantName\"\n ><i>{{ tenantName }}</i\n >\\</small\n >\n <strong>{{ (currentUser$ | async)?.userName }}</strong>\n </a>\n <div\n class=\"dropdown-menu dropdown-menu-right border-0 shadow-sm\"\n aria-labelledby=\"dropdownMenuLink\"\n [class.d-block]=\"smallScreen && currentUserDropdown.isOpen()\"\n >\n <a class=\"dropdown-item pointer\" (click)=\"navigateToManageProfile()\"\n ><i class=\"fa fa-cog mr-1\"></i>{{ 'AbpAccount::MyAccount' | abpLocalization }}</a\n >\n <a class=\"dropdown-item\" href=\"javascript:void(0)\" (click)=\"logout()\"\n ><i class=\"fa fa-power-off mr-1\"></i>{{ 'AbpUi::Logout' | abpLocalization }}</a\n >\n </div>\n</div>\n"
191
- },] }
192
- ];
193
- CurrentUserComponent.ctorParameters = () => [
194
- { type: undefined, decorators: [{ type: Inject, args: [NAVIGATE_TO_MANAGE_PROFILE,] }] },
195
- { type: AuthService },
196
- { type: ConfigStateService },
197
- { type: SessionStateService }
198
- ];
273
+ CurrentUserComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "12.2.6", ngImport: i0, type: CurrentUserComponent, deps: [{ token: NAVIGATE_TO_MANAGE_PROFILE }, { token: i1.AuthService }, { token: i1.ConfigStateService }, { token: i1.SessionStateService }], target: i0.ɵɵFactoryTarget.Component });
274
+ CurrentUserComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "12.2.6", type: CurrentUserComponent, selector: "abp-current-user", ngImport: i0, template: "<ng-template #loginBtn>\n <a role=\"button\" class=\"nav-link pointer\" (click)=\"navigateToLogin()\">{{\n 'AbpAccount::Login' | abpLocalization\n }}</a>\n</ng-template>\n<div\n *ngIf=\"(currentUser$ | async)?.isAuthenticated; else loginBtn\"\n ngbDropdown\n class=\"dropdown\"\n #currentUserDropdown=\"ngbDropdown\"\n display=\"static\"\n>\n <a\n ngbDropdownToggle\n class=\"nav-link\"\n href=\"javascript:void(0)\"\n role=\"button\"\n id=\"dropdownMenuLink\"\n data-toggle=\"dropdown\"\n aria-haspopup=\"true\"\n aria-expanded=\"false\"\n >\n <small *ngIf=\"(selectedTenant$ | async)?.name as tenantName\"\n ><i>{{ tenantName }}</i\n >\\</small\n >\n <strong>{{ (currentUser$ | async)?.userName }}</strong>\n </a>\n <div\n class=\"dropdown-menu dropdown-menu-right border-0 shadow-sm\"\n aria-labelledby=\"dropdownMenuLink\"\n [class.d-block]=\"smallScreen && currentUserDropdown.isOpen()\"\n >\n <a class=\"dropdown-item pointer\" (click)=\"navigateToManageProfile()\"\n ><i class=\"fa fa-cog mr-1\"></i>{{ 'AbpAccount::MyAccount' | abpLocalization }}</a\n >\n <a class=\"dropdown-item\" href=\"javascript:void(0)\" (click)=\"logout()\"\n ><i class=\"fa fa-power-off mr-1\"></i>{{ 'AbpUi::Logout' | abpLocalization }}</a\n >\n </div>\n</div>\n", directives: [{ type: i2$1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { type: i3.NgbDropdown, selector: "[ngbDropdown]", inputs: ["open", "placement", "container", "autoClose", "display"], outputs: ["openChange"], exportAs: ["ngbDropdown"] }, { type: i3.NgbDropdownToggle, selector: "[ngbDropdownToggle]" }], pipes: { "abpLocalization": i1.LocalizationPipe, "async": i2$1.AsyncPipe } });
275
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.6", ngImport: i0, type: CurrentUserComponent, decorators: [{
276
+ type: Component,
277
+ args: [{
278
+ selector: 'abp-current-user',
279
+ templateUrl: './current-user.component.html',
280
+ }]
281
+ }], ctorParameters: function () { return [{ type: undefined, decorators: [{
282
+ type: Inject,
283
+ args: [NAVIGATE_TO_MANAGE_PROFILE]
284
+ }] }, { type: i1.AuthService }, { type: i1.ConfigStateService }, { type: i1.SessionStateService }]; } });
199
285
 
200
286
  class LanguagesComponent {
201
287
  constructor(sessionState, configState) {
@@ -207,10 +293,10 @@ class LanguagesComponent {
207
293
  return window.innerWidth < 992;
208
294
  }
209
295
  get defaultLanguage$() {
210
- return this.languages$.pipe(map(languages => snq(() => languages.find(lang => lang.cultureName === this.selectedLangCulture).displayName), ''));
296
+ return this.languages$.pipe(map(languages => (languages === null || languages === void 0 ? void 0 : languages.find(lang => lang.cultureName === this.selectedLangCulture).displayName) || ''));
211
297
  }
212
298
  get dropdownLanguages$() {
213
- return this.languages$.pipe(map(languages => snq(() => languages.filter(lang => lang.cultureName !== this.selectedLangCulture)), []));
299
+ return this.languages$.pipe(map(languages => (languages === null || languages === void 0 ? void 0 : languages.filter(lang => lang.cultureName !== this.selectedLangCulture)) || []));
214
300
  }
215
301
  get selectedLangCulture() {
216
302
  return this.sessionState.getLanguage();
@@ -219,11 +305,8 @@ class LanguagesComponent {
219
305
  this.sessionState.setLanguage(cultureName);
220
306
  }
221
307
  }
222
- LanguagesComponent.decorators = [
223
- { type: Component, args: [{
224
- selector: 'abp-languages',
225
- // tslint:disable-next-line: component-max-inline-declarations
226
- template: `
308
+ LanguagesComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "12.2.6", ngImport: i0, type: LanguagesComponent, deps: [{ token: i1.SessionStateService }, { token: i1.ConfigStateService }], target: i0.ɵɵFactoryTarget.Component });
309
+ LanguagesComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "12.2.6", type: LanguagesComponent, selector: "abp-languages", ngImport: i0, template: `
227
310
  <div
228
311
  *ngIf="(dropdownLanguages$ | async)?.length > 0"
229
312
  class="dropdown"
@@ -257,60 +340,48 @@ LanguagesComponent.decorators = [
257
340
  >
258
341
  </div>
259
342
  </div>
260
- `
261
- },] }
262
- ];
263
- LanguagesComponent.ctorParameters = () => [
264
- { type: SessionStateService },
265
- { type: ConfigStateService }
266
- ];
267
-
268
- class NavItemsComponent {
269
- constructor(navItems) {
270
- this.navItems = navItems;
271
- this.trackByFn = (_, element) => element.id;
272
- }
273
- }
274
- NavItemsComponent.decorators = [
275
- { type: Component, args: [{
276
- selector: 'abp-nav-items',
277
- template: "<ul class=\"navbar-nav\">\n <ng-container *ngFor=\"let item of navItems.items$ | async; trackBy: trackByFn\">\n <ng-container *ngIf=\"item.visible()\">\n <li class=\"nav-item d-flex align-items-center\" *abpPermission=\"item.requiredPolicy\">\n <ng-container\n *ngIf=\"item.component; else htmlTemplate\"\n [ngComponentOutlet]=\"item.component\"\n ></ng-container>\n\n <ng-template #htmlTemplate>\n <div [innerHTML]=\"item.html\" (click)=\"item.action ? item.action() : null\"></div>\n </ng-template>\n </li>\n </ng-container>\n </ng-container>\n</ul>\n"
278
- },] }
279
- ];
280
- NavItemsComponent.ctorParameters = () => [
281
- { type: NavItemsService }
282
- ];
283
-
284
- class RoutesComponent {
285
- constructor(routesService, renderer) {
286
- this.routesService = routesService;
287
- this.renderer = renderer;
288
- this.trackByFn = (_, item) => item.name;
289
- }
290
- isDropdown(node) {
291
- return !(node === null || node === void 0 ? void 0 : node.isLeaf) || this.routesService.hasChildren(node.name);
292
- }
293
- closeDropdown() {
294
- this.childrenContainers.forEach(({ nativeElement }) => {
295
- this.renderer.addClass(nativeElement, 'd-none');
296
- setTimeout(() => this.renderer.removeClass(nativeElement, 'd-none'), 0);
297
- });
298
- }
299
- }
300
- RoutesComponent.decorators = [
301
- { type: Component, args: [{
302
- selector: 'abp-routes',
303
- template: "<ul class=\"navbar-nav\">\n <ng-container\n *ngFor=\"let route of routesService.visible$ | async; trackBy: trackByFn\"\n [ngTemplateOutlet]=\"isDropdown(route) ? dropdownLink : defaultLink\"\n [ngTemplateOutletContext]=\"{ $implicit: route }\"\n >\n </ng-container>\n\n <ng-template #defaultLink let-route>\n <li class=\"nav-item\" *abpPermission=\"route.requiredPolicy\">\n <a class=\"nav-link\" [routerLink]=\"[route.path]\"\n ><i *ngIf=\"route.iconClass\" [ngClass]=\"route.iconClass\"></i>\n {{ route.name | abpLocalization }}</a\n >\n </li>\n </ng-template>\n\n <ng-template #dropdownLink let-route>\n <ng-container *ngIf=\"route.children?.length\">\n <li\n #navbarRootDropdown\n class=\"nav-item dropdown\"\n display=\"static\"\n *abpPermission=\"route.requiredPolicy\"\n (click)=\"\n navbarRootDropdown.expand\n ? (navbarRootDropdown.expand = false)\n : (navbarRootDropdown.expand = true)\n \"\n >\n <a\n class=\"nav-link dropdown-toggle\"\n data-toggle=\"dropdown\"\n aria-haspopup=\"true\"\n aria-expanded=\"false\"\n href=\"javascript:void(0)\"\n >\n <i *ngIf=\"route.iconClass\" [ngClass]=\"route.iconClass\"></i>\n {{ route.name | abpLocalization }}\n </a>\n <div\n #routeContainer\n class=\"dropdown-menu border-0 shadow-sm\"\n (click)=\"$event.preventDefault(); $event.stopPropagation()\"\n [class.d-block]=\"smallScreen && navbarRootDropdown.expand\"\n >\n <ng-container\n *ngTemplateOutlet=\"forTemplate; context: { $implicit: route }\"\n ></ng-container>\n </div>\n </li>\n </ng-container>\n </ng-template>\n\n <ng-template #forTemplate let-route>\n <ng-container *ngFor=\"let child of route.children\">\n <ng-template\n [ngTemplateOutlet]=\"child.children?.length ? dropdownChild : defaultChild\"\n [ngTemplateOutletContext]=\"{ $implicit: child }\"\n ></ng-template>\n </ng-container>\n </ng-template>\n\n <ng-template #defaultChild let-child>\n <ng-container *ngIf=\"child.path\">\n <div class=\"dropdown-submenu\" *abpPermission=\"child.requiredPolicy\">\n <a class=\"dropdown-item\" [routerLink]=\"[child.path]\" (click)=\"closeDropdown()\">\n <i *ngIf=\"child.iconClass\" [ngClass]=\"child.iconClass\"></i>\n {{ child.name | abpLocalization }}</a\n >\n </div>\n </ng-container>\n </ng-template>\n\n <ng-template #dropdownChild let-child>\n <div\n class=\"dropdown-submenu\"\n ngbDropdown\n #dropdownSubmenu=\"ngbDropdown\"\n placement=\"right-top\"\n [autoClose]=\"true\"\n *abpPermission=\"child.requiredPolicy\"\n >\n <div ngbDropdownToggle [class.dropdown-toggle]=\"false\">\n <a\n abpEllipsis=\"210px\"\n [abpEllipsisEnabled]=\"!smallScreen\"\n role=\"button\"\n class=\"btn d-block text-left dropdown-toggle\"\n >\n <i *ngIf=\"child.iconClass\" [ngClass]=\"child.iconClass\"></i>\n {{ child.name | abpLocalization }}\n </a>\n </div>\n <div\n #childrenContainer\n class=\"dropdown-menu border-0 shadow-sm\"\n [class.d-block]=\"smallScreen && dropdownSubmenu.isOpen()\"\n >\n <ng-container *ngTemplateOutlet=\"forTemplate; context: { $implicit: child }\"></ng-container>\n </div>\n </div>\n </ng-template>\n</ul>\n"
304
- },] }
305
- ];
306
- RoutesComponent.ctorParameters = () => [
307
- { type: RoutesService },
308
- { type: Renderer2 }
309
- ];
310
- RoutesComponent.propDecorators = {
311
- smallScreen: [{ type: Input }],
312
- childrenContainers: [{ type: ViewChildren, args: ['childrenContainer',] }]
313
- };
343
+ `, isInline: true, directives: [{ type: i2$1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { type: i3.NgbDropdown, selector: "[ngbDropdown]", inputs: ["open", "placement", "container", "autoClose", "display"], outputs: ["openChange"], exportAs: ["ngbDropdown"] }, { type: i3.NgbDropdownToggle, selector: "[ngbDropdownToggle]" }, { type: i2$1.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }], pipes: { "async": i2$1.AsyncPipe } });
344
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.6", ngImport: i0, type: LanguagesComponent, decorators: [{
345
+ type: Component,
346
+ args: [{
347
+ selector: 'abp-languages',
348
+ template: `
349
+ <div
350
+ *ngIf="(dropdownLanguages$ | async)?.length > 0"
351
+ class="dropdown"
352
+ ngbDropdown
353
+ #languageDropdown="ngbDropdown"
354
+ display="static"
355
+ >
356
+ <a
357
+ ngbDropdownToggle
358
+ class="nav-link"
359
+ href="javascript:void(0)"
360
+ role="button"
361
+ id="dropdownMenuLink"
362
+ data-toggle="dropdown"
363
+ aria-haspopup="true"
364
+ aria-expanded="false"
365
+ >
366
+ {{ defaultLanguage$ | async }}
367
+ </a>
368
+ <div
369
+ class="dropdown-menu dropdown-menu-right border-0 shadow-sm"
370
+ aria-labelledby="dropdownMenuLink"
371
+ [class.d-block]="smallScreen && languageDropdown.isOpen()"
372
+ >
373
+ <a
374
+ *ngFor="let lang of dropdownLanguages$ | async"
375
+ href="javascript:void(0)"
376
+ class="dropdown-item"
377
+ (click)="onChangeLang(lang.cultureName)"
378
+ >{{ lang?.displayName }}</a
379
+ >
380
+ </div>
381
+ </div>
382
+ `,
383
+ }]
384
+ }], ctorParameters: function () { return [{ type: i1.SessionStateService }, { type: i1.ConfigStateService }]; } });
314
385
 
315
386
  class ValidationErrorComponent extends ValidationErrorComponent$1 {
316
387
  get abpErrors() {
@@ -327,34 +398,25 @@ class ValidationErrorComponent extends ValidationErrorComponent$1 {
327
398
  });
328
399
  }
329
400
  }
330
- ValidationErrorComponent.decorators = [
331
- { type: Component, args: [{
332
- selector: 'abp-validation-error',
333
- template: `
401
+ ValidationErrorComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "12.2.6", ngImport: i0, type: ValidationErrorComponent, deps: null, target: i0.ɵɵFactoryTarget.Component });
402
+ ValidationErrorComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "12.2.6", type: ValidationErrorComponent, selector: "abp-validation-error", usesInheritance: true, ngImport: i0, template: `
403
+ <div class="invalid-feedback" *ngFor="let error of abpErrors; trackBy: trackByFn">
404
+ {{ error.message | abpLocalization: error.interpoliteParams }}
405
+ </div>
406
+ `, isInline: true, directives: [{ type: i2$1.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }], pipes: { "abpLocalization": i1.LocalizationPipe }, changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None });
407
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.6", ngImport: i0, type: ValidationErrorComponent, decorators: [{
408
+ type: Component,
409
+ args: [{
410
+ selector: 'abp-validation-error',
411
+ template: `
334
412
  <div class="invalid-feedback" *ngFor="let error of abpErrors; trackBy: trackByFn">
335
413
  {{ error.message | abpLocalization: error.interpoliteParams }}
336
414
  </div>
337
415
  `,
338
- changeDetection: ChangeDetectionStrategy.OnPush,
339
- encapsulation: ViewEncapsulation.None
340
- },] }
341
- ];
342
-
343
- class PageAlertContainerComponent {
344
- constructor(service) {
345
- this.service = service;
346
- }
347
- }
348
- PageAlertContainerComponent.decorators = [
349
- { type: Component, args: [{
350
- selector: 'abp-page-alert-container',
351
- template: "<ng-container *ngFor=\"let alert of service.alerts$ | async; let i = index\">\n <div\n class=\"alert alert-{{ alert.type }} fade show\"\n [ngClass]=\"{ 'alert-dismissible fade show': alert.dismissible }\"\n role=\"alert\"\n >\n <h4 class=\"alert-heading\" *ngIf=\"alert.title\">\n {{ alert.title | abpLocalization: alert.titleLocalizationParams }}\n </h4>\n {{ alert.message | abpLocalization: alert.messageLocalizationParams }}\n <button\n *ngIf=\"alert.dismissible\"\n type=\"button\"\n class=\"close\"\n data-dismiss=\"alert\"\n aria-label=\"Close\"\n (click)=\"service.remove(i)\"\n >\n <span aria-hidden=\"true\">&times;</span>\n </button>\n </div>\n</ng-container>\n",
352
- encapsulation: ViewEncapsulation.None
353
- },] }
354
- ];
355
- PageAlertContainerComponent.ctorParameters = () => [
356
- { type: PageAlertService }
357
- ];
416
+ changeDetection: ChangeDetectionStrategy.OnPush,
417
+ encapsulation: ViewEncapsulation.None,
418
+ }]
419
+ }] });
358
420
 
359
421
  const BASIC_THEME_NAV_ITEM_PROVIDERS = [
360
422
  {
@@ -559,40 +621,68 @@ function initLayouts(replaceableComponents) {
559
621
  const LAYOUTS = [ApplicationLayoutComponent, AccountLayoutComponent, EmptyLayoutComponent];
560
622
  class BaseThemeBasicModule {
561
623
  }
562
- BaseThemeBasicModule.decorators = [
563
- { type: NgModule, args: [{
564
- declarations: [
565
- ...LAYOUTS,
566
- ValidationErrorComponent,
567
- LogoComponent,
568
- NavItemsComponent,
569
- RoutesComponent,
570
- CurrentUserComponent,
571
- LanguagesComponent,
572
- PageAlertContainerComponent,
573
- TenantBoxComponent,
574
- AuthWrapperComponent,
575
- ],
576
- exports: [
577
- ...LAYOUTS,
578
- ValidationErrorComponent,
579
- LogoComponent,
580
- NavItemsComponent,
581
- RoutesComponent,
582
- CurrentUserComponent,
583
- LanguagesComponent,
584
- PageAlertContainerComponent,
585
- ],
586
- imports: [
587
- CoreModule,
588
- ThemeSharedModule,
589
- NgbCollapseModule,
590
- NgbDropdownModule,
591
- NgxValidateCoreModule,
592
- ],
593
- entryComponents: [...LAYOUTS, ValidationErrorComponent, CurrentUserComponent, LanguagesComponent],
594
- },] }
595
- ];
624
+ BaseThemeBasicModule.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "12.2.6", ngImport: i0, type: BaseThemeBasicModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule });
625
+ BaseThemeBasicModule.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "12.0.0", version: "12.2.6", ngImport: i0, type: BaseThemeBasicModule, declarations: [ApplicationLayoutComponent, AccountLayoutComponent, EmptyLayoutComponent, ValidationErrorComponent,
626
+ LogoComponent,
627
+ NavItemsComponent,
628
+ RoutesComponent,
629
+ CurrentUserComponent,
630
+ LanguagesComponent,
631
+ PageAlertContainerComponent,
632
+ TenantBoxComponent,
633
+ AuthWrapperComponent], imports: [CoreModule,
634
+ ThemeSharedModule,
635
+ NgbCollapseModule,
636
+ NgbDropdownModule,
637
+ NgxValidateCoreModule], exports: [ApplicationLayoutComponent, AccountLayoutComponent, EmptyLayoutComponent, ValidationErrorComponent,
638
+ LogoComponent,
639
+ NavItemsComponent,
640
+ RoutesComponent,
641
+ CurrentUserComponent,
642
+ LanguagesComponent,
643
+ PageAlertContainerComponent] });
644
+ BaseThemeBasicModule.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "12.2.6", ngImport: i0, type: BaseThemeBasicModule, imports: [[
645
+ CoreModule,
646
+ ThemeSharedModule,
647
+ NgbCollapseModule,
648
+ NgbDropdownModule,
649
+ NgxValidateCoreModule,
650
+ ]] });
651
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.6", ngImport: i0, type: BaseThemeBasicModule, decorators: [{
652
+ type: NgModule,
653
+ args: [{
654
+ declarations: [
655
+ ...LAYOUTS,
656
+ ValidationErrorComponent,
657
+ LogoComponent,
658
+ NavItemsComponent,
659
+ RoutesComponent,
660
+ CurrentUserComponent,
661
+ LanguagesComponent,
662
+ PageAlertContainerComponent,
663
+ TenantBoxComponent,
664
+ AuthWrapperComponent,
665
+ ],
666
+ exports: [
667
+ ...LAYOUTS,
668
+ ValidationErrorComponent,
669
+ LogoComponent,
670
+ NavItemsComponent,
671
+ RoutesComponent,
672
+ CurrentUserComponent,
673
+ LanguagesComponent,
674
+ PageAlertContainerComponent,
675
+ ],
676
+ imports: [
677
+ CoreModule,
678
+ ThemeSharedModule,
679
+ NgbCollapseModule,
680
+ NgbDropdownModule,
681
+ NgxValidateCoreModule,
682
+ ],
683
+ entryComponents: [...LAYOUTS, ValidationErrorComponent, CurrentUserComponent, LanguagesComponent],
684
+ }]
685
+ }] });
596
686
  class ThemeBasicModule {
597
687
  static forRoot() {
598
688
  return {
@@ -616,12 +706,16 @@ class ThemeBasicModule {
616
706
  };
617
707
  }
618
708
  }
619
- ThemeBasicModule.decorators = [
620
- { type: NgModule, args: [{
621
- exports: [BaseThemeBasicModule],
622
- imports: [BaseThemeBasicModule],
623
- },] }
624
- ];
709
+ ThemeBasicModule.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "12.2.6", ngImport: i0, type: ThemeBasicModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule });
710
+ ThemeBasicModule.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "12.0.0", version: "12.2.6", ngImport: i0, type: ThemeBasicModule, imports: [BaseThemeBasicModule], exports: [BaseThemeBasicModule] });
711
+ ThemeBasicModule.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "12.2.6", ngImport: i0, type: ThemeBasicModule, imports: [[BaseThemeBasicModule], BaseThemeBasicModule] });
712
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.6", ngImport: i0, type: ThemeBasicModule, decorators: [{
713
+ type: NgModule,
714
+ args: [{
715
+ exports: [BaseThemeBasicModule],
716
+ imports: [BaseThemeBasicModule],
717
+ }]
718
+ }] });
625
719
 
626
720
  /*
627
721
  * Public API Surface of theme-basic
@@ -631,5 +725,5 @@ ThemeBasicModule.decorators = [
631
725
  * Generated bundle index. Do not edit.
632
726
  */
633
727
 
634
- export { AccountLayoutComponent, ApplicationLayoutComponent, AuthWrapperComponent, BASIC_THEME_NAV_ITEM_PROVIDERS, BASIC_THEME_STYLES_PROVIDERS, BaseThemeBasicModule, CurrentUserComponent, EmptyLayoutComponent, LAYOUTS, LanguagesComponent, LogoComponent, NavItemsComponent, PageAlertContainerComponent, RoutesComponent, TenantBoxComponent, ThemeBasicModule, ValidationErrorComponent, configureNavItems, configureStyles, ApplicationLayoutComponent as ɵa, LayoutService as ɵb, AccountLayoutComponent as ɵc, EmptyLayoutComponent as ɵd, ValidationErrorComponent as ɵe, LogoComponent as ɵf, NavItemsComponent as ɵg, RoutesComponent as ɵh, CurrentUserComponent as ɵi, LanguagesComponent as ɵj, PageAlertContainerComponent as ɵk, TenantBoxComponent as ɵl, AuthWrapperComponent as ɵm, BASIC_THEME_NAV_ITEM_PROVIDERS as ɵn, configureNavItems as ɵo, BASIC_THEME_STYLES_PROVIDERS as ɵp, configureStyles as ɵq };
728
+ export { AccountLayoutComponent, ApplicationLayoutComponent, AuthWrapperComponent, BASIC_THEME_NAV_ITEM_PROVIDERS, BASIC_THEME_STYLES_PROVIDERS, BaseThemeBasicModule, CurrentUserComponent, EmptyLayoutComponent, LAYOUTS, LanguagesComponent, LogoComponent, NavItemsComponent, PageAlertContainerComponent, RoutesComponent, TenantBoxComponent, ThemeBasicModule, ValidationErrorComponent, configureNavItems, configureStyles };
635
729
  //# sourceMappingURL=abp-ng.theme.basic.js.map