@abp/ng.theme.basic 5.0.0-rc.1 → 5.0.2

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (71) hide show
  1. package/abp-ng.theme.basic.d.ts +5 -5
  2. package/bundles/abp-ng.theme.basic-testing.umd.js +37 -37
  3. package/bundles/abp-ng.theme.basic.umd.js +883 -883
  4. package/bundles/abp-ng.theme.basic.umd.js.map +1 -1
  5. package/esm2015/abp-ng.theme.basic.js +4 -4
  6. package/esm2015/lib/components/account-layout/account-layout.component.js +35 -35
  7. package/esm2015/lib/components/account-layout/auth-wrapper/auth-wrapper.component.js +22 -22
  8. package/esm2015/lib/components/account-layout/tenant-box/tenant-box.component.js +23 -23
  9. package/esm2015/lib/components/application-layout/application-layout.component.js +35 -35
  10. package/esm2015/lib/components/empty-layout/empty-layout.component.js +16 -16
  11. package/esm2015/lib/components/index.js +12 -12
  12. package/esm2015/lib/components/logo/logo.component.js +23 -23
  13. package/esm2015/lib/components/nav-items/current-user.component.js +37 -37
  14. package/esm2015/lib/components/nav-items/languages.component.js +38 -38
  15. package/esm2015/lib/components/nav-items/nav-items.component.js +21 -21
  16. package/esm2015/lib/components/page-alert-container/page-alert-container.component.js +22 -22
  17. package/esm2015/lib/components/routes/routes.component.js +39 -39
  18. package/esm2015/lib/components/validation-error/validation-error.component.js +31 -31
  19. package/esm2015/lib/constants/styles.js +1 -1
  20. package/esm2015/lib/enums/components.js +1 -1
  21. package/esm2015/lib/enums/index.js +1 -1
  22. package/esm2015/lib/handlers/index.js +1 -1
  23. package/esm2015/lib/handlers/lazy-style.handler.js +81 -81
  24. package/esm2015/lib/models/index.js +1 -1
  25. package/esm2015/lib/models/layout.js +1 -1
  26. package/esm2015/lib/providers/index.js +2 -2
  27. package/esm2015/lib/providers/nav-item.provider.js +28 -28
  28. package/esm2015/lib/providers/styles.provider.js +34 -34
  29. package/esm2015/lib/services/layout.service.js +37 -37
  30. package/esm2015/lib/theme-basic.module.js +126 -126
  31. package/esm2015/lib/tokens/index.js +1 -1
  32. package/esm2015/lib/tokens/lazy-styles.token.js +2 -2
  33. package/esm2015/public-api.js +10 -10
  34. package/esm2015/testing/abp-ng.theme.basic-testing.js +4 -4
  35. package/esm2015/testing/lib/theme-basic-testing.module.js +37 -37
  36. package/esm2015/testing/public-api.js +1 -1
  37. package/fesm2015/abp-ng.theme.basic-testing.js +34 -34
  38. package/fesm2015/abp-ng.theme.basic.js +501 -501
  39. package/fesm2015/abp-ng.theme.basic.js.map +1 -1
  40. package/lib/components/account-layout/account-layout.component.d.ts +13 -13
  41. package/lib/components/account-layout/auth-wrapper/auth-wrapper.component.d.ts +8 -8
  42. package/lib/components/account-layout/tenant-box/tenant-box.component.d.ts +8 -8
  43. package/lib/components/application-layout/application-layout.component.d.ts +12 -12
  44. package/lib/components/empty-layout/empty-layout.component.d.ts +7 -7
  45. package/lib/components/index.d.ts +12 -12
  46. package/lib/components/logo/logo.component.d.ts +9 -9
  47. package/lib/components/nav-items/current-user.component.d.ts +17 -17
  48. package/lib/components/nav-items/languages.component.d.ts +16 -16
  49. package/lib/components/nav-items/nav-items.component.d.ts +10 -10
  50. package/lib/components/page-alert-container/page-alert-container.component.d.ts +8 -8
  51. package/lib/components/routes/routes.component.d.ts +18 -18
  52. package/lib/components/validation-error/validation-error.component.d.ts +9 -9
  53. package/lib/constants/styles.d.ts +2 -2
  54. package/lib/enums/components.d.ts +10 -10
  55. package/lib/enums/index.d.ts +1 -1
  56. package/lib/handlers/index.d.ts +1 -1
  57. package/lib/handlers/lazy-style.handler.d.ts +23 -23
  58. package/lib/models/index.d.ts +1 -1
  59. package/lib/models/layout.d.ts +11 -11
  60. package/lib/providers/index.d.ts +2 -2
  61. package/lib/providers/nav-item.provider.d.ts +8 -8
  62. package/lib/providers/styles.provider.d.ts +8 -8
  63. package/lib/services/layout.service.d.ts +18 -18
  64. package/lib/theme-basic.module.d.ts +32 -32
  65. package/lib/tokens/index.d.ts +1 -1
  66. package/lib/tokens/lazy-styles.token.d.ts +2 -2
  67. package/package.json +4 -4
  68. package/public-api.d.ts +7 -7
  69. package/testing/abp-ng.theme.basic-testing.d.ts +5 -5
  70. package/testing/lib/theme-basic-testing.module.d.ts +9 -9
  71. package/testing/public-api.d.ts +1 -1
@@ -15,47 +15,47 @@ import { TenantBoxService, AuthWrapperService } from '@abp/ng.account.core';
15
15
  import * as i4 from '@angular/forms';
16
16
  import { ValidationErrorComponent as ValidationErrorComponent$1, NgxValidateCoreModule, VALIDATION_ERROR_TEMPLATE, VALIDATION_TARGET_SELECTOR, VALIDATION_INVALID_CLASSES } from '@ngx-validate/core';
17
17
 
18
- class LayoutService {
19
- constructor(subscription, cdRef) {
20
- this.subscription = subscription;
21
- this.cdRef = cdRef;
22
- this.isCollapsed = true;
23
- this.logoComponentKey = "Theme.LogoComponent" /* Logo */;
24
- this.routesComponentKey = "Theme.RoutesComponent" /* Routes */;
25
- this.navItemsComponentKey = "Theme.NavItemsComponent" /* NavItems */;
26
- }
27
- checkWindowWidth() {
28
- const isSmallScreen = window.innerWidth < 992;
29
- if (isSmallScreen && this.smallScreen === false) {
30
- this.isCollapsed = false;
31
- setTimeout(() => {
32
- this.isCollapsed = true;
33
- }, 100);
34
- }
35
- this.smallScreen = isSmallScreen;
36
- this.cdRef.detectChanges();
37
- }
38
- subscribeWindowSize() {
39
- this.checkWindowWidth();
40
- const resize$ = fromEvent(window, 'resize').pipe(debounceTime(150));
41
- this.subscription.addOne(resize$, () => this.checkWindowWidth());
42
- }
43
- }
44
- LayoutService.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "12.2.13", 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.13", ngImport: i0, type: LayoutService });
46
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.13", ngImport: i0, type: LayoutService, decorators: [{
47
- type: Injectable
18
+ class LayoutService {
19
+ constructor(subscription, cdRef) {
20
+ this.subscription = subscription;
21
+ this.cdRef = cdRef;
22
+ this.isCollapsed = true;
23
+ this.logoComponentKey = "Theme.LogoComponent" /* Logo */;
24
+ this.routesComponentKey = "Theme.RoutesComponent" /* Routes */;
25
+ this.navItemsComponentKey = "Theme.NavItemsComponent" /* NavItems */;
26
+ }
27
+ checkWindowWidth() {
28
+ const isSmallScreen = window.innerWidth < 992;
29
+ if (isSmallScreen && this.smallScreen === false) {
30
+ this.isCollapsed = false;
31
+ setTimeout(() => {
32
+ this.isCollapsed = true;
33
+ }, 100);
34
+ }
35
+ this.smallScreen = isSmallScreen;
36
+ this.cdRef.detectChanges();
37
+ }
38
+ subscribeWindowSize() {
39
+ this.checkWindowWidth();
40
+ const resize$ = fromEvent(window, 'resize').pipe(debounceTime(150));
41
+ this.subscription.addOne(resize$, () => this.checkWindowWidth());
42
+ }
43
+ }
44
+ LayoutService.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "12.2.13", 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.13", ngImport: i0, type: LayoutService });
46
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.13", ngImport: i0, type: LayoutService, decorators: [{
47
+ type: Injectable
48
48
  }], ctorParameters: function () { return [{ type: i1.SubscriptionService }, { type: i0.ChangeDetectorRef }]; } });
49
49
 
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.13", ngImport: i0, type: LogoComponent, deps: [{ token: i1.EnvironmentService }], target: i0.ɵɵFactoryTarget.Component });
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.13", ngImport: i0, type: LogoComponent, deps: [{ token: i1.EnvironmentService }], target: i0.ɵɵFactoryTarget.Component });
59
59
  LogoComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "12.2.13", type: LogoComponent, selector: "abp-logo", ngImport: i0, template: `
60
60
  <a class="navbar-brand" routerLink="/">
61
61
  <img
@@ -70,11 +70,11 @@ LogoComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version:
70
70
  <ng-template #appName>
71
71
  {{ appInfo.name }}
72
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.13", ngImport: i0, type: LogoComponent, decorators: [{
75
- type: Component,
76
- args: [{
77
- selector: 'abp-logo',
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.13", ngImport: i0, type: LogoComponent, decorators: [{
75
+ type: Component,
76
+ args: [{
77
+ selector: 'abp-logo',
78
78
  template: `
79
79
  <a class="navbar-brand" routerLink="/">
80
80
  <img
@@ -89,224 +89,224 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.13", ngImpo
89
89
  <ng-template #appName>
90
90
  {{ appInfo.name }}
91
91
  </ng-template>
92
- `,
93
- }]
92
+ `,
93
+ }]
94
94
  }], ctorParameters: function () { return [{ type: i1.EnvironmentService }]; } });
95
95
 
96
- class RoutesComponent {
97
- constructor(routesService, renderer) {
98
- this.routesService = routesService;
99
- this.renderer = renderer;
100
- this.rootDropdownExpand = {};
101
- this.trackByFn = (_, item) => item.name;
102
- }
103
- isDropdown(node) {
104
- return !(node === null || node === void 0 ? void 0 : node.isLeaf) || this.routesService.hasChildren(node.name);
105
- }
106
- closeDropdown() {
107
- this.childrenContainers.forEach(({ nativeElement }) => {
108
- this.renderer.addClass(nativeElement, 'd-none');
109
- setTimeout(() => this.renderer.removeClass(nativeElement, 'd-none'), 0);
110
- });
111
- }
112
- }
113
- RoutesComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "12.2.13", ngImport: i0, type: RoutesComponent, deps: [{ token: i1.RoutesService }, { token: i0.Renderer2 }], target: i0.ɵɵFactoryTarget.Component });
114
- RoutesComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "12.2.13", 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 class=\"nav-item dropdown\"\n display=\"static\"\n *abpPermission=\"route.requiredPolicy\"\n (click)=\"\n rootDropdownExpand[route.name]\n ? (rootDropdownExpand[route.name] = false)\n : (rootDropdownExpand[route.name] = 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 && rootDropdownExpand[route.name]\"\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-start 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 dropdown-menu-start 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", "dropdownClass"], 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 } });
115
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.13", ngImport: i0, type: RoutesComponent, decorators: [{
116
- type: Component,
117
- args: [{
118
- selector: 'abp-routes',
119
- templateUrl: 'routes.component.html',
120
- }]
121
- }], ctorParameters: function () { return [{ type: i1.RoutesService }, { type: i0.Renderer2 }]; }, propDecorators: { smallScreen: [{
122
- type: Input
123
- }], childrenContainers: [{
124
- type: ViewChildren,
125
- args: ['childrenContainer']
96
+ class RoutesComponent {
97
+ constructor(routesService, renderer) {
98
+ this.routesService = routesService;
99
+ this.renderer = renderer;
100
+ this.rootDropdownExpand = {};
101
+ this.trackByFn = (_, item) => item.name;
102
+ }
103
+ isDropdown(node) {
104
+ return !(node === null || node === void 0 ? void 0 : node.isLeaf) || this.routesService.hasChildren(node.name);
105
+ }
106
+ closeDropdown() {
107
+ this.childrenContainers.forEach(({ nativeElement }) => {
108
+ this.renderer.addClass(nativeElement, 'd-none');
109
+ setTimeout(() => this.renderer.removeClass(nativeElement, 'd-none'), 0);
110
+ });
111
+ }
112
+ }
113
+ RoutesComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "12.2.13", ngImport: i0, type: RoutesComponent, deps: [{ token: i1.RoutesService }, { token: i0.Renderer2 }], target: i0.ɵɵFactoryTarget.Component });
114
+ RoutesComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "12.2.13", 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 class=\"nav-item dropdown\"\n display=\"static\"\n *abpPermission=\"route.requiredPolicy\"\n (click)=\"\n rootDropdownExpand[route.name]\n ? (rootDropdownExpand[route.name] = false)\n : (rootDropdownExpand[route.name] = 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 && rootDropdownExpand[route.name]\"\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-start 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 dropdown-menu-start 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", "dropdownClass"], 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 } });
115
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.13", ngImport: i0, type: RoutesComponent, decorators: [{
116
+ type: Component,
117
+ args: [{
118
+ selector: 'abp-routes',
119
+ templateUrl: 'routes.component.html',
120
+ }]
121
+ }], ctorParameters: function () { return [{ type: i1.RoutesService }, { type: i0.Renderer2 }]; }, propDecorators: { smallScreen: [{
122
+ type: Input
123
+ }], childrenContainers: [{
124
+ type: ViewChildren,
125
+ args: ['childrenContainer']
126
126
  }] } });
127
127
 
128
- class NavItemsComponent {
129
- constructor(navItems) {
130
- this.navItems = navItems;
131
- this.trackByFn = (_, element) => element.id;
132
- }
133
- }
134
- NavItemsComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "12.2.13", ngImport: i0, type: NavItemsComponent, deps: [{ token: i1$1.NavItemsService }], target: i0.ɵɵFactoryTarget.Component });
135
- NavItemsComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "12.2.13", 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 && 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 } });
136
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.13", ngImport: i0, type: NavItemsComponent, decorators: [{
137
- type: Component,
138
- args: [{
139
- selector: 'abp-nav-items',
140
- templateUrl: 'nav-items.component.html',
141
- }]
128
+ class NavItemsComponent {
129
+ constructor(navItems) {
130
+ this.navItems = navItems;
131
+ this.trackByFn = (_, element) => element.id;
132
+ }
133
+ }
134
+ NavItemsComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "12.2.13", ngImport: i0, type: NavItemsComponent, deps: [{ token: i1$1.NavItemsService }], target: i0.ɵɵFactoryTarget.Component });
135
+ NavItemsComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "12.2.13", 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 && 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 } });
136
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.13", ngImport: i0, type: NavItemsComponent, decorators: [{
137
+ type: Component,
138
+ args: [{
139
+ selector: 'abp-nav-items',
140
+ templateUrl: 'nav-items.component.html',
141
+ }]
142
142
  }], ctorParameters: function () { return [{ type: i1$1.NavItemsService }]; } });
143
143
 
144
- class PageAlertContainerComponent {
145
- constructor(service) {
146
- this.service = service;
147
- }
148
- }
149
- PageAlertContainerComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "12.2.13", ngImport: i0, type: PageAlertContainerComponent, deps: [{ token: i1$1.PageAlertService }], target: i0.ɵɵFactoryTarget.Component });
150
- PageAlertContainerComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "12.2.13", 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 });
151
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.13", ngImport: i0, type: PageAlertContainerComponent, decorators: [{
152
- type: Component,
153
- args: [{
154
- selector: 'abp-page-alert-container',
155
- templateUrl: './page-alert-container.component.html',
156
- encapsulation: ViewEncapsulation.None,
157
- }]
144
+ class PageAlertContainerComponent {
145
+ constructor(service) {
146
+ this.service = service;
147
+ }
148
+ }
149
+ PageAlertContainerComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "12.2.13", ngImport: i0, type: PageAlertContainerComponent, deps: [{ token: i1$1.PageAlertService }], target: i0.ɵɵFactoryTarget.Component });
150
+ PageAlertContainerComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "12.2.13", 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=\"btn-close\"\n data-dismiss=\"alert\"\n aria-label=\"Close\"\n (click)=\"service.remove(i)\"\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 });
151
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.13", ngImport: i0, type: PageAlertContainerComponent, decorators: [{
152
+ type: Component,
153
+ args: [{
154
+ selector: 'abp-page-alert-container',
155
+ templateUrl: './page-alert-container.component.html',
156
+ encapsulation: ViewEncapsulation.None,
157
+ }]
158
158
  }], ctorParameters: function () { return [{ type: i1$1.PageAlertService }]; } });
159
159
 
160
- class TenantBoxComponent {
161
- constructor(service) {
162
- this.service = service;
163
- }
164
- }
165
- TenantBoxComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "12.2.13", ngImport: i0, type: TenantBoxComponent, deps: [{ token: i1$2.TenantBoxService }], target: i0.ɵɵFactoryTarget.Component });
166
- TenantBoxComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "12.2.13", type: TenantBoxComponent, selector: "abp-tenant-box", providers: [TenantBoxService], ngImport: i0, template: "<ng-container *ngIf=\"(service.currentTenant$ | async) || { name: '' } 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=\"mb-3 form-group\">\n <label for=\"name\" class=\"form-label\">{{\n 'AbpUiMultiTenancy::Name' | abpLocalization\n }}</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 } });
167
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.13", ngImport: i0, type: TenantBoxComponent, decorators: [{
168
- type: Component,
169
- args: [{
170
- selector: 'abp-tenant-box',
171
- templateUrl: './tenant-box.component.html',
172
- providers: [TenantBoxService],
173
- }]
160
+ class TenantBoxComponent {
161
+ constructor(service) {
162
+ this.service = service;
163
+ }
164
+ }
165
+ TenantBoxComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "12.2.13", ngImport: i0, type: TenantBoxComponent, deps: [{ token: i1$2.TenantBoxService }], target: i0.ɵɵFactoryTarget.Component });
166
+ TenantBoxComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "12.2.13", type: TenantBoxComponent, selector: "abp-tenant-box", providers: [TenantBoxService], ngImport: i0, template: "<ng-container *ngIf=\"(service.currentTenant$ | async) || { name: '' } 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=\"mb-3 form-group\">\n <label for=\"name\" class=\"form-label\">{{\n 'AbpUiMultiTenancy::Name' | abpLocalization\n }}</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 } });
167
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.13", ngImport: i0, type: TenantBoxComponent, decorators: [{
168
+ type: Component,
169
+ args: [{
170
+ selector: 'abp-tenant-box',
171
+ templateUrl: './tenant-box.component.html',
172
+ providers: [TenantBoxService],
173
+ }]
174
174
  }], ctorParameters: function () { return [{ type: i1$2.TenantBoxService }]; } });
175
175
 
176
- class AuthWrapperComponent {
177
- constructor(service) {
178
- this.service = service;
179
- }
180
- }
181
- AuthWrapperComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "12.2.13", ngImport: i0, type: AuthWrapperComponent, deps: [{ token: i1$2.AuthWrapperService }], target: i0.ɵɵFactoryTarget.Component });
182
- AuthWrapperComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "12.2.13", 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 } });
183
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.13", ngImport: i0, type: AuthWrapperComponent, decorators: [{
184
- type: Component,
185
- args: [{
186
- selector: 'abp-auth-wrapper',
187
- templateUrl: './auth-wrapper.component.html',
188
- providers: [AuthWrapperService],
189
- }]
176
+ class AuthWrapperComponent {
177
+ constructor(service) {
178
+ this.service = service;
179
+ }
180
+ }
181
+ AuthWrapperComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "12.2.13", ngImport: i0, type: AuthWrapperComponent, deps: [{ token: i1$2.AuthWrapperService }], target: i0.ɵɵFactoryTarget.Component });
182
+ AuthWrapperComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "12.2.13", 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 } });
183
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.13", ngImport: i0, type: AuthWrapperComponent, decorators: [{
184
+ type: Component,
185
+ args: [{
186
+ selector: 'abp-auth-wrapper',
187
+ templateUrl: './auth-wrapper.component.html',
188
+ providers: [AuthWrapperService],
189
+ }]
190
190
  }], ctorParameters: function () { return [{ type: i1$2.AuthWrapperService }]; } });
191
191
 
192
- class AccountLayoutComponent {
193
- constructor(service) {
194
- this.service = service;
195
- this.authWrapperKey = 'Account.AuthWrapperComponent';
196
- }
197
- ngAfterViewInit() {
198
- this.service.subscribeWindowSize();
199
- }
200
- }
201
- // required for dynamic component
202
- AccountLayoutComponent.type = "account" /* account */;
203
- AccountLayoutComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "12.2.13", ngImport: i0, type: AccountLayoutComponent, deps: [{ token: LayoutService }], target: i0.ɵɵFactoryTarget.Component });
204
- AccountLayoutComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "12.2.13", 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"] }] });
205
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.13", ngImport: i0, type: AccountLayoutComponent, decorators: [{
206
- type: Component,
207
- args: [{
208
- selector: 'abp-layout-account',
209
- templateUrl: './account-layout.component.html',
210
- providers: [LayoutService, SubscriptionService],
211
- }]
192
+ class AccountLayoutComponent {
193
+ constructor(service) {
194
+ this.service = service;
195
+ this.authWrapperKey = 'Account.AuthWrapperComponent';
196
+ }
197
+ ngAfterViewInit() {
198
+ this.service.subscribeWindowSize();
199
+ }
200
+ }
201
+ // required for dynamic component
202
+ AccountLayoutComponent.type = "account" /* account */;
203
+ AccountLayoutComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "12.2.13", ngImport: i0, type: AccountLayoutComponent, deps: [{ token: LayoutService }], target: i0.ɵɵFactoryTarget.Component });
204
+ AccountLayoutComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "12.2.13", 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"] }] });
205
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.13", ngImport: i0, type: AccountLayoutComponent, decorators: [{
206
+ type: Component,
207
+ args: [{
208
+ selector: 'abp-layout-account',
209
+ templateUrl: './account-layout.component.html',
210
+ providers: [LayoutService, SubscriptionService],
211
+ }]
212
212
  }], ctorParameters: function () { return [{ type: LayoutService }]; } });
213
213
 
214
- class ApplicationLayoutComponent {
215
- constructor(service) {
216
- this.service = service;
217
- }
218
- ngAfterViewInit() {
219
- this.service.subscribeWindowSize();
220
- }
221
- }
222
- // required for dynamic component
223
- ApplicationLayoutComponent.type = "application" /* application */;
224
- ApplicationLayoutComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "12.2.13", ngImport: i0, type: ApplicationLayoutComponent, deps: [{ token: LayoutService }], target: i0.ɵɵFactoryTarget.Component });
225
- ApplicationLayoutComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "12.2.13", 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] });
226
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.13", ngImport: i0, type: ApplicationLayoutComponent, decorators: [{
227
- type: Component,
228
- args: [{
229
- selector: 'abp-layout-application',
230
- templateUrl: './application-layout.component.html',
231
- animations: [slideFromBottom, collapseWithMargin],
232
- providers: [LayoutService, SubscriptionService],
233
- }]
214
+ class ApplicationLayoutComponent {
215
+ constructor(service) {
216
+ this.service = service;
217
+ }
218
+ ngAfterViewInit() {
219
+ this.service.subscribeWindowSize();
220
+ }
221
+ }
222
+ // required for dynamic component
223
+ ApplicationLayoutComponent.type = "application" /* application */;
224
+ ApplicationLayoutComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "12.2.13", ngImport: i0, type: ApplicationLayoutComponent, deps: [{ token: LayoutService }], target: i0.ɵɵFactoryTarget.Component });
225
+ ApplicationLayoutComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "12.2.13", 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] });
226
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.13", ngImport: i0, type: ApplicationLayoutComponent, decorators: [{
227
+ type: Component,
228
+ args: [{
229
+ selector: 'abp-layout-application',
230
+ templateUrl: './application-layout.component.html',
231
+ animations: [slideFromBottom, collapseWithMargin],
232
+ providers: [LayoutService, SubscriptionService],
233
+ }]
234
234
  }], ctorParameters: function () { return [{ type: LayoutService }]; } });
235
235
 
236
- class EmptyLayoutComponent {
237
- }
238
- EmptyLayoutComponent.type = "empty" /* empty */;
239
- EmptyLayoutComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "12.2.13", ngImport: i0, type: EmptyLayoutComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
236
+ class EmptyLayoutComponent {
237
+ }
238
+ EmptyLayoutComponent.type = "empty" /* empty */;
239
+ EmptyLayoutComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "12.2.13", ngImport: i0, type: EmptyLayoutComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
240
240
  EmptyLayoutComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "12.2.13", type: EmptyLayoutComponent, selector: "abp-layout-empty", ngImport: i0, template: `
241
241
  <router-outlet></router-outlet>
242
242
  <abp-confirmation></abp-confirmation>
243
- `, isInline: true, components: [{ type: i1$1.ConfirmationComponent, selector: "abp-confirmation" }], directives: [{ type: i2.RouterOutlet, selector: "router-outlet", outputs: ["activate", "deactivate"], exportAs: ["outlet"] }] });
244
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.13", ngImport: i0, type: EmptyLayoutComponent, decorators: [{
245
- type: Component,
246
- args: [{
247
- selector: 'abp-layout-empty',
243
+ `, isInline: true, components: [{ type: i1$1.ConfirmationComponent, selector: "abp-confirmation" }], directives: [{ type: i2.RouterOutlet, selector: "router-outlet", outputs: ["activate", "deactivate"], exportAs: ["outlet"] }] });
244
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.13", ngImport: i0, type: EmptyLayoutComponent, decorators: [{
245
+ type: Component,
246
+ args: [{
247
+ selector: 'abp-layout-empty',
248
248
  template: `
249
249
  <router-outlet></router-outlet>
250
250
  <abp-confirmation></abp-confirmation>
251
- `,
252
- }]
251
+ `,
252
+ }]
253
253
  }] });
254
254
 
255
- class CurrentUserComponent {
256
- constructor(navigateToManageProfile, authService, configState, sessionState) {
257
- this.navigateToManageProfile = navigateToManageProfile;
258
- this.authService = authService;
259
- this.configState = configState;
260
- this.sessionState = sessionState;
261
- this.currentUser$ = this.configState.getOne$('currentUser');
262
- this.selectedTenant$ = this.sessionState.getTenant$();
263
- }
264
- get smallScreen() {
265
- return window.innerWidth < 992;
266
- }
267
- navigateToLogin() {
268
- this.authService.navigateToLogin();
269
- }
270
- logout() {
271
- this.authService.logout().subscribe();
272
- }
273
- }
274
- CurrentUserComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "12.2.13", ngImport: i0, type: CurrentUserComponent, deps: [{ token: NAVIGATE_TO_MANAGE_PROFILE }, { token: i1.AuthService }, { token: i1.ConfigStateService }, { token: i1.SessionStateService }], target: i0.ɵɵFactoryTarget.Component });
275
- CurrentUserComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "12.2.13", 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-end 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 me-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 me-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", "dropdownClass"], outputs: ["openChange"], exportAs: ["ngbDropdown"] }, { type: i3.NgbDropdownToggle, selector: "[ngbDropdownToggle]" }], pipes: { "abpLocalization": i1.LocalizationPipe, "async": i2$1.AsyncPipe } });
276
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.13", ngImport: i0, type: CurrentUserComponent, decorators: [{
277
- type: Component,
278
- args: [{
279
- selector: 'abp-current-user',
280
- templateUrl: './current-user.component.html',
281
- }]
282
- }], ctorParameters: function () { return [{ type: undefined, decorators: [{
283
- type: Inject,
284
- args: [NAVIGATE_TO_MANAGE_PROFILE]
255
+ class CurrentUserComponent {
256
+ constructor(navigateToManageProfile, authService, configState, sessionState) {
257
+ this.navigateToManageProfile = navigateToManageProfile;
258
+ this.authService = authService;
259
+ this.configState = configState;
260
+ this.sessionState = sessionState;
261
+ this.currentUser$ = this.configState.getOne$('currentUser');
262
+ this.selectedTenant$ = this.sessionState.getTenant$();
263
+ }
264
+ get smallScreen() {
265
+ return window.innerWidth < 992;
266
+ }
267
+ navigateToLogin() {
268
+ this.authService.navigateToLogin();
269
+ }
270
+ logout() {
271
+ this.authService.logout().subscribe();
272
+ }
273
+ }
274
+ CurrentUserComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "12.2.13", ngImport: i0, type: CurrentUserComponent, deps: [{ token: NAVIGATE_TO_MANAGE_PROFILE }, { token: i1.AuthService }, { token: i1.ConfigStateService }, { token: i1.SessionStateService }], target: i0.ɵɵFactoryTarget.Component });
275
+ CurrentUserComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "12.2.13", 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-end 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 me-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 me-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", "dropdownClass"], outputs: ["openChange"], exportAs: ["ngbDropdown"] }, { type: i3.NgbDropdownToggle, selector: "[ngbDropdownToggle]" }], pipes: { "abpLocalization": i1.LocalizationPipe, "async": i2$1.AsyncPipe } });
276
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.13", ngImport: i0, type: CurrentUserComponent, decorators: [{
277
+ type: Component,
278
+ args: [{
279
+ selector: 'abp-current-user',
280
+ templateUrl: './current-user.component.html',
281
+ }]
282
+ }], ctorParameters: function () { return [{ type: undefined, decorators: [{
283
+ type: Inject,
284
+ args: [NAVIGATE_TO_MANAGE_PROFILE]
285
285
  }] }, { type: i1.AuthService }, { type: i1.ConfigStateService }, { type: i1.SessionStateService }]; } });
286
286
 
287
- class LanguagesComponent {
288
- constructor(sessionState, configState) {
289
- this.sessionState = sessionState;
290
- this.configState = configState;
291
- this.languages$ = this.configState.getDeep$('localization.languages');
292
- }
293
- get smallScreen() {
294
- return window.innerWidth < 992;
295
- }
296
- get defaultLanguage$() {
297
- return this.languages$.pipe(map(languages => { var _a; return ((_a = languages === null || languages === void 0 ? void 0 : languages.find(lang => lang.cultureName === this.selectedLangCulture)) === null || _a === void 0 ? void 0 : _a.displayName) || ''; }));
298
- }
299
- get dropdownLanguages$() {
300
- return this.languages$.pipe(map(languages => (languages === null || languages === void 0 ? void 0 : languages.filter(lang => lang.cultureName !== this.selectedLangCulture)) || []));
301
- }
302
- get selectedLangCulture() {
303
- return this.sessionState.getLanguage();
304
- }
305
- onChangeLang(cultureName) {
306
- this.sessionState.setLanguage(cultureName);
307
- }
308
- }
309
- LanguagesComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "12.2.13", ngImport: i0, type: LanguagesComponent, deps: [{ token: i1.SessionStateService }, { token: i1.ConfigStateService }], target: i0.ɵɵFactoryTarget.Component });
287
+ class LanguagesComponent {
288
+ constructor(sessionState, configState) {
289
+ this.sessionState = sessionState;
290
+ this.configState = configState;
291
+ this.languages$ = this.configState.getDeep$('localization.languages');
292
+ }
293
+ get smallScreen() {
294
+ return window.innerWidth < 992;
295
+ }
296
+ get defaultLanguage$() {
297
+ return this.languages$.pipe(map(languages => { var _a; return ((_a = languages === null || languages === void 0 ? void 0 : languages.find(lang => lang.cultureName === this.selectedLangCulture)) === null || _a === void 0 ? void 0 : _a.displayName) || ''; }));
298
+ }
299
+ get dropdownLanguages$() {
300
+ return this.languages$.pipe(map(languages => (languages === null || languages === void 0 ? void 0 : languages.filter(lang => lang.cultureName !== this.selectedLangCulture)) || []));
301
+ }
302
+ get selectedLangCulture() {
303
+ return this.sessionState.getLanguage();
304
+ }
305
+ onChangeLang(cultureName) {
306
+ this.sessionState.setLanguage(cultureName);
307
+ }
308
+ }
309
+ LanguagesComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "12.2.13", ngImport: i0, type: LanguagesComponent, deps: [{ token: i1.SessionStateService }, { token: i1.ConfigStateService }], target: i0.ɵɵFactoryTarget.Component });
310
310
  LanguagesComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "12.2.13", type: LanguagesComponent, selector: "abp-languages", ngImport: i0, template: `
311
311
  <div
312
312
  *ngIf="((dropdownLanguages$ | async)?.length || 0) > 0"
@@ -341,11 +341,11 @@ LanguagesComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", ver
341
341
  >
342
342
  </div>
343
343
  </div>
344
- `, isInline: true, directives: [{ type: i2$1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { type: i3.NgbDropdown, selector: "[ngbDropdown]", inputs: ["open", "placement", "container", "autoClose", "display", "dropdownClass"], 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 } });
345
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.13", ngImport: i0, type: LanguagesComponent, decorators: [{
346
- type: Component,
347
- args: [{
348
- selector: 'abp-languages',
344
+ `, isInline: true, directives: [{ type: i2$1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { type: i3.NgbDropdown, selector: "[ngbDropdown]", inputs: ["open", "placement", "container", "autoClose", "display", "dropdownClass"], 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 } });
345
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.13", ngImport: i0, type: LanguagesComponent, decorators: [{
346
+ type: Component,
347
+ args: [{
348
+ selector: 'abp-languages',
349
349
  template: `
350
350
  <div
351
351
  *ngIf="((dropdownLanguages$ | async)?.length || 0) > 0"
@@ -380,147 +380,147 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.13", ngImpo
380
380
  >
381
381
  </div>
382
382
  </div>
383
- `,
384
- }]
383
+ `,
384
+ }]
385
385
  }], ctorParameters: function () { return [{ type: i1.SessionStateService }, { type: i1.ConfigStateService }]; } });
386
386
 
387
- class ValidationErrorComponent extends ValidationErrorComponent$1 {
388
- get abpErrors() {
389
- if (!this.errors || !this.errors.length)
390
- return [];
391
- return this.errors.map(error => {
392
- if (!error.message)
393
- return error;
394
- const index = error.message.indexOf('[');
395
- if (index > -1) {
396
- return Object.assign(Object.assign({}, error), { message: error.message.slice(0, index), interpoliteParams: error.message.slice(index + 1, error.message.length - 1).split(',') });
397
- }
398
- return error;
399
- });
400
- }
401
- }
402
- ValidationErrorComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "12.2.13", ngImport: i0, type: ValidationErrorComponent, deps: null, target: i0.ɵɵFactoryTarget.Component });
387
+ class ValidationErrorComponent extends ValidationErrorComponent$1 {
388
+ get abpErrors() {
389
+ if (!this.errors || !this.errors.length)
390
+ return [];
391
+ return this.errors.map(error => {
392
+ if (!error.message)
393
+ return error;
394
+ const index = error.message.indexOf('[');
395
+ if (index > -1) {
396
+ return Object.assign(Object.assign({}, error), { message: error.message.slice(0, index), interpoliteParams: error.message.slice(index + 1, error.message.length - 1).split(',') });
397
+ }
398
+ return error;
399
+ });
400
+ }
401
+ }
402
+ ValidationErrorComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "12.2.13", ngImport: i0, type: ValidationErrorComponent, deps: null, target: i0.ɵɵFactoryTarget.Component });
403
403
  ValidationErrorComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "12.2.13", type: ValidationErrorComponent, selector: "abp-validation-error", usesInheritance: true, ngImport: i0, template: `
404
404
  <div class="invalid-feedback" *ngFor="let error of abpErrors; trackBy: trackByFn">
405
405
  {{ error.message | abpLocalization: error.interpoliteParams }}
406
406
  </div>
407
- `, 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 });
408
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.13", ngImport: i0, type: ValidationErrorComponent, decorators: [{
409
- type: Component,
410
- args: [{
411
- selector: 'abp-validation-error',
407
+ `, 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 });
408
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.13", ngImport: i0, type: ValidationErrorComponent, decorators: [{
409
+ type: Component,
410
+ args: [{
411
+ selector: 'abp-validation-error',
412
412
  template: `
413
413
  <div class="invalid-feedback" *ngFor="let error of abpErrors; trackBy: trackByFn">
414
414
  {{ error.message | abpLocalization: error.interpoliteParams }}
415
415
  </div>
416
- `,
417
- changeDetection: ChangeDetectionStrategy.OnPush,
418
- encapsulation: ViewEncapsulation.None,
419
- }]
416
+ `,
417
+ changeDetection: ChangeDetectionStrategy.OnPush,
418
+ encapsulation: ViewEncapsulation.None,
419
+ }]
420
420
  }] });
421
421
 
422
422
  const LAZY_STYLES = new InjectionToken('LAZY_STYLES');
423
423
 
424
- const BOOTSTRAP = 'bootstrap-{{dir}}.min.css';
425
- class LazyStyleHandler {
426
- constructor(injector) {
427
- this._dir = 'ltr';
428
- this.loaded = new Map();
429
- this.setStyles(injector);
430
- this.setLazyLoad(injector);
431
- this.listenToDirectionChanges(injector);
432
- }
433
- set dir(dir) {
434
- if (dir === this._dir)
435
- return;
436
- this.switchCSS(dir);
437
- this._dir = dir;
438
- }
439
- get dir() {
440
- return this._dir;
441
- }
442
- getHrefFromLink(link) {
443
- if (!link)
444
- return '';
445
- const a = document.createElement('a');
446
- a.href = link.href;
447
- return a.pathname.replace(/^\//, '');
448
- }
449
- getLoadedBootstrap() {
450
- const href = createLazyStyleHref(BOOTSTRAP, this.dir);
451
- const selector = `[href*="${href.replace(/\.css$/, '')}"]`;
452
- const link = document.querySelector(selector);
453
- return { href, link };
454
- }
455
- listenToDirectionChanges(injector) {
456
- const docDirHandler = injector.get(DocumentDirHandlerService);
457
- // will always listen, no need to unsubscribe
458
- docDirHandler.dir$.subscribe(dir => {
459
- this.dir = dir;
460
- });
461
- }
462
- setLazyLoad(injector) {
463
- this.lazyLoad = injector.get(LazyLoadService);
464
- const { href, link } = this.getLoadedBootstrap();
465
- this.lazyLoad.loaded.set(href, link);
466
- }
467
- setStyles(injector) {
468
- this.styles = injector.get(LAZY_STYLES, [BOOTSTRAP]);
469
- }
470
- switchCSS(dir) {
471
- this.styles.forEach(style => {
472
- const oldHref = createLazyStyleHref(style, this.dir);
473
- const newHref = createLazyStyleHref(style, dir);
474
- const link = this.loaded.get(newHref);
475
- const href = this.getHrefFromLink(link) || newHref;
476
- const strategy = LOADING_STRATEGY.PrependAnonymousStyleToHead(href);
477
- this.lazyLoad.load(strategy).subscribe(() => {
478
- const oldLink = this.lazyLoad.loaded.get(oldHref);
479
- this.loaded.delete(newHref);
480
- this.loaded.set(oldHref, oldLink);
481
- const newLink = this.lazyLoad.loaded.get(href);
482
- this.lazyLoad.loaded.delete(href);
483
- this.lazyLoad.loaded.set(newHref, newLink);
484
- this.lazyLoad.remove(oldHref);
485
- });
486
- });
487
- }
488
- }
489
- LazyStyleHandler.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "12.2.13", ngImport: i0, type: LazyStyleHandler, deps: [{ token: i0.Injector }], target: i0.ɵɵFactoryTarget.Injectable });
490
- LazyStyleHandler.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "12.2.13", ngImport: i0, type: LazyStyleHandler });
491
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.13", ngImport: i0, type: LazyStyleHandler, decorators: [{
492
- type: Injectable
493
- }], ctorParameters: function () { return [{ type: i0.Injector }]; } });
494
- function createLazyStyleHref(style, dir) {
495
- return style.replace(/{{\s*dir\s*}}/g, dir);
496
- }
497
- function initLazyStyleHandler(injector) {
498
- return () => new LazyStyleHandler(injector);
424
+ const BOOTSTRAP = 'bootstrap-{{dir}}.min.css';
425
+ class LazyStyleHandler {
426
+ constructor(injector) {
427
+ this._dir = 'ltr';
428
+ this.loaded = new Map();
429
+ this.setStyles(injector);
430
+ this.setLazyLoad(injector);
431
+ this.listenToDirectionChanges(injector);
432
+ }
433
+ set dir(dir) {
434
+ if (dir === this._dir)
435
+ return;
436
+ this.switchCSS(dir);
437
+ this._dir = dir;
438
+ }
439
+ get dir() {
440
+ return this._dir;
441
+ }
442
+ getHrefFromLink(link) {
443
+ if (!link)
444
+ return '';
445
+ const a = document.createElement('a');
446
+ a.href = link.href;
447
+ return a.pathname.replace(/^\//, '');
448
+ }
449
+ getLoadedBootstrap() {
450
+ const href = createLazyStyleHref(BOOTSTRAP, this.dir);
451
+ const selector = `[href*="${href.replace(/\.css$/, '')}"]`;
452
+ const link = document.querySelector(selector);
453
+ return { href, link };
454
+ }
455
+ listenToDirectionChanges(injector) {
456
+ const docDirHandler = injector.get(DocumentDirHandlerService);
457
+ // will always listen, no need to unsubscribe
458
+ docDirHandler.dir$.subscribe(dir => {
459
+ this.dir = dir;
460
+ });
461
+ }
462
+ setLazyLoad(injector) {
463
+ this.lazyLoad = injector.get(LazyLoadService);
464
+ const { href, link } = this.getLoadedBootstrap();
465
+ this.lazyLoad.loaded.set(href, link);
466
+ }
467
+ setStyles(injector) {
468
+ this.styles = injector.get(LAZY_STYLES, [BOOTSTRAP]);
469
+ }
470
+ switchCSS(dir) {
471
+ this.styles.forEach(style => {
472
+ const oldHref = createLazyStyleHref(style, this.dir);
473
+ const newHref = createLazyStyleHref(style, dir);
474
+ const link = this.loaded.get(newHref);
475
+ const href = this.getHrefFromLink(link) || newHref;
476
+ const strategy = LOADING_STRATEGY.PrependAnonymousStyleToHead(href);
477
+ this.lazyLoad.load(strategy).subscribe(() => {
478
+ const oldLink = this.lazyLoad.loaded.get(oldHref);
479
+ this.loaded.delete(newHref);
480
+ this.loaded.set(oldHref, oldLink);
481
+ const newLink = this.lazyLoad.loaded.get(href);
482
+ this.lazyLoad.loaded.delete(href);
483
+ this.lazyLoad.loaded.set(newHref, newLink);
484
+ this.lazyLoad.remove(oldHref);
485
+ });
486
+ });
487
+ }
488
+ }
489
+ LazyStyleHandler.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "12.2.13", ngImport: i0, type: LazyStyleHandler, deps: [{ token: i0.Injector }], target: i0.ɵɵFactoryTarget.Injectable });
490
+ LazyStyleHandler.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "12.2.13", ngImport: i0, type: LazyStyleHandler });
491
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.13", ngImport: i0, type: LazyStyleHandler, decorators: [{
492
+ type: Injectable
493
+ }], ctorParameters: function () { return [{ type: i0.Injector }]; } });
494
+ function createLazyStyleHref(style, dir) {
495
+ return style.replace(/{{\s*dir\s*}}/g, dir);
496
+ }
497
+ function initLazyStyleHandler(injector) {
498
+ return () => new LazyStyleHandler(injector);
499
499
  }
500
500
 
501
- const BASIC_THEME_NAV_ITEM_PROVIDERS = [
502
- {
503
- provide: APP_INITIALIZER,
504
- useFactory: configureNavItems,
505
- deps: [NavItemsService],
506
- multi: true,
507
- },
508
- ];
509
- function configureNavItems(navItems) {
510
- return () => {
511
- navItems.addItems([
512
- {
513
- id: "Theme.LanguagesComponent" /* Languages */,
514
- order: 100,
515
- component: LanguagesComponent,
516
- },
517
- {
518
- id: "Theme.CurrentUserComponent" /* CurrentUser */,
519
- order: 100,
520
- component: CurrentUserComponent,
521
- },
522
- ]);
523
- };
501
+ const BASIC_THEME_NAV_ITEM_PROVIDERS = [
502
+ {
503
+ provide: APP_INITIALIZER,
504
+ useFactory: configureNavItems,
505
+ deps: [NavItemsService],
506
+ multi: true,
507
+ },
508
+ ];
509
+ function configureNavItems(navItems) {
510
+ return () => {
511
+ navItems.addItems([
512
+ {
513
+ id: "Theme.LanguagesComponent" /* Languages */,
514
+ order: 100,
515
+ component: LanguagesComponent,
516
+ },
517
+ {
518
+ id: "Theme.CurrentUserComponent" /* CurrentUser */,
519
+ order: 100,
520
+ component: CurrentUserComponent,
521
+ },
522
+ ]);
523
+ };
524
524
  }
525
525
 
526
526
  var styles = `
@@ -674,147 +674,147 @@ background-color: rgba(0, 0, 0, 0.6);
674
674
  }
675
675
  `;
676
676
 
677
- const BASIC_THEME_STYLES_PROVIDERS = [
678
- {
679
- provide: APP_INITIALIZER,
680
- useFactory: configureStyles,
681
- deps: [DomInsertionService, ReplaceableComponentsService],
682
- multi: true,
683
- },
684
- ];
685
- function configureStyles(domInsertion, replaceableComponents) {
686
- return () => {
687
- domInsertion.insertContent(CONTENT_STRATEGY.AppendStyleToHead(styles));
688
- initLayouts(replaceableComponents);
689
- };
690
- }
691
- function initLayouts(replaceableComponents) {
692
- replaceableComponents.add({
693
- key: "Theme.ApplicationLayoutComponent" /* ApplicationLayout */,
694
- component: ApplicationLayoutComponent,
695
- });
696
- replaceableComponents.add({
697
- key: "Theme.AccountLayoutComponent" /* AccountLayout */,
698
- component: AccountLayoutComponent,
699
- });
700
- replaceableComponents.add({
701
- key: "Theme.EmptyLayoutComponent" /* EmptyLayout */,
702
- component: EmptyLayoutComponent,
703
- });
677
+ const BASIC_THEME_STYLES_PROVIDERS = [
678
+ {
679
+ provide: APP_INITIALIZER,
680
+ useFactory: configureStyles,
681
+ deps: [DomInsertionService, ReplaceableComponentsService],
682
+ multi: true,
683
+ },
684
+ ];
685
+ function configureStyles(domInsertion, replaceableComponents) {
686
+ return () => {
687
+ domInsertion.insertContent(CONTENT_STRATEGY.AppendStyleToHead(styles));
688
+ initLayouts(replaceableComponents);
689
+ };
690
+ }
691
+ function initLayouts(replaceableComponents) {
692
+ replaceableComponents.add({
693
+ key: "Theme.ApplicationLayoutComponent" /* ApplicationLayout */,
694
+ component: ApplicationLayoutComponent,
695
+ });
696
+ replaceableComponents.add({
697
+ key: "Theme.AccountLayoutComponent" /* AccountLayout */,
698
+ component: AccountLayoutComponent,
699
+ });
700
+ replaceableComponents.add({
701
+ key: "Theme.EmptyLayoutComponent" /* EmptyLayout */,
702
+ component: EmptyLayoutComponent,
703
+ });
704
704
  }
705
705
 
706
- const LAYOUTS = [ApplicationLayoutComponent, AccountLayoutComponent, EmptyLayoutComponent];
707
- class BaseThemeBasicModule {
708
- }
709
- BaseThemeBasicModule.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "12.2.13", ngImport: i0, type: BaseThemeBasicModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule });
710
- BaseThemeBasicModule.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "12.0.0", version: "12.2.13", ngImport: i0, type: BaseThemeBasicModule, declarations: [ApplicationLayoutComponent, AccountLayoutComponent, EmptyLayoutComponent, ValidationErrorComponent,
711
- LogoComponent,
712
- NavItemsComponent,
713
- RoutesComponent,
714
- CurrentUserComponent,
715
- LanguagesComponent,
716
- PageAlertContainerComponent,
717
- TenantBoxComponent,
718
- AuthWrapperComponent], imports: [CoreModule,
719
- ThemeSharedModule,
720
- NgbCollapseModule,
721
- NgbDropdownModule,
722
- NgxValidateCoreModule], exports: [ApplicationLayoutComponent, AccountLayoutComponent, EmptyLayoutComponent, ValidationErrorComponent,
723
- LogoComponent,
724
- NavItemsComponent,
725
- RoutesComponent,
726
- CurrentUserComponent,
727
- LanguagesComponent,
728
- PageAlertContainerComponent] });
729
- BaseThemeBasicModule.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "12.2.13", ngImport: i0, type: BaseThemeBasicModule, imports: [[
730
- CoreModule,
731
- ThemeSharedModule,
732
- NgbCollapseModule,
733
- NgbDropdownModule,
734
- NgxValidateCoreModule,
735
- ]] });
736
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.13", ngImport: i0, type: BaseThemeBasicModule, decorators: [{
737
- type: NgModule,
738
- args: [{
739
- declarations: [
740
- ...LAYOUTS,
741
- ValidationErrorComponent,
742
- LogoComponent,
743
- NavItemsComponent,
744
- RoutesComponent,
745
- CurrentUserComponent,
746
- LanguagesComponent,
747
- PageAlertContainerComponent,
748
- TenantBoxComponent,
749
- AuthWrapperComponent,
750
- ],
751
- exports: [
752
- ...LAYOUTS,
753
- ValidationErrorComponent,
754
- LogoComponent,
755
- NavItemsComponent,
756
- RoutesComponent,
757
- CurrentUserComponent,
758
- LanguagesComponent,
759
- PageAlertContainerComponent,
760
- ],
761
- imports: [
762
- CoreModule,
763
- ThemeSharedModule,
764
- NgbCollapseModule,
765
- NgbDropdownModule,
766
- NgxValidateCoreModule,
767
- ],
768
- entryComponents: [...LAYOUTS, ValidationErrorComponent, CurrentUserComponent, LanguagesComponent],
769
- }]
770
- }] });
771
- class ThemeBasicModule {
772
- static forRoot() {
773
- return {
774
- ngModule: ThemeBasicModule,
775
- providers: [
776
- BASIC_THEME_NAV_ITEM_PROVIDERS,
777
- BASIC_THEME_STYLES_PROVIDERS,
778
- {
779
- provide: VALIDATION_ERROR_TEMPLATE,
780
- useValue: ValidationErrorComponent,
781
- },
782
- {
783
- provide: VALIDATION_TARGET_SELECTOR,
784
- useValue: '.form-group',
785
- },
786
- {
787
- provide: VALIDATION_INVALID_CLASSES,
788
- useValue: 'is-invalid',
789
- },
790
- LazyStyleHandler,
791
- {
792
- provide: APP_INITIALIZER,
793
- useFactory: noop,
794
- multi: true,
795
- deps: [LazyStyleHandler],
796
- },
797
- ],
798
- };
799
- }
800
- }
801
- ThemeBasicModule.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "12.2.13", ngImport: i0, type: ThemeBasicModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule });
802
- ThemeBasicModule.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "12.0.0", version: "12.2.13", ngImport: i0, type: ThemeBasicModule, imports: [BaseThemeBasicModule], exports: [BaseThemeBasicModule] });
803
- ThemeBasicModule.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "12.2.13", ngImport: i0, type: ThemeBasicModule, imports: [[BaseThemeBasicModule], BaseThemeBasicModule] });
804
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.13", ngImport: i0, type: ThemeBasicModule, decorators: [{
805
- type: NgModule,
806
- args: [{
807
- exports: [BaseThemeBasicModule],
808
- imports: [BaseThemeBasicModule],
809
- }]
706
+ const LAYOUTS = [ApplicationLayoutComponent, AccountLayoutComponent, EmptyLayoutComponent];
707
+ class BaseThemeBasicModule {
708
+ }
709
+ BaseThemeBasicModule.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "12.2.13", ngImport: i0, type: BaseThemeBasicModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule });
710
+ BaseThemeBasicModule.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "12.0.0", version: "12.2.13", ngImport: i0, type: BaseThemeBasicModule, declarations: [ApplicationLayoutComponent, AccountLayoutComponent, EmptyLayoutComponent, ValidationErrorComponent,
711
+ LogoComponent,
712
+ NavItemsComponent,
713
+ RoutesComponent,
714
+ CurrentUserComponent,
715
+ LanguagesComponent,
716
+ PageAlertContainerComponent,
717
+ TenantBoxComponent,
718
+ AuthWrapperComponent], imports: [CoreModule,
719
+ ThemeSharedModule,
720
+ NgbCollapseModule,
721
+ NgbDropdownModule,
722
+ NgxValidateCoreModule], exports: [ApplicationLayoutComponent, AccountLayoutComponent, EmptyLayoutComponent, ValidationErrorComponent,
723
+ LogoComponent,
724
+ NavItemsComponent,
725
+ RoutesComponent,
726
+ CurrentUserComponent,
727
+ LanguagesComponent,
728
+ PageAlertContainerComponent] });
729
+ BaseThemeBasicModule.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "12.2.13", ngImport: i0, type: BaseThemeBasicModule, imports: [[
730
+ CoreModule,
731
+ ThemeSharedModule,
732
+ NgbCollapseModule,
733
+ NgbDropdownModule,
734
+ NgxValidateCoreModule,
735
+ ]] });
736
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.13", ngImport: i0, type: BaseThemeBasicModule, decorators: [{
737
+ type: NgModule,
738
+ args: [{
739
+ declarations: [
740
+ ...LAYOUTS,
741
+ ValidationErrorComponent,
742
+ LogoComponent,
743
+ NavItemsComponent,
744
+ RoutesComponent,
745
+ CurrentUserComponent,
746
+ LanguagesComponent,
747
+ PageAlertContainerComponent,
748
+ TenantBoxComponent,
749
+ AuthWrapperComponent,
750
+ ],
751
+ exports: [
752
+ ...LAYOUTS,
753
+ ValidationErrorComponent,
754
+ LogoComponent,
755
+ NavItemsComponent,
756
+ RoutesComponent,
757
+ CurrentUserComponent,
758
+ LanguagesComponent,
759
+ PageAlertContainerComponent,
760
+ ],
761
+ imports: [
762
+ CoreModule,
763
+ ThemeSharedModule,
764
+ NgbCollapseModule,
765
+ NgbDropdownModule,
766
+ NgxValidateCoreModule,
767
+ ],
768
+ entryComponents: [...LAYOUTS, ValidationErrorComponent, CurrentUserComponent, LanguagesComponent],
769
+ }]
770
+ }] });
771
+ class ThemeBasicModule {
772
+ static forRoot() {
773
+ return {
774
+ ngModule: ThemeBasicModule,
775
+ providers: [
776
+ BASIC_THEME_NAV_ITEM_PROVIDERS,
777
+ BASIC_THEME_STYLES_PROVIDERS,
778
+ {
779
+ provide: VALIDATION_ERROR_TEMPLATE,
780
+ useValue: ValidationErrorComponent,
781
+ },
782
+ {
783
+ provide: VALIDATION_TARGET_SELECTOR,
784
+ useValue: '.form-group',
785
+ },
786
+ {
787
+ provide: VALIDATION_INVALID_CLASSES,
788
+ useValue: 'is-invalid',
789
+ },
790
+ LazyStyleHandler,
791
+ {
792
+ provide: APP_INITIALIZER,
793
+ useFactory: noop,
794
+ multi: true,
795
+ deps: [LazyStyleHandler],
796
+ },
797
+ ],
798
+ };
799
+ }
800
+ }
801
+ ThemeBasicModule.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "12.2.13", ngImport: i0, type: ThemeBasicModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule });
802
+ ThemeBasicModule.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "12.0.0", version: "12.2.13", ngImport: i0, type: ThemeBasicModule, imports: [BaseThemeBasicModule], exports: [BaseThemeBasicModule] });
803
+ ThemeBasicModule.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "12.2.13", ngImport: i0, type: ThemeBasicModule, imports: [[BaseThemeBasicModule], BaseThemeBasicModule] });
804
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.13", ngImport: i0, type: ThemeBasicModule, decorators: [{
805
+ type: NgModule,
806
+ args: [{
807
+ exports: [BaseThemeBasicModule],
808
+ imports: [BaseThemeBasicModule],
809
+ }]
810
810
  }] });
811
811
 
812
- /*
813
- * Public API Surface of theme-basic
812
+ /*
813
+ * Public API Surface of theme-basic
814
814
  */
815
815
 
816
- /**
817
- * Generated bundle index. Do not edit.
816
+ /**
817
+ * Generated bundle index. Do not edit.
818
818
  */
819
819
 
820
820
  export { AccountLayoutComponent, ApplicationLayoutComponent, AuthWrapperComponent, BASIC_THEME_NAV_ITEM_PROVIDERS, BASIC_THEME_STYLES_PROVIDERS, BOOTSTRAP, BaseThemeBasicModule, CurrentUserComponent, EmptyLayoutComponent, LAYOUTS, LAZY_STYLES, LanguagesComponent, LazyStyleHandler, LogoComponent, NavItemsComponent, PageAlertContainerComponent, RoutesComponent, TenantBoxComponent, ThemeBasicModule, ValidationErrorComponent, configureNavItems, configureStyles, createLazyStyleHref, initLazyStyleHandler };