@abp/ng.theme.basic 5.0.0-beta.2 → 5.0.0-rc.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 (80) hide show
  1. package/README.md +3 -3
  2. package/bundles/abp-ng.theme.basic-testing.umd.js +8 -10
  3. package/bundles/abp-ng.theme.basic-testing.umd.js.map +1 -1
  4. package/bundles/abp-ng.theme.basic.umd.js +153 -56
  5. package/bundles/abp-ng.theme.basic.umd.js.map +1 -1
  6. package/esm2015/abp-ng.theme.basic.js +1 -1
  7. package/esm2015/lib/components/account-layout/account-layout.component.js +4 -4
  8. package/esm2015/lib/components/account-layout/auth-wrapper/auth-wrapper.component.js +4 -4
  9. package/esm2015/lib/components/account-layout/tenant-box/tenant-box.component.js +4 -4
  10. package/esm2015/lib/components/application-layout/application-layout.component.js +4 -4
  11. package/esm2015/lib/components/empty-layout/empty-layout.component.js +9 -9
  12. package/esm2015/lib/components/index.js +1 -1
  13. package/esm2015/lib/components/logo/logo.component.js +31 -31
  14. package/esm2015/lib/components/nav-items/current-user.component.js +4 -4
  15. package/esm2015/lib/components/nav-items/languages.component.js +73 -73
  16. package/esm2015/lib/components/nav-items/nav-items.component.js +4 -4
  17. package/esm2015/lib/components/page-alert-container/page-alert-container.component.js +4 -4
  18. package/esm2015/lib/components/routes/routes.component.js +5 -4
  19. package/esm2015/lib/components/validation-error/validation-error.component.js +11 -11
  20. package/esm2015/lib/constants/styles.js +150 -145
  21. package/esm2015/lib/enums/components.js +1 -1
  22. package/esm2015/lib/enums/index.js +1 -1
  23. package/esm2015/lib/handlers/index.js +2 -0
  24. package/esm2015/lib/handlers/lazy-style.handler.js +82 -0
  25. package/esm2015/lib/models/index.js +1 -1
  26. package/esm2015/lib/models/layout.js +1 -1
  27. package/esm2015/lib/providers/index.js +1 -1
  28. package/esm2015/lib/providers/nav-item.provider.js +1 -1
  29. package/esm2015/lib/providers/styles.provider.js +1 -1
  30. package/esm2015/lib/services/layout.service.js +5 -5
  31. package/esm2015/lib/theme-basic.module.js +22 -14
  32. package/esm2015/lib/tokens/index.js +2 -0
  33. package/esm2015/lib/tokens/lazy-styles.token.js +3 -0
  34. package/esm2015/public-api.js +3 -1
  35. package/esm2015/testing/abp-ng.theme.basic-testing.js +1 -1
  36. package/esm2015/testing/lib/theme-basic-testing.module.js +5 -5
  37. package/esm2015/testing/public-api.js +1 -1
  38. package/fesm2015/abp-ng.theme.basic-testing.js +4 -4
  39. package/fesm2015/abp-ng.theme.basic-testing.js.map +1 -1
  40. package/fesm2015/abp-ng.theme.basic.js +395 -303
  41. package/fesm2015/abp-ng.theme.basic.js.map +1 -1
  42. package/lib/components/nav-items/current-user.component.d.ts +2 -2
  43. package/lib/components/routes/routes.component.d.ts +4 -1
  44. package/lib/components/validation-error/validation-error.component.d.ts +2 -2
  45. package/lib/constants/styles.d.ts +1 -1
  46. package/lib/handlers/index.d.ts +1 -0
  47. package/lib/handlers/lazy-style.handler.d.ts +23 -0
  48. package/lib/services/layout.service.d.ts +1 -1
  49. package/lib/tokens/index.d.ts +1 -0
  50. package/lib/tokens/lazy-styles.token.d.ts +2 -0
  51. package/package.json +5 -5
  52. package/public-api.d.ts +2 -0
  53. package/esm2015/abp-ng.theme.basic.js.map +0 -1
  54. package/esm2015/lib/components/account-layout/account-layout.component.js.map +0 -1
  55. package/esm2015/lib/components/account-layout/auth-wrapper/auth-wrapper.component.js.map +0 -1
  56. package/esm2015/lib/components/account-layout/tenant-box/tenant-box.component.js.map +0 -1
  57. package/esm2015/lib/components/application-layout/application-layout.component.js.map +0 -1
  58. package/esm2015/lib/components/empty-layout/empty-layout.component.js.map +0 -1
  59. package/esm2015/lib/components/index.js.map +0 -1
  60. package/esm2015/lib/components/logo/logo.component.js.map +0 -1
  61. package/esm2015/lib/components/nav-items/current-user.component.js.map +0 -1
  62. package/esm2015/lib/components/nav-items/languages.component.js.map +0 -1
  63. package/esm2015/lib/components/nav-items/nav-items.component.js.map +0 -1
  64. package/esm2015/lib/components/page-alert-container/page-alert-container.component.js.map +0 -1
  65. package/esm2015/lib/components/routes/routes.component.js.map +0 -1
  66. package/esm2015/lib/components/validation-error/validation-error.component.js.map +0 -1
  67. package/esm2015/lib/constants/styles.js.map +0 -1
  68. package/esm2015/lib/enums/components.js.map +0 -1
  69. package/esm2015/lib/enums/index.js.map +0 -1
  70. package/esm2015/lib/models/index.js.map +0 -1
  71. package/esm2015/lib/models/layout.js.map +0 -1
  72. package/esm2015/lib/providers/index.js.map +0 -1
  73. package/esm2015/lib/providers/nav-item.provider.js.map +0 -1
  74. package/esm2015/lib/providers/styles.provider.js.map +0 -1
  75. package/esm2015/lib/services/layout.service.js.map +0 -1
  76. package/esm2015/lib/theme-basic.module.js.map +0 -1
  77. package/esm2015/public-api.js.map +0 -1
  78. package/esm2015/testing/abp-ng.theme.basic-testing.js.map +0 -1
  79. package/esm2015/testing/lib/theme-basic-testing.module.js.map +0 -1
  80. package/esm2015/testing/public-api.js.map +0 -1
@@ -2,7 +2,7 @@
2
2
  typeof exports === 'object' && typeof module !== 'undefined' ? factory(exports, require('@angular/core'), require('@abp/ng.core'), require('rxjs'), require('rxjs/operators'), require('@angular/router'), require('@angular/common'), require('@ng-bootstrap/ng-bootstrap'), require('@abp/ng.theme.shared'), require('@abp/ng.account.core'), require('@angular/forms'), require('@ngx-validate/core')) :
3
3
  typeof define === 'function' && define.amd ? define('@abp/ng.theme.basic', ['exports', '@angular/core', '@abp/ng.core', 'rxjs', 'rxjs/operators', '@angular/router', '@angular/common', '@ng-bootstrap/ng-bootstrap', '@abp/ng.theme.shared', '@abp/ng.account.core', '@angular/forms', '@ngx-validate/core'], factory) :
4
4
  (global = typeof globalThis !== 'undefined' ? globalThis : global || self, factory((global.abp = global.abp || {}, global.abp.ng = global.abp.ng || {}, global.abp.ng.theme = global.abp.ng.theme || {}, global.abp.ng.theme.basic = {}), global.ng.core, global.i1, global.rxjs, global.rxjs.operators, global.ng.router, global.ng.common, global.i3, global.i1$1, global.i1$2, global.ng.forms, global.core));
5
- }(this, (function (exports, i0, i1, rxjs, operators, i2, i2$1, i3, i1$1, i1$2, i4, core) { 'use strict';
5
+ })(this, (function (exports, i0, i1, rxjs, operators, i2, i2$1, i3, i1$1, i1$2, i4, core) { 'use strict';
6
6
 
7
7
  function _interopNamespace(e) {
8
8
  if (e && e.__esModule) return e;
@@ -13,14 +13,12 @@
13
13
  var d = Object.getOwnPropertyDescriptor(e, k);
14
14
  Object.defineProperty(n, k, d.get ? d : {
15
15
  enumerable: true,
16
- get: function () {
17
- return e[k];
18
- }
16
+ get: function () { return e[k]; }
19
17
  });
20
18
  }
21
19
  });
22
20
  }
23
- n['default'] = e;
21
+ n["default"] = e;
24
22
  return Object.freeze(n);
25
23
  }
26
24
 
@@ -62,9 +60,9 @@
62
60
  };
63
61
  return LayoutService;
64
62
  }());
65
- LayoutService.ɵfac = i0__namespace.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "12.2.6", ngImport: i0__namespace, type: LayoutService, deps: [{ token: i1__namespace.SubscriptionService }, { token: i0__namespace.ChangeDetectorRef }], target: i0__namespace.ɵɵFactoryTarget.Injectable });
66
- LayoutService.ɵprov = i0__namespace.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "12.2.6", ngImport: i0__namespace, type: LayoutService });
67
- i0__namespace.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.6", ngImport: i0__namespace, type: LayoutService, decorators: [{
63
+ LayoutService.ɵfac = i0__namespace.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "12.2.13", ngImport: i0__namespace, type: LayoutService, deps: [{ token: i1__namespace.SubscriptionService }, { token: i0__namespace.ChangeDetectorRef }], target: i0__namespace.ɵɵFactoryTarget.Injectable });
64
+ LayoutService.ɵprov = i0__namespace.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "12.2.13", ngImport: i0__namespace, type: LayoutService });
65
+ i0__namespace.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.13", ngImport: i0__namespace, type: LayoutService, decorators: [{
68
66
  type: i0.Injectable
69
67
  }], ctorParameters: function () { return [{ type: i1__namespace.SubscriptionService }, { type: i0__namespace.ChangeDetectorRef }]; } });
70
68
 
@@ -81,9 +79,9 @@
81
79
  });
82
80
  return LogoComponent;
83
81
  }());
84
- LogoComponent.ɵfac = i0__namespace.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "12.2.6", ngImport: i0__namespace, type: LogoComponent, deps: [{ token: i1__namespace.EnvironmentService }], target: i0__namespace.ɵɵFactoryTarget.Component });
85
- LogoComponent.ɵcmp = i0__namespace.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "12.2.6", type: LogoComponent, selector: "abp-logo", ngImport: i0__namespace, template: "\n <a class=\"navbar-brand\" routerLink=\"/\">\n <img\n *ngIf=\"appInfo.logoUrl; else appName\"\n [src]=\"appInfo.logoUrl\"\n [alt]=\"appInfo.name\"\n width=\"100%\"\n height=\"auto\"\n />\n </a>\n\n <ng-template #appName>\n {{ appInfo.name }}\n </ng-template>\n ", isInline: true, directives: [{ type: i2__namespace.RouterLinkWithHref, selector: "a[routerLink],area[routerLink]", inputs: ["routerLink", "target", "queryParams", "fragment", "queryParamsHandling", "preserveFragment", "skipLocationChange", "replaceUrl", "state", "relativeTo"] }, { type: i2__namespace$1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }] });
86
- i0__namespace.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.6", ngImport: i0__namespace, type: LogoComponent, decorators: [{
82
+ LogoComponent.ɵfac = i0__namespace.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "12.2.13", ngImport: i0__namespace, type: LogoComponent, deps: [{ token: i1__namespace.EnvironmentService }], target: i0__namespace.ɵɵFactoryTarget.Component });
83
+ LogoComponent.ɵcmp = i0__namespace.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "12.2.13", type: LogoComponent, selector: "abp-logo", ngImport: i0__namespace, template: "\n <a class=\"navbar-brand\" routerLink=\"/\">\n <img\n *ngIf=\"appInfo.logoUrl; else appName\"\n [src]=\"appInfo.logoUrl\"\n [alt]=\"appInfo.name\"\n width=\"100%\"\n height=\"auto\"\n />\n </a>\n\n <ng-template #appName>\n {{ appInfo.name }}\n </ng-template>\n ", isInline: true, directives: [{ type: i2__namespace.RouterLinkWithHref, selector: "a[routerLink],area[routerLink]", inputs: ["routerLink", "target", "queryParams", "fragment", "queryParamsHandling", "preserveFragment", "skipLocationChange", "replaceUrl", "state", "relativeTo"] }, { type: i2__namespace$1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }] });
84
+ i0__namespace.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.13", ngImport: i0__namespace, type: LogoComponent, decorators: [{
87
85
  type: i0.Component,
88
86
  args: [{
89
87
  selector: 'abp-logo',
@@ -95,6 +93,7 @@
95
93
  function RoutesComponent(routesService, renderer) {
96
94
  this.routesService = routesService;
97
95
  this.renderer = renderer;
96
+ this.rootDropdownExpand = {};
98
97
  this.trackByFn = function (_, item) { return item.name; };
99
98
  }
100
99
  RoutesComponent.prototype.isDropdown = function (node) {
@@ -110,9 +109,9 @@
110
109
  };
111
110
  return RoutesComponent;
112
111
  }());
113
- RoutesComponent.ɵfac = i0__namespace.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "12.2.6", ngImport: i0__namespace, type: RoutesComponent, deps: [{ token: i1__namespace.RoutesService }, { token: i0__namespace.Renderer2 }], target: i0__namespace.ɵɵFactoryTarget.Component });
114
- RoutesComponent.ɵcmp = i0__namespace.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "12.2.6", type: RoutesComponent, selector: "abp-routes", inputs: { smallScreen: "smallScreen" }, viewQueries: [{ propertyName: "childrenContainers", predicate: ["childrenContainer"], descendants: true }], ngImport: i0__namespace, template: "<ul class=\"navbar-nav\">\n <ng-container\n *ngFor=\"let route of routesService.visible$ | async; trackBy: trackByFn\"\n [ngTemplateOutlet]=\"isDropdown(route) ? dropdownLink : defaultLink\"\n [ngTemplateOutletContext]=\"{ $implicit: route }\"\n >\n </ng-container>\n\n <ng-template #defaultLink let-route>\n <li class=\"nav-item\" *abpPermission=\"route.requiredPolicy\">\n <a class=\"nav-link\" [routerLink]=\"[route.path]\"\n ><i *ngIf=\"route.iconClass\" [ngClass]=\"route.iconClass\"></i>\n {{ route.name | abpLocalization }}</a\n >\n </li>\n </ng-template>\n\n <ng-template #dropdownLink let-route>\n <ng-container *ngIf=\"route.children?.length\">\n <li\n #navbarRootDropdown\n class=\"nav-item dropdown\"\n display=\"static\"\n *abpPermission=\"route.requiredPolicy\"\n (click)=\"\n navbarRootDropdown.expand\n ? (navbarRootDropdown.expand = false)\n : (navbarRootDropdown.expand = true)\n \"\n >\n <a\n class=\"nav-link dropdown-toggle\"\n data-toggle=\"dropdown\"\n aria-haspopup=\"true\"\n aria-expanded=\"false\"\n href=\"javascript:void(0)\"\n >\n <i *ngIf=\"route.iconClass\" [ngClass]=\"route.iconClass\"></i>\n {{ route.name | abpLocalization }}\n </a>\n <div\n #routeContainer\n class=\"dropdown-menu border-0 shadow-sm\"\n (click)=\"$event.preventDefault(); $event.stopPropagation()\"\n [class.d-block]=\"smallScreen && navbarRootDropdown.expand\"\n >\n <ng-container\n *ngTemplateOutlet=\"forTemplate; context: { $implicit: route }\"\n ></ng-container>\n </div>\n </li>\n </ng-container>\n </ng-template>\n\n <ng-template #forTemplate let-route>\n <ng-container *ngFor=\"let child of route.children\">\n <ng-template\n [ngTemplateOutlet]=\"child.children?.length ? dropdownChild : defaultChild\"\n [ngTemplateOutletContext]=\"{ $implicit: child }\"\n ></ng-template>\n </ng-container>\n </ng-template>\n\n <ng-template #defaultChild let-child>\n <ng-container *ngIf=\"child.path\">\n <div class=\"dropdown-submenu\" *abpPermission=\"child.requiredPolicy\">\n <a class=\"dropdown-item\" [routerLink]=\"[child.path]\" (click)=\"closeDropdown()\">\n <i *ngIf=\"child.iconClass\" [ngClass]=\"child.iconClass\"></i>\n {{ child.name | abpLocalization }}</a\n >\n </div>\n </ng-container>\n </ng-template>\n\n <ng-template #dropdownChild let-child>\n <div\n class=\"dropdown-submenu\"\n ngbDropdown\n #dropdownSubmenu=\"ngbDropdown\"\n placement=\"right-top\"\n [autoClose]=\"true\"\n *abpPermission=\"child.requiredPolicy\"\n >\n <div ngbDropdownToggle [class.dropdown-toggle]=\"false\">\n <a\n abpEllipsis=\"210px\"\n [abpEllipsisEnabled]=\"!smallScreen\"\n role=\"button\"\n class=\"btn d-block text-left dropdown-toggle\"\n >\n <i *ngIf=\"child.iconClass\" [ngClass]=\"child.iconClass\"></i>\n {{ child.name | abpLocalization }}\n </a>\n </div>\n <div\n #childrenContainer\n class=\"dropdown-menu border-0 shadow-sm\"\n [class.d-block]=\"smallScreen && dropdownSubmenu.isOpen()\"\n >\n <ng-container *ngTemplateOutlet=\"forTemplate; context: { $implicit: child }\"></ng-container>\n </div>\n </div>\n </ng-template>\n</ul>\n", directives: [{ type: i2__namespace$1.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { type: i2__namespace$1.NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet"] }, { type: i1__namespace.PermissionDirective, selector: "[abpPermission]", inputs: ["abpPermission"] }, { type: i2__namespace.RouterLinkWithHref, selector: "a[routerLink],area[routerLink]", inputs: ["routerLink", "target", "queryParams", "fragment", "queryParamsHandling", "preserveFragment", "skipLocationChange", "replaceUrl", "state", "relativeTo"] }, { type: i2__namespace$1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { type: i2__namespace$1.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { type: i3__namespace.NgbDropdown, selector: "[ngbDropdown]", inputs: ["open", "placement", "container", "autoClose", "display"], outputs: ["openChange"], exportAs: ["ngbDropdown"] }, { type: i3__namespace.NgbDropdownToggle, selector: "[ngbDropdownToggle]" }, { type: i1__namespace$1.EllipsisDirective, selector: "[abpEllipsis]", inputs: ["abpEllipsis", "title", "abpEllipsisEnabled"] }], pipes: { "async": i2__namespace$1.AsyncPipe, "abpLocalization": i1__namespace.LocalizationPipe } });
115
- i0__namespace.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.6", ngImport: i0__namespace, type: RoutesComponent, decorators: [{
112
+ RoutesComponent.ɵfac = i0__namespace.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "12.2.13", ngImport: i0__namespace, type: RoutesComponent, deps: [{ token: i1__namespace.RoutesService }, { token: i0__namespace.Renderer2 }], target: i0__namespace.ɵɵFactoryTarget.Component });
113
+ RoutesComponent.ɵcmp = i0__namespace.ɵɵ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__namespace, template: "<ul class=\"navbar-nav\">\r\n <ng-container\r\n *ngFor=\"let route of routesService.visible$ | async; trackBy: trackByFn\"\r\n [ngTemplateOutlet]=\"isDropdown(route) ? dropdownLink : defaultLink\"\r\n [ngTemplateOutletContext]=\"{ $implicit: route }\"\r\n >\r\n </ng-container>\r\n\r\n <ng-template #defaultLink let-route>\r\n <li class=\"nav-item\" *abpPermission=\"route.requiredPolicy\">\r\n <a class=\"nav-link\" [routerLink]=\"[route.path]\"\r\n ><i *ngIf=\"route.iconClass\" [ngClass]=\"route.iconClass\"></i>\r\n {{ route.name | abpLocalization }}</a\r\n >\r\n </li>\r\n </ng-template>\r\n\r\n <ng-template #dropdownLink let-route>\r\n <ng-container *ngIf=\"route.children?.length\">\r\n <li\r\n class=\"nav-item dropdown\"\r\n display=\"static\"\r\n *abpPermission=\"route.requiredPolicy\"\r\n (click)=\"\r\n rootDropdownExpand[route.name]\r\n ? (rootDropdownExpand[route.name] = false)\r\n : (rootDropdownExpand[route.name] = true)\r\n \"\r\n >\r\n <a\r\n class=\"nav-link dropdown-toggle\"\r\n data-toggle=\"dropdown\"\r\n aria-haspopup=\"true\"\r\n aria-expanded=\"false\"\r\n href=\"javascript:void(0)\"\r\n >\r\n <i *ngIf=\"route.iconClass\" [ngClass]=\"route.iconClass\"></i>\r\n {{ route.name | abpLocalization }}\r\n </a>\r\n <div\r\n #routeContainer\r\n class=\"dropdown-menu border-0 shadow-sm\"\r\n (click)=\"$event.preventDefault(); $event.stopPropagation()\"\r\n [class.d-block]=\"smallScreen && rootDropdownExpand[route.name]\"\r\n >\r\n <ng-container\r\n *ngTemplateOutlet=\"forTemplate; context: { $implicit: route }\"\r\n ></ng-container>\r\n </div>\r\n </li>\r\n </ng-container>\r\n </ng-template>\r\n\r\n <ng-template #forTemplate let-route>\r\n <ng-container *ngFor=\"let child of route.children\">\r\n <ng-template\r\n [ngTemplateOutlet]=\"child.children?.length ? dropdownChild : defaultChild\"\r\n [ngTemplateOutletContext]=\"{ $implicit: child }\"\r\n ></ng-template>\r\n </ng-container>\r\n </ng-template>\r\n\r\n <ng-template #defaultChild let-child>\r\n <ng-container *ngIf=\"child.path\">\r\n <div class=\"dropdown-submenu\" *abpPermission=\"child.requiredPolicy\">\r\n <a class=\"dropdown-item\" [routerLink]=\"[child.path]\" (click)=\"closeDropdown()\">\r\n <i *ngIf=\"child.iconClass\" [ngClass]=\"child.iconClass\"></i>\r\n {{ child.name | abpLocalization }}</a\r\n >\r\n </div>\r\n </ng-container>\r\n </ng-template>\r\n\r\n <ng-template #dropdownChild let-child>\r\n <div\r\n class=\"dropdown-submenu\"\r\n ngbDropdown\r\n #dropdownSubmenu=\"ngbDropdown\"\r\n placement=\"right-top\"\r\n [autoClose]=\"true\"\r\n *abpPermission=\"child.requiredPolicy\"\r\n >\r\n <div ngbDropdownToggle [class.dropdown-toggle]=\"false\">\r\n <a\r\n abpEllipsis=\"210px\"\r\n [abpEllipsisEnabled]=\"!smallScreen\"\r\n role=\"button\"\r\n class=\"btn d-block text-start dropdown-toggle\"\r\n >\r\n <i *ngIf=\"child.iconClass\" [ngClass]=\"child.iconClass\"></i>\r\n {{ child.name | abpLocalization }}\r\n </a>\r\n </div>\r\n <div\r\n #childrenContainer\r\n class=\"dropdown-menu dropdown-menu-start border-0 shadow-sm\"\r\n [class.d-block]=\"smallScreen && dropdownSubmenu.isOpen()\"\r\n >\r\n <ng-container *ngTemplateOutlet=\"forTemplate; context: { $implicit: child }\"></ng-container>\r\n </div>\r\n </div>\r\n </ng-template>\r\n</ul>\r\n", directives: [{ type: i2__namespace$1.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { type: i2__namespace$1.NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet"] }, { type: i1__namespace.PermissionDirective, selector: "[abpPermission]", inputs: ["abpPermission"] }, { type: i2__namespace.RouterLinkWithHref, selector: "a[routerLink],area[routerLink]", inputs: ["routerLink", "target", "queryParams", "fragment", "queryParamsHandling", "preserveFragment", "skipLocationChange", "replaceUrl", "state", "relativeTo"] }, { type: i2__namespace$1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { type: i2__namespace$1.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { type: i3__namespace.NgbDropdown, selector: "[ngbDropdown]", inputs: ["open", "placement", "container", "autoClose", "display", "dropdownClass"], outputs: ["openChange"], exportAs: ["ngbDropdown"] }, { type: i3__namespace.NgbDropdownToggle, selector: "[ngbDropdownToggle]" }, { type: i1__namespace$1.EllipsisDirective, selector: "[abpEllipsis]", inputs: ["abpEllipsis", "title", "abpEllipsisEnabled"] }], pipes: { "async": i2__namespace$1.AsyncPipe, "abpLocalization": i1__namespace.LocalizationPipe } });
114
+ i0__namespace.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.13", ngImport: i0__namespace, type: RoutesComponent, decorators: [{
116
115
  type: i0.Component,
117
116
  args: [{
118
117
  selector: 'abp-routes',
@@ -132,9 +131,9 @@
132
131
  }
133
132
  return NavItemsComponent;
134
133
  }());
135
- NavItemsComponent.ɵfac = i0__namespace.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "12.2.6", ngImport: i0__namespace, type: NavItemsComponent, deps: [{ token: i1__namespace$1.NavItemsService }], target: i0__namespace.ɵɵFactoryTarget.Component });
136
- NavItemsComponent.ɵcmp = i0__namespace.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "12.2.6", type: NavItemsComponent, selector: "abp-nav-items", ngImport: i0__namespace, template: "<ul class=\"navbar-nav\">\n <ng-container *ngFor=\"let item of navItems.items$ | async; trackBy: trackByFn\">\n <ng-container *ngIf=\"item.visible()\">\n <li class=\"nav-item d-flex align-items-center\" *abpPermission=\"item.requiredPolicy\">\n <ng-container\n *ngIf=\"item.component; else htmlTemplate\"\n [ngComponentOutlet]=\"item.component\"\n ></ng-container>\n\n <ng-template #htmlTemplate>\n <div [innerHTML]=\"item.html\" (click)=\"item.action ? item.action() : null\"></div>\n </ng-template>\n </li>\n </ng-container>\n </ng-container>\n</ul>\n", directives: [{ type: i2__namespace$1.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { type: i2__namespace$1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { type: i1__namespace.PermissionDirective, selector: "[abpPermission]", inputs: ["abpPermission"] }, { type: i2__namespace$1.NgComponentOutlet, selector: "[ngComponentOutlet]", inputs: ["ngComponentOutlet", "ngComponentOutletInjector", "ngComponentOutletContent", "ngComponentOutletNgModuleFactory"] }], pipes: { "async": i2__namespace$1.AsyncPipe } });
137
- i0__namespace.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.6", ngImport: i0__namespace, type: NavItemsComponent, decorators: [{
134
+ NavItemsComponent.ɵfac = i0__namespace.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "12.2.13", ngImport: i0__namespace, type: NavItemsComponent, deps: [{ token: i1__namespace$1.NavItemsService }], target: i0__namespace.ɵɵFactoryTarget.Component });
135
+ NavItemsComponent.ɵcmp = i0__namespace.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "12.2.13", type: NavItemsComponent, selector: "abp-nav-items", ngImport: i0__namespace, template: "<ul class=\"navbar-nav\">\r\n <ng-container *ngFor=\"let item of navItems.items$ | async; trackBy: trackByFn\">\r\n <ng-container *ngIf=\"item.visible && item.visible()\">\r\n <li class=\"nav-item d-flex align-items-center\" *abpPermission=\"item.requiredPolicy\">\r\n <ng-container\r\n *ngIf=\"item.component; else htmlTemplate\"\r\n [ngComponentOutlet]=\"item.component\"\r\n ></ng-container>\r\n\r\n <ng-template #htmlTemplate>\r\n <div [innerHTML]=\"item.html\" (click)=\"item.action ? item.action() : null\"></div>\r\n </ng-template>\r\n </li>\r\n </ng-container>\r\n </ng-container>\r\n</ul>\r\n", directives: [{ type: i2__namespace$1.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { type: i2__namespace$1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { type: i1__namespace.PermissionDirective, selector: "[abpPermission]", inputs: ["abpPermission"] }, { type: i2__namespace$1.NgComponentOutlet, selector: "[ngComponentOutlet]", inputs: ["ngComponentOutlet", "ngComponentOutletInjector", "ngComponentOutletContent", "ngComponentOutletNgModuleFactory"] }], pipes: { "async": i2__namespace$1.AsyncPipe } });
136
+ i0__namespace.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.13", ngImport: i0__namespace, type: NavItemsComponent, decorators: [{
138
137
  type: i0.Component,
139
138
  args: [{
140
139
  selector: 'abp-nav-items',
@@ -148,9 +147,9 @@
148
147
  }
149
148
  return PageAlertContainerComponent;
150
149
  }());
151
- PageAlertContainerComponent.ɵfac = i0__namespace.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "12.2.6", ngImport: i0__namespace, type: PageAlertContainerComponent, deps: [{ token: i1__namespace$1.PageAlertService }], target: i0__namespace.ɵɵFactoryTarget.Component });
152
- PageAlertContainerComponent.ɵcmp = i0__namespace.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "12.2.6", type: PageAlertContainerComponent, selector: "abp-page-alert-container", ngImport: i0__namespace, 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__namespace$1.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { type: i2__namespace$1.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { type: i2__namespace$1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }], pipes: { "async": i2__namespace$1.AsyncPipe, "abpLocalization": i1__namespace.LocalizationPipe }, encapsulation: i0__namespace.ViewEncapsulation.None });
153
- i0__namespace.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.6", ngImport: i0__namespace, type: PageAlertContainerComponent, decorators: [{
150
+ PageAlertContainerComponent.ɵfac = i0__namespace.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "12.2.13", ngImport: i0__namespace, type: PageAlertContainerComponent, deps: [{ token: i1__namespace$1.PageAlertService }], target: i0__namespace.ɵɵFactoryTarget.Component });
151
+ PageAlertContainerComponent.ɵcmp = i0__namespace.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "12.2.13", type: PageAlertContainerComponent, selector: "abp-page-alert-container", ngImport: i0__namespace, template: "<ng-container *ngFor=\"let alert of service.alerts$ | async; let i = index\">\r\n <div\r\n class=\"alert alert-{{ alert.type }} fade show\"\r\n [ngClass]=\"{ 'alert-dismissible fade show': alert.dismissible }\"\r\n role=\"alert\"\r\n >\r\n <h4 class=\"alert-heading\" *ngIf=\"alert.title\">\r\n {{ alert.title | abpLocalization: alert.titleLocalizationParams }}\r\n </h4>\r\n {{ alert.message | abpLocalization: alert.messageLocalizationParams }}\r\n <button\r\n *ngIf=\"alert.dismissible\"\r\n type=\"button\"\r\n class=\"btn-close\"\r\n data-dismiss=\"alert\"\r\n aria-label=\"Close\"\r\n (click)=\"service.remove(i)\"\r\n ></button>\r\n </div>\r\n</ng-container>\r\n", directives: [{ type: i2__namespace$1.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { type: i2__namespace$1.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { type: i2__namespace$1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }], pipes: { "async": i2__namespace$1.AsyncPipe, "abpLocalization": i1__namespace.LocalizationPipe }, encapsulation: i0__namespace.ViewEncapsulation.None });
152
+ i0__namespace.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.13", ngImport: i0__namespace, type: PageAlertContainerComponent, decorators: [{
154
153
  type: i0.Component,
155
154
  args: [{
156
155
  selector: 'abp-page-alert-container',
@@ -165,9 +164,9 @@
165
164
  }
166
165
  return TenantBoxComponent;
167
166
  }());
168
- TenantBoxComponent.ɵfac = i0__namespace.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "12.2.6", ngImport: i0__namespace, type: TenantBoxComponent, deps: [{ token: i1__namespace$2.TenantBoxService }], target: i0__namespace.ɵɵFactoryTarget.Component });
169
- TenantBoxComponent.ɵcmp = i0__namespace.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "12.2.6", type: TenantBoxComponent, selector: "abp-tenant-box", providers: [i1$2.TenantBoxService], ngImport: i0__namespace, template: "<ng-container *ngIf=\"(service.currentTenant$ | async) || {} as currentTenant\">\n <div class=\"card shadow-sm rounded mb-3\">\n <div class=\"card-body px-5\">\n <div class=\"row\">\n <div class=\"col\">\n <span style=\"font-size: 0.8em\" class=\"text-uppercase text-muted\">{{\n 'AbpUiMultiTenancy::Tenant' | abpLocalization\n }}</span\n ><br />\n <h6 class=\"m-0 d-inline-block\">\n <i>{{ currentTenant.name || ('AbpUiMultiTenancy::NotSelected' | abpLocalization) }}</i>\n </h6>\n </div>\n <div class=\"col-auto\">\n <a\n id=\"AbpTenantSwitchLink\"\n href=\"javascript:void(0);\"\n class=\"btn btn-sm mt-3 btn-outline-primary\"\n (click)=\"service.onSwitch()\"\n >{{ 'AbpUiMultiTenancy::Switch' | abpLocalization }}</a\n >\n </div>\n </div>\n </div>\n </div>\n\n <abp-modal [(visible)]=\"service.isModalVisible\" [busy]=\"service.modalBusy\">\n <ng-template #abpHeader>\n <h5>Switch Tenant</h5>\n </ng-template>\n <ng-template #abpBody>\n <form (ngSubmit)=\"service.save()\">\n <div class=\"mt-2\">\n <div class=\"form-group\">\n <label for=\"name\">{{ 'AbpUiMultiTenancy::Name' | abpLocalization }}</label>\n <input\n [(ngModel)]=\"service.name\"\n type=\"text\"\n id=\"name\"\n name=\"tenant\"\n class=\"form-control\"\n autofocus\n />\n </div>\n <p>{{ 'AbpUiMultiTenancy::SwitchTenantHint' | abpLocalization }}</p>\n </div>\n </form>\n </ng-template>\n <ng-template #abpFooter>\n <button abpClose type=\"button\" class=\"btn btn-secondary\">\n {{ 'AbpTenantManagement::Cancel' | abpLocalization }}\n </button>\n <abp-button\n type=\"abp-button\"\n iconClass=\"fa fa-check\"\n (click)=\"service.save()\"\n [disabled]=\"currentTenant?.name === service.name\"\n >\n <span>{{ 'AbpTenantManagement::Save' | abpLocalization }}</span>\n </abp-button>\n </ng-template>\n </abp-modal>\n</ng-container>\n", components: [{ type: i1__namespace$1.ModalComponent, selector: "abp-modal", inputs: ["visible", "busy", "options", "suppressUnsavedChangesWarning"], outputs: ["visibleChange", "init", "appear", "disappear"] }, { type: i1__namespace$1.ButtonComponent, selector: "abp-button", inputs: ["buttonId", "buttonClass", "buttonType", "iconClass", "loading", "disabled", "attributes"], outputs: ["click", "focus", "blur", "abpClick", "abpFocus", "abpBlur"] }], directives: [{ type: i2__namespace$1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { type: i4__namespace.ɵNgNoValidate, selector: "form:not([ngNoForm]):not([ngNativeValidate])" }, { type: i4__namespace.NgControlStatusGroup, selector: "[formGroupName],[formArrayName],[ngModelGroup],[formGroup],form:not([ngNoForm]),[ngForm]" }, { type: i4__namespace.NgForm, selector: "form:not([ngNoForm]):not([formGroup]),ng-form,[ngForm]", inputs: ["ngFormOptions"], outputs: ["ngSubmit"], exportAs: ["ngForm"] }, { type: i4__namespace.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__namespace.AutofocusDirective, selector: "[autofocus]", inputs: ["autofocus"] }, { type: i4__namespace.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { type: i4__namespace.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }, { type: i1__namespace$1.ModalCloseDirective, selector: "[abpClose]" }], pipes: { "async": i2__namespace$1.AsyncPipe, "abpLocalization": i1__namespace.LocalizationPipe } });
170
- i0__namespace.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.6", ngImport: i0__namespace, type: TenantBoxComponent, decorators: [{
167
+ TenantBoxComponent.ɵfac = i0__namespace.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "12.2.13", ngImport: i0__namespace, type: TenantBoxComponent, deps: [{ token: i1__namespace$2.TenantBoxService }], target: i0__namespace.ɵɵFactoryTarget.Component });
168
+ TenantBoxComponent.ɵcmp = i0__namespace.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "12.2.13", type: TenantBoxComponent, selector: "abp-tenant-box", providers: [i1$2.TenantBoxService], ngImport: i0__namespace, template: "<ng-container *ngIf=\"(service.currentTenant$ | async) || { name: '' } as currentTenant\">\r\n <div class=\"card shadow-sm rounded mb-3\">\r\n <div class=\"card-body px-5\">\r\n <div class=\"row\">\r\n <div class=\"col\">\r\n <span style=\"font-size: 0.8em\" class=\"text-uppercase text-muted\">{{\r\n 'AbpUiMultiTenancy::Tenant' | abpLocalization\r\n }}</span\r\n ><br />\r\n <h6 class=\"m-0 d-inline-block\">\r\n <i>{{ currentTenant.name || ('AbpUiMultiTenancy::NotSelected' | abpLocalization) }}</i>\r\n </h6>\r\n </div>\r\n <div class=\"col-auto\">\r\n <a\r\n id=\"AbpTenantSwitchLink\"\r\n href=\"javascript:void(0);\"\r\n class=\"btn btn-sm mt-3 btn-outline-primary\"\r\n (click)=\"service.onSwitch()\"\r\n >{{ 'AbpUiMultiTenancy::Switch' | abpLocalization }}</a\r\n >\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n\r\n <abp-modal [(visible)]=\"service.isModalVisible\" [busy]=\"service.modalBusy\">\r\n <ng-template #abpHeader>\r\n <h5>Switch Tenant</h5>\r\n </ng-template>\r\n <ng-template #abpBody>\r\n <form (ngSubmit)=\"service.save()\">\r\n <div class=\"mt-2\">\r\n <div class=\"mb-3 form-group\">\r\n <label for=\"name\" class=\"form-label\">{{\r\n 'AbpUiMultiTenancy::Name' | abpLocalization\r\n }}</label>\r\n <input\r\n [(ngModel)]=\"service.name\"\r\n type=\"text\"\r\n id=\"name\"\r\n name=\"tenant\"\r\n class=\"form-control\"\r\n autofocus\r\n />\r\n </div>\r\n <p>{{ 'AbpUiMultiTenancy::SwitchTenantHint' | abpLocalization }}</p>\r\n </div>\r\n </form>\r\n </ng-template>\r\n <ng-template #abpFooter>\r\n <button abpClose type=\"button\" class=\"btn btn-secondary\">\r\n {{ 'AbpTenantManagement::Cancel' | abpLocalization }}\r\n </button>\r\n <abp-button\r\n type=\"abp-button\"\r\n iconClass=\"fa fa-check\"\r\n (click)=\"service.save()\"\r\n [disabled]=\"currentTenant?.name === service.name\"\r\n >\r\n <span>{{ 'AbpTenantManagement::Save' | abpLocalization }}</span>\r\n </abp-button>\r\n </ng-template>\r\n </abp-modal>\r\n</ng-container>\r\n", components: [{ type: i1__namespace$1.ModalComponent, selector: "abp-modal", inputs: ["visible", "busy", "options", "suppressUnsavedChangesWarning"], outputs: ["visibleChange", "init", "appear", "disappear"] }, { type: i1__namespace$1.ButtonComponent, selector: "abp-button", inputs: ["buttonId", "buttonClass", "buttonType", "iconClass", "loading", "disabled", "attributes"], outputs: ["click", "focus", "blur", "abpClick", "abpFocus", "abpBlur"] }], directives: [{ type: i2__namespace$1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { type: i4__namespace.ɵNgNoValidate, selector: "form:not([ngNoForm]):not([ngNativeValidate])" }, { type: i4__namespace.NgControlStatusGroup, selector: "[formGroupName],[formArrayName],[ngModelGroup],[formGroup],form:not([ngNoForm]),[ngForm]" }, { type: i4__namespace.NgForm, selector: "form:not([ngNoForm]):not([formGroup]),ng-form,[ngForm]", inputs: ["ngFormOptions"], outputs: ["ngSubmit"], exportAs: ["ngForm"] }, { type: i4__namespace.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__namespace.AutofocusDirective, selector: "[autofocus]", inputs: ["autofocus"] }, { type: i4__namespace.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { type: i4__namespace.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }, { type: i1__namespace$1.ModalCloseDirective, selector: "[abpClose]" }], pipes: { "async": i2__namespace$1.AsyncPipe, "abpLocalization": i1__namespace.LocalizationPipe } });
169
+ i0__namespace.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.13", ngImport: i0__namespace, type: TenantBoxComponent, decorators: [{
171
170
  type: i0.Component,
172
171
  args: [{
173
172
  selector: 'abp-tenant-box',
@@ -182,9 +181,9 @@
182
181
  }
183
182
  return AuthWrapperComponent;
184
183
  }());
185
- AuthWrapperComponent.ɵfac = i0__namespace.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "12.2.6", ngImport: i0__namespace, type: AuthWrapperComponent, deps: [{ token: i1__namespace$2.AuthWrapperService }], target: i0__namespace.ɵɵFactoryTarget.Component });
186
- AuthWrapperComponent.ɵcmp = i0__namespace.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "12.2.6", type: AuthWrapperComponent, selector: "abp-auth-wrapper", providers: [i1$2.AuthWrapperService], ngImport: i0__namespace, 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__namespace$1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { type: i1__namespace.ReplaceableTemplateDirective, selector: "[abpReplaceableTemplate]", inputs: ["abpReplaceableTemplate"] }], pipes: { "async": i2__namespace$1.AsyncPipe, "abpLocalization": i1__namespace.LocalizationPipe } });
187
- i0__namespace.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.6", ngImport: i0__namespace, type: AuthWrapperComponent, decorators: [{
184
+ AuthWrapperComponent.ɵfac = i0__namespace.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "12.2.13", ngImport: i0__namespace, type: AuthWrapperComponent, deps: [{ token: i1__namespace$2.AuthWrapperService }], target: i0__namespace.ɵɵFactoryTarget.Component });
185
+ AuthWrapperComponent.ɵcmp = i0__namespace.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "12.2.13", type: AuthWrapperComponent, selector: "abp-auth-wrapper", providers: [i1$2.AuthWrapperService], ngImport: i0__namespace, template: "<div class=\"row\">\r\n <div class=\"mx-auto col col-md-5\">\r\n <ng-container *ngIf=\"(service.isMultiTenancyEnabled$ | async) && service.isTenantBoxVisible\">\r\n <abp-tenant-box\r\n *abpReplaceableTemplate=\"{ componentKey: service.tenantBoxKey }\"\r\n ></abp-tenant-box>\r\n </ng-container>\r\n\r\n <div class=\"abp-account-container\">\r\n <div\r\n *ngIf=\"service.enableLocalLogin$ | async; else disableLocalLoginTemplate\"\r\n class=\"card mt-3 shadow-sm rounded\"\r\n >\r\n <div class=\"card-body p-5\">\r\n <ng-content></ng-content>\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n</div>\r\n\r\n<ng-template #disableLocalLoginTemplate>\r\n <div class=\"alert alert-warning\">\r\n <strong>{{ 'AbpAccount::InvalidLoginRequest' | abpLocalization }}</strong>\r\n {{ 'AbpAccount::ThereAreNoLoginSchemesConfiguredForThisClient' | abpLocalization }}\r\n </div>\r\n</ng-template>\r\n", components: [{ type: TenantBoxComponent, selector: "abp-tenant-box" }], directives: [{ type: i2__namespace$1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { type: i1__namespace.ReplaceableTemplateDirective, selector: "[abpReplaceableTemplate]", inputs: ["abpReplaceableTemplate"] }], pipes: { "async": i2__namespace$1.AsyncPipe, "abpLocalization": i1__namespace.LocalizationPipe } });
186
+ i0__namespace.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.13", ngImport: i0__namespace, type: AuthWrapperComponent, decorators: [{
188
187
  type: i0.Component,
189
188
  args: [{
190
189
  selector: 'abp-auth-wrapper',
@@ -205,9 +204,9 @@
205
204
  }());
206
205
  // required for dynamic component
207
206
  AccountLayoutComponent.type = "account" /* account */;
208
- AccountLayoutComponent.ɵfac = i0__namespace.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "12.2.6", ngImport: i0__namespace, type: AccountLayoutComponent, deps: [{ token: LayoutService }], target: i0__namespace.ɵɵFactoryTarget.Component });
209
- AccountLayoutComponent.ɵcmp = i0__namespace.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "12.2.6", type: AccountLayoutComponent, selector: "abp-layout-account", providers: [LayoutService, i1.SubscriptionService], ngImport: i0__namespace, 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__namespace.NgbNavbar, selector: ".navbar" }, { type: i1__namespace.ReplaceableTemplateDirective, selector: "[abpReplaceableTemplate]", inputs: ["abpReplaceableTemplate"] }, { type: i2__namespace$1.NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet"] }, { type: i2__namespace$1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { type: i2__namespace.RouterOutlet, selector: "router-outlet", outputs: ["activate", "deactivate"], exportAs: ["outlet"] }] });
210
- i0__namespace.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.6", ngImport: i0__namespace, type: AccountLayoutComponent, decorators: [{
207
+ AccountLayoutComponent.ɵfac = i0__namespace.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "12.2.13", ngImport: i0__namespace, type: AccountLayoutComponent, deps: [{ token: LayoutService }], target: i0__namespace.ɵɵFactoryTarget.Component });
208
+ AccountLayoutComponent.ɵcmp = i0__namespace.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "12.2.13", type: AccountLayoutComponent, selector: "abp-layout-account", providers: [LayoutService, i1.SubscriptionService], ngImport: i0__namespace, template: "<nav\r\n class=\"navbar navbar-expand-lg navbar-dark bg-dark shadow-sm flex-column flex-md-row mb-4\"\r\n id=\"main-navbar\"\r\n style=\"min-height: 4rem\"\r\n>\r\n <div class=\"container\">\r\n <abp-logo *abpReplaceableTemplate=\"{ componentKey: service.logoComponentKey }\"></abp-logo>\r\n <button\r\n class=\"navbar-toggler\"\r\n type=\"button\"\r\n [attr.aria-expanded]=\"!service.isCollapsed\"\r\n (click)=\"service.isCollapsed = !service.isCollapsed\"\r\n >\r\n <span class=\"navbar-toggler-icon\"></span>\r\n </button>\r\n <div\r\n class=\"navbar-collapse\"\r\n [class.overflow-hidden]=\"service.smallScreen\"\r\n id=\"main-navbar-collapse\"\r\n >\r\n <ng-container *ngTemplateOutlet=\"!service.smallScreen ? navigations : null\"></ng-container>\r\n\r\n <div\r\n *ngIf=\"service.smallScreen\"\r\n [@collapseWithMargin]=\"service.isCollapsed ? 'collapsed' : 'expanded'\"\r\n >\r\n <ng-container *ngTemplateOutlet=\"navigations\"></ng-container>\r\n </div>\r\n\r\n <ng-template #navigations>\r\n <abp-routes\r\n *abpReplaceableTemplate=\"{\r\n componentKey: service.routesComponentKey,\r\n inputs: {\r\n smallScreen: { value: service.smallScreen }\r\n }\r\n }\"\r\n class=\"mx-auto\"\r\n [smallScreen]=\"service.smallScreen\"\r\n ></abp-routes>\r\n\r\n <abp-nav-items\r\n *abpReplaceableTemplate=\"{\r\n componentKey: service.navItemsComponentKey\r\n }\"\r\n ></abp-nav-items>\r\n </ng-template>\r\n </div>\r\n </div>\r\n</nav>\r\n\r\n<!-- [@slideFromBottom]=\"outlet.isActivated && outlet.activatedRoute?.routeConfig?.path\" TODO: throws ExpressionChangedAfterItHasBeenCheck when animation is active. It should be fixed -->\r\n<div class=\"container\">\r\n <abp-page-alert-container></abp-page-alert-container>\r\n <abp-auth-wrapper\r\n *abpReplaceableTemplate=\"{\r\n componentKey: authWrapperKey\r\n }\"\r\n >\r\n <router-outlet #outlet=\"outlet\"></router-outlet>\r\n </abp-auth-wrapper>\r\n</div>\r\n", components: [{ type: 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__namespace.NgbNavbar, selector: ".navbar" }, { type: i1__namespace.ReplaceableTemplateDirective, selector: "[abpReplaceableTemplate]", inputs: ["abpReplaceableTemplate"] }, { type: i2__namespace$1.NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet"] }, { type: i2__namespace$1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { type: i2__namespace.RouterOutlet, selector: "router-outlet", outputs: ["activate", "deactivate"], exportAs: ["outlet"] }] });
209
+ i0__namespace.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.13", ngImport: i0__namespace, type: AccountLayoutComponent, decorators: [{
211
210
  type: i0.Component,
212
211
  args: [{
213
212
  selector: 'abp-layout-account',
@@ -227,9 +226,9 @@
227
226
  }());
228
227
  // required for dynamic component
229
228
  ApplicationLayoutComponent.type = "application" /* application */;
230
- ApplicationLayoutComponent.ɵfac = i0__namespace.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "12.2.6", ngImport: i0__namespace, type: ApplicationLayoutComponent, deps: [{ token: LayoutService }], target: i0__namespace.ɵɵFactoryTarget.Component });
231
- ApplicationLayoutComponent.ɵcmp = i0__namespace.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "12.2.6", type: ApplicationLayoutComponent, selector: "abp-layout-application", providers: [LayoutService, i1.SubscriptionService], ngImport: i0__namespace, 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__namespace.NgbNavbar, selector: ".navbar" }, { type: i1__namespace.ReplaceableTemplateDirective, selector: "[abpReplaceableTemplate]", inputs: ["abpReplaceableTemplate"] }, { type: i2__namespace$1.NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet"] }, { type: i2__namespace$1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { type: i2__namespace.RouterOutlet, selector: "router-outlet", outputs: ["activate", "deactivate"], exportAs: ["outlet"] }], animations: [i1$1.slideFromBottom, i1$1.collapseWithMargin] });
232
- i0__namespace.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.6", ngImport: i0__namespace, type: ApplicationLayoutComponent, decorators: [{
229
+ ApplicationLayoutComponent.ɵfac = i0__namespace.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "12.2.13", ngImport: i0__namespace, type: ApplicationLayoutComponent, deps: [{ token: LayoutService }], target: i0__namespace.ɵɵFactoryTarget.Component });
230
+ ApplicationLayoutComponent.ɵcmp = i0__namespace.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "12.2.13", type: ApplicationLayoutComponent, selector: "abp-layout-application", providers: [LayoutService, i1.SubscriptionService], ngImport: i0__namespace, template: "<nav\r\n class=\"navbar navbar-expand-lg navbar-dark bg-dark shadow-sm flex-column flex-md-row mb-4\"\r\n id=\"main-navbar\"\r\n style=\"min-height: 4rem\"\r\n>\r\n <div class=\"container\">\r\n <abp-logo *abpReplaceableTemplate=\"{ componentKey: service.logoComponentKey }\"></abp-logo>\r\n <button\r\n class=\"navbar-toggler\"\r\n type=\"button\"\r\n [attr.aria-expanded]=\"!service.isCollapsed\"\r\n (click)=\"service.isCollapsed = !service.isCollapsed\"\r\n >\r\n <span class=\"navbar-toggler-icon\"></span>\r\n </button>\r\n <div class=\"navbar-collapse\" [class.overflow-hidden]=\"service.smallScreen\" id=\"main-navbar-collapse\">\r\n <ng-container *ngTemplateOutlet=\"!service.smallScreen ? navigations : null\"></ng-container>\r\n\r\n <div *ngIf=\"service.smallScreen\" [@collapseWithMargin]=\"service.isCollapsed ? 'collapsed' : 'expanded'\">\r\n <ng-container *ngTemplateOutlet=\"navigations\"></ng-container>\r\n </div>\r\n\r\n <ng-template #navigations>\r\n <abp-routes\r\n *abpReplaceableTemplate=\"{\r\n componentKey: service.routesComponentKey,\r\n inputs: {\r\n smallScreen: { value: service.smallScreen }\r\n }\r\n }\"\r\n class=\"mx-auto\"\r\n [smallScreen]=\"service.smallScreen\"\r\n ></abp-routes>\r\n\r\n <abp-nav-items\r\n *abpReplaceableTemplate=\"{\r\n componentKey: service.navItemsComponentKey\r\n }\"\r\n ></abp-nav-items>\r\n </ng-template>\r\n </div>\r\n </div>\r\n</nav>\r\n\r\n<!-- [@slideFromBottom]=\"outlet.isActivated && outlet.activatedRoute?.routeConfig?.path\" TODO: throws ExpressionChangedAfterItHasBeenCheck when animation is active. It should be fixed -->\r\n<div class=\"container\">\r\n <abp-page-alert-container></abp-page-alert-container>\r\n\r\n <router-outlet #outlet=\"outlet\"></router-outlet>\r\n</div>\r\n", components: [{ type: 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__namespace.NgbNavbar, selector: ".navbar" }, { type: i1__namespace.ReplaceableTemplateDirective, selector: "[abpReplaceableTemplate]", inputs: ["abpReplaceableTemplate"] }, { type: i2__namespace$1.NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet"] }, { type: i2__namespace$1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { type: i2__namespace.RouterOutlet, selector: "router-outlet", outputs: ["activate", "deactivate"], exportAs: ["outlet"] }], animations: [i1$1.slideFromBottom, i1$1.collapseWithMargin] });
231
+ i0__namespace.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.13", ngImport: i0__namespace, type: ApplicationLayoutComponent, decorators: [{
233
232
  type: i0.Component,
234
233
  args: [{
235
234
  selector: 'abp-layout-application',
@@ -245,9 +244,9 @@
245
244
  return EmptyLayoutComponent;
246
245
  }());
247
246
  EmptyLayoutComponent.type = "empty" /* empty */;
248
- EmptyLayoutComponent.ɵfac = i0__namespace.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "12.2.6", ngImport: i0__namespace, type: EmptyLayoutComponent, deps: [], target: i0__namespace.ɵɵFactoryTarget.Component });
249
- EmptyLayoutComponent.ɵcmp = i0__namespace.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "12.2.6", type: EmptyLayoutComponent, selector: "abp-layout-empty", ngImport: i0__namespace, template: "\n <router-outlet></router-outlet>\n <abp-confirmation></abp-confirmation>\n ", isInline: true, components: [{ type: i1__namespace$1.ConfirmationComponent, selector: "abp-confirmation" }], directives: [{ type: i2__namespace.RouterOutlet, selector: "router-outlet", outputs: ["activate", "deactivate"], exportAs: ["outlet"] }] });
250
- i0__namespace.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.6", ngImport: i0__namespace, type: EmptyLayoutComponent, decorators: [{
247
+ EmptyLayoutComponent.ɵfac = i0__namespace.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "12.2.13", ngImport: i0__namespace, type: EmptyLayoutComponent, deps: [], target: i0__namespace.ɵɵFactoryTarget.Component });
248
+ EmptyLayoutComponent.ɵcmp = i0__namespace.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "12.2.13", type: EmptyLayoutComponent, selector: "abp-layout-empty", ngImport: i0__namespace, template: "\n <router-outlet></router-outlet>\n <abp-confirmation></abp-confirmation>\n ", isInline: true, components: [{ type: i1__namespace$1.ConfirmationComponent, selector: "abp-confirmation" }], directives: [{ type: i2__namespace.RouterOutlet, selector: "router-outlet", outputs: ["activate", "deactivate"], exportAs: ["outlet"] }] });
249
+ i0__namespace.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.13", ngImport: i0__namespace, type: EmptyLayoutComponent, decorators: [{
251
250
  type: i0.Component,
252
251
  args: [{
253
252
  selector: 'abp-layout-empty',
@@ -279,9 +278,9 @@
279
278
  };
280
279
  return CurrentUserComponent;
281
280
  }());
282
- CurrentUserComponent.ɵfac = i0__namespace.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "12.2.6", ngImport: i0__namespace, type: CurrentUserComponent, deps: [{ token: i1.NAVIGATE_TO_MANAGE_PROFILE }, { token: i1__namespace.AuthService }, { token: i1__namespace.ConfigStateService }, { token: i1__namespace.SessionStateService }], target: i0__namespace.ɵɵFactoryTarget.Component });
283
- CurrentUserComponent.ɵcmp = i0__namespace.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "12.2.6", type: CurrentUserComponent, selector: "abp-current-user", ngImport: i0__namespace, template: "<ng-template #loginBtn>\n <a role=\"button\" class=\"nav-link pointer\" (click)=\"navigateToLogin()\">{{\n 'AbpAccount::Login' | abpLocalization\n }}</a>\n</ng-template>\n<div\n *ngIf=\"(currentUser$ | async)?.isAuthenticated; else loginBtn\"\n ngbDropdown\n class=\"dropdown\"\n #currentUserDropdown=\"ngbDropdown\"\n display=\"static\"\n>\n <a\n ngbDropdownToggle\n class=\"nav-link\"\n href=\"javascript:void(0)\"\n role=\"button\"\n id=\"dropdownMenuLink\"\n data-toggle=\"dropdown\"\n aria-haspopup=\"true\"\n aria-expanded=\"false\"\n >\n <small *ngIf=\"(selectedTenant$ | async)?.name as tenantName\"\n ><i>{{ tenantName }}</i\n >\\</small\n >\n <strong>{{ (currentUser$ | async)?.userName }}</strong>\n </a>\n <div\n class=\"dropdown-menu dropdown-menu-right border-0 shadow-sm\"\n aria-labelledby=\"dropdownMenuLink\"\n [class.d-block]=\"smallScreen && currentUserDropdown.isOpen()\"\n >\n <a class=\"dropdown-item pointer\" (click)=\"navigateToManageProfile()\"\n ><i class=\"fa fa-cog mr-1\"></i>{{ 'AbpAccount::MyAccount' | abpLocalization }}</a\n >\n <a class=\"dropdown-item\" href=\"javascript:void(0)\" (click)=\"logout()\"\n ><i class=\"fa fa-power-off mr-1\"></i>{{ 'AbpUi::Logout' | abpLocalization }}</a\n >\n </div>\n</div>\n", directives: [{ type: i2__namespace$1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { type: i3__namespace.NgbDropdown, selector: "[ngbDropdown]", inputs: ["open", "placement", "container", "autoClose", "display"], outputs: ["openChange"], exportAs: ["ngbDropdown"] }, { type: i3__namespace.NgbDropdownToggle, selector: "[ngbDropdownToggle]" }], pipes: { "abpLocalization": i1__namespace.LocalizationPipe, "async": i2__namespace$1.AsyncPipe } });
284
- i0__namespace.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.6", ngImport: i0__namespace, type: CurrentUserComponent, decorators: [{
281
+ CurrentUserComponent.ɵfac = i0__namespace.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "12.2.13", ngImport: i0__namespace, type: CurrentUserComponent, deps: [{ token: i1.NAVIGATE_TO_MANAGE_PROFILE }, { token: i1__namespace.AuthService }, { token: i1__namespace.ConfigStateService }, { token: i1__namespace.SessionStateService }], target: i0__namespace.ɵɵFactoryTarget.Component });
282
+ CurrentUserComponent.ɵcmp = i0__namespace.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "12.2.13", type: CurrentUserComponent, selector: "abp-current-user", ngImport: i0__namespace, template: "<ng-template #loginBtn>\r\n <a role=\"button\" class=\"nav-link pointer\" (click)=\"navigateToLogin()\">{{\r\n 'AbpAccount::Login' | abpLocalization\r\n }}</a>\r\n</ng-template>\r\n<div\r\n *ngIf=\"(currentUser$ | async)?.isAuthenticated; else loginBtn\"\r\n ngbDropdown\r\n class=\"dropdown\"\r\n #currentUserDropdown=\"ngbDropdown\"\r\n display=\"static\"\r\n>\r\n <a\r\n ngbDropdownToggle\r\n class=\"nav-link\"\r\n href=\"javascript:void(0)\"\r\n role=\"button\"\r\n id=\"dropdownMenuLink\"\r\n data-toggle=\"dropdown\"\r\n aria-haspopup=\"true\"\r\n aria-expanded=\"false\"\r\n >\r\n <small *ngIf=\"(selectedTenant$ | async)?.name as tenantName\"\r\n ><i>{{ tenantName }}</i\r\n >\\</small\r\n >\r\n <strong>{{ (currentUser$ | async)?.userName }}</strong>\r\n </a>\r\n <div\r\n class=\"dropdown-menu dropdown-menu-end border-0 shadow-sm\"\r\n aria-labelledby=\"dropdownMenuLink\"\r\n [class.d-block]=\"smallScreen && currentUserDropdown.isOpen()\"\r\n >\r\n <a class=\"dropdown-item pointer\" (click)=\"navigateToManageProfile()\"\r\n ><i class=\"fa fa-cog me-1\"></i>{{ 'AbpAccount::MyAccount' | abpLocalization }}</a\r\n >\r\n <a class=\"dropdown-item\" href=\"javascript:void(0)\" (click)=\"logout()\"\r\n ><i class=\"fa fa-power-off me-1\"></i>{{ 'AbpUi::Logout' | abpLocalization }}</a\r\n >\r\n </div>\r\n</div>\r\n", directives: [{ type: i2__namespace$1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { type: i3__namespace.NgbDropdown, selector: "[ngbDropdown]", inputs: ["open", "placement", "container", "autoClose", "display", "dropdownClass"], outputs: ["openChange"], exportAs: ["ngbDropdown"] }, { type: i3__namespace.NgbDropdownToggle, selector: "[ngbDropdownToggle]" }], pipes: { "abpLocalization": i1__namespace.LocalizationPipe, "async": i2__namespace$1.AsyncPipe } });
283
+ i0__namespace.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.13", ngImport: i0__namespace, type: CurrentUserComponent, decorators: [{
285
284
  type: i0.Component,
286
285
  args: [{
287
286
  selector: 'abp-current-user',
@@ -310,7 +309,7 @@
310
309
  Object.defineProperty(LanguagesComponent.prototype, "defaultLanguage$", {
311
310
  get: function () {
312
311
  var _this = this;
313
- return this.languages$.pipe(operators.map(function (languages) { return (languages === null || languages === void 0 ? void 0 : languages.find(function (lang) { return lang.cultureName === _this.selectedLangCulture; }).displayName) || ''; }));
312
+ return this.languages$.pipe(operators.map(function (languages) { var _a; return ((_a = languages === null || languages === void 0 ? void 0 : languages.find(function (lang) { return lang.cultureName === _this.selectedLangCulture; })) === null || _a === void 0 ? void 0 : _a.displayName) || ''; }));
314
313
  },
315
314
  enumerable: false,
316
315
  configurable: true
@@ -335,13 +334,13 @@
335
334
  };
336
335
  return LanguagesComponent;
337
336
  }());
338
- LanguagesComponent.ɵfac = i0__namespace.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "12.2.6", ngImport: i0__namespace, type: LanguagesComponent, deps: [{ token: i1__namespace.SessionStateService }, { token: i1__namespace.ConfigStateService }], target: i0__namespace.ɵɵFactoryTarget.Component });
339
- LanguagesComponent.ɵcmp = i0__namespace.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "12.2.6", type: LanguagesComponent, selector: "abp-languages", ngImport: i0__namespace, template: "\n <div\n *ngIf=\"(dropdownLanguages$ | async)?.length > 0\"\n class=\"dropdown\"\n ngbDropdown\n #languageDropdown=\"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 {{ defaultLanguage$ | async }}\n </a>\n <div\n class=\"dropdown-menu dropdown-menu-right border-0 shadow-sm\"\n aria-labelledby=\"dropdownMenuLink\"\n [class.d-block]=\"smallScreen && languageDropdown.isOpen()\"\n >\n <a\n *ngFor=\"let lang of dropdownLanguages$ | async\"\n href=\"javascript:void(0)\"\n class=\"dropdown-item\"\n (click)=\"onChangeLang(lang.cultureName)\"\n >{{ lang?.displayName }}</a\n >\n </div>\n </div>\n ", isInline: true, directives: [{ type: i2__namespace$1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { type: i3__namespace.NgbDropdown, selector: "[ngbDropdown]", inputs: ["open", "placement", "container", "autoClose", "display"], outputs: ["openChange"], exportAs: ["ngbDropdown"] }, { type: i3__namespace.NgbDropdownToggle, selector: "[ngbDropdownToggle]" }, { type: i2__namespace$1.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }], pipes: { "async": i2__namespace$1.AsyncPipe } });
340
- i0__namespace.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.6", ngImport: i0__namespace, type: LanguagesComponent, decorators: [{
337
+ LanguagesComponent.ɵfac = i0__namespace.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "12.2.13", ngImport: i0__namespace, type: LanguagesComponent, deps: [{ token: i1__namespace.SessionStateService }, { token: i1__namespace.ConfigStateService }], target: i0__namespace.ɵɵFactoryTarget.Component });
338
+ LanguagesComponent.ɵcmp = i0__namespace.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "12.2.13", type: LanguagesComponent, selector: "abp-languages", ngImport: i0__namespace, template: "\n <div\n *ngIf=\"((dropdownLanguages$ | async)?.length || 0) > 0\"\n class=\"dropdown\"\n ngbDropdown\n #languageDropdown=\"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 {{ defaultLanguage$ | async }}\n </a>\n <div\n class=\"dropdown-menu dropdown-menu-end border-0 shadow-sm\"\n aria-labelledby=\"dropdownMenuLink\"\n [class.d-block]=\"smallScreen && languageDropdown.isOpen()\"\n >\n <a\n *ngFor=\"let lang of dropdownLanguages$ | async\"\n href=\"javascript:void(0)\"\n class=\"dropdown-item\"\n (click)=\"onChangeLang(lang.cultureName || '')\"\n >{{ lang?.displayName }}</a\n >\n </div>\n </div>\n ", isInline: true, directives: [{ type: i2__namespace$1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { type: i3__namespace.NgbDropdown, selector: "[ngbDropdown]", inputs: ["open", "placement", "container", "autoClose", "display", "dropdownClass"], outputs: ["openChange"], exportAs: ["ngbDropdown"] }, { type: i3__namespace.NgbDropdownToggle, selector: "[ngbDropdownToggle]" }, { type: i2__namespace$1.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }], pipes: { "async": i2__namespace$1.AsyncPipe } });
339
+ i0__namespace.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.13", ngImport: i0__namespace, type: LanguagesComponent, decorators: [{
341
340
  type: i0.Component,
342
341
  args: [{
343
342
  selector: 'abp-languages',
344
- template: "\n <div\n *ngIf=\"(dropdownLanguages$ | async)?.length > 0\"\n class=\"dropdown\"\n ngbDropdown\n #languageDropdown=\"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 {{ defaultLanguage$ | async }}\n </a>\n <div\n class=\"dropdown-menu dropdown-menu-right border-0 shadow-sm\"\n aria-labelledby=\"dropdownMenuLink\"\n [class.d-block]=\"smallScreen && languageDropdown.isOpen()\"\n >\n <a\n *ngFor=\"let lang of dropdownLanguages$ | async\"\n href=\"javascript:void(0)\"\n class=\"dropdown-item\"\n (click)=\"onChangeLang(lang.cultureName)\"\n >{{ lang?.displayName }}</a\n >\n </div>\n </div>\n ",
343
+ template: "\n <div\n *ngIf=\"((dropdownLanguages$ | async)?.length || 0) > 0\"\n class=\"dropdown\"\n ngbDropdown\n #languageDropdown=\"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 {{ defaultLanguage$ | async }}\n </a>\n <div\n class=\"dropdown-menu dropdown-menu-end border-0 shadow-sm\"\n aria-labelledby=\"dropdownMenuLink\"\n [class.d-block]=\"smallScreen && languageDropdown.isOpen()\"\n >\n <a\n *ngFor=\"let lang of dropdownLanguages$ | async\"\n href=\"javascript:void(0)\"\n class=\"dropdown-item\"\n (click)=\"onChangeLang(lang.cultureName || '')\"\n >{{ lang?.displayName }}</a\n >\n </div>\n </div>\n ",
345
344
  }]
346
345
  }], ctorParameters: function () { return [{ type: i1__namespace.SessionStateService }, { type: i1__namespace.ConfigStateService }]; } });
347
346
 
@@ -687,9 +686,9 @@
687
686
  });
688
687
  return ValidationErrorComponent;
689
688
  }(core.ValidationErrorComponent));
690
- ValidationErrorComponent.ɵfac = i0__namespace.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "12.2.6", ngImport: i0__namespace, type: ValidationErrorComponent, deps: null, target: i0__namespace.ɵɵFactoryTarget.Component });
691
- ValidationErrorComponent.ɵcmp = i0__namespace.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "12.2.6", type: ValidationErrorComponent, selector: "abp-validation-error", usesInheritance: true, ngImport: i0__namespace, template: "\n <div class=\"invalid-feedback\" *ngFor=\"let error of abpErrors; trackBy: trackByFn\">\n {{ error.message | abpLocalization: error.interpoliteParams }}\n </div>\n ", isInline: true, directives: [{ type: i2__namespace$1.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }], pipes: { "abpLocalization": i1__namespace.LocalizationPipe }, changeDetection: i0__namespace.ChangeDetectionStrategy.OnPush, encapsulation: i0__namespace.ViewEncapsulation.None });
692
- i0__namespace.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.6", ngImport: i0__namespace, type: ValidationErrorComponent, decorators: [{
689
+ ValidationErrorComponent.ɵfac = i0__namespace.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "12.2.13", ngImport: i0__namespace, type: ValidationErrorComponent, deps: null, target: i0__namespace.ɵɵFactoryTarget.Component });
690
+ ValidationErrorComponent.ɵcmp = i0__namespace.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "12.2.13", type: ValidationErrorComponent, selector: "abp-validation-error", usesInheritance: true, ngImport: i0__namespace, template: "\n <div class=\"invalid-feedback\" *ngFor=\"let error of abpErrors; trackBy: trackByFn\">\n {{ error.message | abpLocalization: error.interpoliteParams }}\n </div>\n ", isInline: true, directives: [{ type: i2__namespace$1.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }], pipes: { "abpLocalization": i1__namespace.LocalizationPipe }, changeDetection: i0__namespace.ChangeDetectionStrategy.OnPush, encapsulation: i0__namespace.ViewEncapsulation.None });
691
+ i0__namespace.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.13", ngImport: i0__namespace, type: ValidationErrorComponent, decorators: [{
693
692
  type: i0.Component,
694
693
  args: [{
695
694
  selector: 'abp-validation-error',
@@ -699,6 +698,92 @@
699
698
  }]
700
699
  }] });
701
700
 
701
+ var LAZY_STYLES = new i0.InjectionToken('LAZY_STYLES');
702
+
703
+ var BOOTSTRAP = 'bootstrap-{{dir}}.min.css';
704
+ var LazyStyleHandler = /** @class */ (function () {
705
+ function LazyStyleHandler(injector) {
706
+ this._dir = 'ltr';
707
+ this.loaded = new Map();
708
+ this.setStyles(injector);
709
+ this.setLazyLoad(injector);
710
+ this.listenToDirectionChanges(injector);
711
+ }
712
+ Object.defineProperty(LazyStyleHandler.prototype, "dir", {
713
+ get: function () {
714
+ return this._dir;
715
+ },
716
+ set: function (dir) {
717
+ if (dir === this._dir)
718
+ return;
719
+ this.switchCSS(dir);
720
+ this._dir = dir;
721
+ },
722
+ enumerable: false,
723
+ configurable: true
724
+ });
725
+ LazyStyleHandler.prototype.getHrefFromLink = function (link) {
726
+ if (!link)
727
+ return '';
728
+ var a = document.createElement('a');
729
+ a.href = link.href;
730
+ return a.pathname.replace(/^\//, '');
731
+ };
732
+ LazyStyleHandler.prototype.getLoadedBootstrap = function () {
733
+ var href = createLazyStyleHref(BOOTSTRAP, this.dir);
734
+ var selector = "[href*=\"" + href.replace(/\.css$/, '') + "\"]";
735
+ var link = document.querySelector(selector);
736
+ return { href: href, link: link };
737
+ };
738
+ LazyStyleHandler.prototype.listenToDirectionChanges = function (injector) {
739
+ var _this = this;
740
+ var docDirHandler = injector.get(i1$1.DocumentDirHandlerService);
741
+ // will always listen, no need to unsubscribe
742
+ docDirHandler.dir$.subscribe(function (dir) {
743
+ _this.dir = dir;
744
+ });
745
+ };
746
+ LazyStyleHandler.prototype.setLazyLoad = function (injector) {
747
+ this.lazyLoad = injector.get(i1.LazyLoadService);
748
+ var _a = this.getLoadedBootstrap(), href = _a.href, link = _a.link;
749
+ this.lazyLoad.loaded.set(href, link);
750
+ };
751
+ LazyStyleHandler.prototype.setStyles = function (injector) {
752
+ this.styles = injector.get(LAZY_STYLES, [BOOTSTRAP]);
753
+ };
754
+ LazyStyleHandler.prototype.switchCSS = function (dir) {
755
+ var _this = this;
756
+ this.styles.forEach(function (style) {
757
+ var oldHref = createLazyStyleHref(style, _this.dir);
758
+ var newHref = createLazyStyleHref(style, dir);
759
+ var link = _this.loaded.get(newHref);
760
+ var href = _this.getHrefFromLink(link) || newHref;
761
+ var strategy = i1.LOADING_STRATEGY.PrependAnonymousStyleToHead(href);
762
+ _this.lazyLoad.load(strategy).subscribe(function () {
763
+ var oldLink = _this.lazyLoad.loaded.get(oldHref);
764
+ _this.loaded.delete(newHref);
765
+ _this.loaded.set(oldHref, oldLink);
766
+ var newLink = _this.lazyLoad.loaded.get(href);
767
+ _this.lazyLoad.loaded.delete(href);
768
+ _this.lazyLoad.loaded.set(newHref, newLink);
769
+ _this.lazyLoad.remove(oldHref);
770
+ });
771
+ });
772
+ };
773
+ return LazyStyleHandler;
774
+ }());
775
+ LazyStyleHandler.ɵfac = i0__namespace.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "12.2.13", ngImport: i0__namespace, type: LazyStyleHandler, deps: [{ token: i0__namespace.Injector }], target: i0__namespace.ɵɵFactoryTarget.Injectable });
776
+ LazyStyleHandler.ɵprov = i0__namespace.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "12.2.13", ngImport: i0__namespace, type: LazyStyleHandler });
777
+ i0__namespace.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.13", ngImport: i0__namespace, type: LazyStyleHandler, decorators: [{
778
+ type: i0.Injectable
779
+ }], ctorParameters: function () { return [{ type: i0__namespace.Injector }]; } });
780
+ function createLazyStyleHref(style, dir) {
781
+ return style.replace(/{{\s*dir\s*}}/g, dir);
782
+ }
783
+ function initLazyStyleHandler(injector) {
784
+ return function () { return new LazyStyleHandler(injector); };
785
+ }
786
+
702
787
  var BASIC_THEME_NAV_ITEM_PROVIDERS = [
703
788
  {
704
789
  provide: i0.APP_INITIALIZER,
@@ -724,7 +809,7 @@
724
809
  };
725
810
  }
726
811
 
727
- var styles = "\n.content-header-title {\n font-size: 24px;\n}\n.entry-row {\n margin-bottom: 15px;\n}\n#main-navbar-tools a.dropdown-toggle {\n text-decoration: none;\n color: #fff;\n}\n.navbar .dropdown-submenu {\n position: relative;\n}\n.navbar .dropdown-menu {\n margin: 0;\n padding: 0;\n}\n.navbar .dropdown-menu a {\n font-size: .9em;\n padding: 10px 15px;\n display: block;\n min-width: 210px;\n text-align: left;\n border-radius: 0.25rem;\n min-height: 44px;\n}\n[dir=rtl] .navbar .dropdown-menu a {\n text-align: right!important;\n}\n.navbar .dropdown-submenu a::after {\n transform: rotate(-90deg);\n position: absolute;\n right: 16px;\n top: 18px;\n}\n[dir=rtl] .navbar .dropdown-submenu a::after {\n transform: rotate(90deg);\n left: 16px;\n right: auto;\n top: 20px;\n}\n.navbar .dropdown-submenu .dropdown-menu {\n top: 0;\n left: 100%;\n}\n.card-header .btn {\n padding: 2px 6px;\n}\n.card-header h5 {\n margin: 0;\n}\n.container > .card {\n box-shadow: 0 0.125rem 0.25rem rgba(0, 0, 0, 0.075) !important;\n}\n@media screen and (min-width: 992px) {\n .navbar .dropdown:hover > .dropdown-menu {\n display: block;\n }\n\n .navbar .dropdown-submenu:hover > .dropdown-menu {\n display: block;\n }\n}\n.input-validation-error {\n border-color: #dc3545;\n}\n.field-validation-error {\n font-size: 0.8em;\n}\n.ui-table .ui-table-tbody > tr.empty-row > div.empty-row-content {\n border: 1px solid #c8c8c8;\n }\n.abp-loading {\n background: rgba(0, 0, 0, 0.05);\n}\n.modal-backdrop {\nbackground-color: rgba(0, 0, 0, 0.6);\n}\n\n.confirmation .confirmation-backdrop {\n\t background: rgba(0, 0, 0, 0.7) !important;\n}\n .confirmation .confirmation-dialog {\n\t border: none;\n\t border-radius: 10px;\n\t background-color: #fff;\n\t box-shadow: 0 0 10px -5px rgba(0, 0, 0, 0.5);\n}\n .confirmation .confirmation-dialog .icon-container .icon {\n\t stroke: #fff;\n\t color: #fff;\n}\n .confirmation .confirmation-dialog .icon-container.info .icon {\n\t stroke: #2f96b4;\n\t color: #2f96b4;\n}\n .confirmation .confirmation-dialog .icon-container.success .icon {\n\t stroke: #51a351;\n\t color: #51a351;\n}\n .confirmation .confirmation-dialog .icon-container.warning .icon {\n\t stroke: #f89406;\n\t color: #f89406;\n}\n .confirmation .confirmation-dialog .icon-container.error .icon {\n\t stroke: #bd362f;\n\t color: #bd362f;\n}\n .confirmation .confirmation-dialog .content .title {\n\t color: #222;\n}\n .confirmation .confirmation-dialog .content .message {\n\t color: #777;\n}\n .confirmation .confirmation-dialog .footer {\n\t background: transparent;\n}\n .confirmation .confirmation-dialog .footer .confirmation-button {\n\t background-color: #eee;\n\t color: #777;\n}\n .confirmation .confirmation-dialog .footer .confirmation-button:hover, .confirmation .confirmation-dialog .footer .confirmation-button:focus, .confirmation .confirmation-dialog .footer .confirmation-button:active {\n\t background-color: #bbb;\n}\n .confirmation .confirmation-dialog .footer .confirmation-button--confirm {\n\t background-color: #2f96b4;\n\t color: #fff;\n}\n .confirmation .confirmation-dialog .footer .confirmation-button--confirm:hover {\n\t background-color: #2e819b;\n}\n.ui-table .pagination-wrapper {\n background-color: #f4f4f4;\n border: 1px solid #c8c8c8;\n}\n.bordered .datatable-body-row {\n border-top: 1px solid #eee;\n margin-top: -1px;\n}\n.breadcrumb {\n background-color: transparent;\n padding: 0.27rem;\n}\n";
812
+ var styles = "\n.content-header-title {\n font-size: 24px;\n}\n.entry-row {\n margin-bottom: 15px;\n}\n#main-navbar-tools a.dropdown-toggle {\n text-decoration: none;\n color: #fff;\n}\n.navbar .dropdown-submenu {\n position: relative;\n}\n.navbar .dropdown-menu {\n margin: 0;\n padding: 0;\n}\n.navbar .dropdown-menu a {\n font-size: .9em;\n padding: 10px 15px;\n display: block;\n min-width: 210px;\n text-align: left;\n border-radius: 0.25rem;\n min-height: 44px;\n}\n[dir=rtl] .navbar .dropdown-menu a {\n text-align: right!important;\n}\n.navbar .dropdown-submenu a::after {\n transform: rotate(-90deg);\n position: absolute;\n right: 16px;\n top: 18px;\n}\n[dir=rtl] .navbar .dropdown-submenu a::after {\n transform: rotate(90deg);\n left: 16px;\n right: auto;\n top: 20px;\n}\n.navbar .dropdown-submenu .dropdown-menu {\n top: 0;\n left: 100%;\n}\n/* work around for rtl. Track https://github.com/ng-bootstrap/ng-bootstrap/issues/4100 issue */\n[dir=rtl] .navbar .dropdown-submenu .dropdown-menu {\n top: 0;\n right: 100%;\n}\n.card-header .btn {\n padding: 2px 6px;\n}\n.card-header h5 {\n margin: 0;\n}\n.container > .card {\n box-shadow: 0 0.125rem 0.25rem rgba(0, 0, 0, 0.075) !important;\n}\n@media screen and (min-width: 992px) {\n .navbar .dropdown:hover > .dropdown-menu {\n display: block;\n }\n\n .navbar .dropdown-submenu:hover > .dropdown-menu {\n display: block;\n }\n}\n.input-validation-error {\n border-color: #dc3545;\n}\n.field-validation-error {\n font-size: 0.8em;\n}\n.ui-table .ui-table-tbody > tr.empty-row > div.empty-row-content {\n border: 1px solid #c8c8c8;\n }\n.abp-loading {\n background: rgba(0, 0, 0, 0.05);\n}\n.modal-backdrop {\nbackground-color: rgba(0, 0, 0, 0.6);\n}\n\n.confirmation .confirmation-backdrop {\n\t background: rgba(0, 0, 0, 0.7) !important;\n}\n .confirmation .confirmation-dialog {\n\t border: none;\n\t border-radius: 10px;\n\t background-color: #fff;\n\t box-shadow: 0 0 10px -5px rgba(0, 0, 0, 0.5);\n}\n .confirmation .confirmation-dialog .icon-container .icon {\n\t stroke: #fff;\n\t color: #fff;\n}\n .confirmation .confirmation-dialog .icon-container.info .icon {\n\t stroke: #2f96b4;\n\t color: #2f96b4;\n}\n .confirmation .confirmation-dialog .icon-container.success .icon {\n\t stroke: #51a351;\n\t color: #51a351;\n}\n .confirmation .confirmation-dialog .icon-container.warning .icon {\n\t stroke: #f89406;\n\t color: #f89406;\n}\n .confirmation .confirmation-dialog .icon-container.error .icon {\n\t stroke: #bd362f;\n\t color: #bd362f;\n}\n .confirmation .confirmation-dialog .content .title {\n\t color: #222;\n}\n .confirmation .confirmation-dialog .content .message {\n\t color: #777;\n}\n .confirmation .confirmation-dialog .footer {\n\t background: transparent;\n}\n .confirmation .confirmation-dialog .footer .confirmation-button {\n\t background-color: #eee;\n\t color: #777;\n}\n .confirmation .confirmation-dialog .footer .confirmation-button:hover, .confirmation .confirmation-dialog .footer .confirmation-button:focus, .confirmation .confirmation-dialog .footer .confirmation-button:active {\n\t background-color: #bbb;\n}\n .confirmation .confirmation-dialog .footer .confirmation-button--confirm {\n\t background-color: #2f96b4;\n\t color: #fff;\n}\n .confirmation .confirmation-dialog .footer .confirmation-button--confirm:hover {\n\t background-color: #2e819b;\n}\n.ui-table .pagination-wrapper {\n background-color: #f4f4f4;\n border: 1px solid #c8c8c8;\n}\n.bordered .datatable-body-row {\n border-top: 1px solid #eee;\n margin-top: -1px;\n}\n.breadcrumb {\n background-color: transparent;\n padding: 0.27rem;\n}\n";
728
813
 
729
814
  var BASIC_THEME_STYLES_PROVIDERS = [
730
815
  {
@@ -761,8 +846,8 @@
761
846
  }
762
847
  return BaseThemeBasicModule;
763
848
  }());
764
- BaseThemeBasicModule.ɵfac = i0__namespace.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "12.2.6", ngImport: i0__namespace, type: BaseThemeBasicModule, deps: [], target: i0__namespace.ɵɵFactoryTarget.NgModule });
765
- BaseThemeBasicModule.ɵmod = i0__namespace.ɵɵngDeclareNgModule({ minVersion: "12.0.0", version: "12.2.6", ngImport: i0__namespace, type: BaseThemeBasicModule, declarations: [ApplicationLayoutComponent, AccountLayoutComponent, EmptyLayoutComponent, ValidationErrorComponent,
849
+ BaseThemeBasicModule.ɵfac = i0__namespace.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "12.2.13", ngImport: i0__namespace, type: BaseThemeBasicModule, deps: [], target: i0__namespace.ɵɵFactoryTarget.NgModule });
850
+ BaseThemeBasicModule.ɵmod = i0__namespace.ɵɵngDeclareNgModule({ minVersion: "12.0.0", version: "12.2.13", ngImport: i0__namespace, type: BaseThemeBasicModule, declarations: [ApplicationLayoutComponent, AccountLayoutComponent, EmptyLayoutComponent, ValidationErrorComponent,
766
851
  LogoComponent,
767
852
  NavItemsComponent,
768
853
  RoutesComponent,
@@ -781,14 +866,14 @@
781
866
  CurrentUserComponent,
782
867
  LanguagesComponent,
783
868
  PageAlertContainerComponent] });
784
- BaseThemeBasicModule.ɵinj = i0__namespace.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "12.2.6", ngImport: i0__namespace, type: BaseThemeBasicModule, imports: [[
869
+ BaseThemeBasicModule.ɵinj = i0__namespace.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "12.2.13", ngImport: i0__namespace, type: BaseThemeBasicModule, imports: [[
785
870
  i1.CoreModule,
786
871
  i1$1.ThemeSharedModule,
787
872
  i3.NgbCollapseModule,
788
873
  i3.NgbDropdownModule,
789
874
  core.NgxValidateCoreModule,
790
875
  ]] });
791
- i0__namespace.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.6", ngImport: i0__namespace, type: BaseThemeBasicModule, decorators: [{
876
+ i0__namespace.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.13", ngImport: i0__namespace, type: BaseThemeBasicModule, decorators: [{
792
877
  type: i0.NgModule,
793
878
  args: [{
794
879
  declarations: __spreadArray(__spreadArray([], __read(LAYOUTS)), [
@@ -842,15 +927,22 @@
842
927
  provide: core.VALIDATION_INVALID_CLASSES,
843
928
  useValue: 'is-invalid',
844
929
  },
930
+ LazyStyleHandler,
931
+ {
932
+ provide: i0.APP_INITIALIZER,
933
+ useFactory: i1.noop,
934
+ multi: true,
935
+ deps: [LazyStyleHandler],
936
+ },
845
937
  ],
846
938
  };
847
939
  };
848
940
  return ThemeBasicModule;
849
941
  }());
850
- ThemeBasicModule.ɵfac = i0__namespace.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "12.2.6", ngImport: i0__namespace, type: ThemeBasicModule, deps: [], target: i0__namespace.ɵɵFactoryTarget.NgModule });
851
- ThemeBasicModule.ɵmod = i0__namespace.ɵɵngDeclareNgModule({ minVersion: "12.0.0", version: "12.2.6", ngImport: i0__namespace, type: ThemeBasicModule, imports: [BaseThemeBasicModule], exports: [BaseThemeBasicModule] });
852
- ThemeBasicModule.ɵinj = i0__namespace.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "12.2.6", ngImport: i0__namespace, type: ThemeBasicModule, imports: [[BaseThemeBasicModule], BaseThemeBasicModule] });
853
- i0__namespace.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.6", ngImport: i0__namespace, type: ThemeBasicModule, decorators: [{
942
+ ThemeBasicModule.ɵfac = i0__namespace.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "12.2.13", ngImport: i0__namespace, type: ThemeBasicModule, deps: [], target: i0__namespace.ɵɵFactoryTarget.NgModule });
943
+ ThemeBasicModule.ɵmod = i0__namespace.ɵɵngDeclareNgModule({ minVersion: "12.0.0", version: "12.2.13", ngImport: i0__namespace, type: ThemeBasicModule, imports: [BaseThemeBasicModule], exports: [BaseThemeBasicModule] });
944
+ ThemeBasicModule.ɵinj = i0__namespace.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "12.2.13", ngImport: i0__namespace, type: ThemeBasicModule, imports: [[BaseThemeBasicModule], BaseThemeBasicModule] });
945
+ i0__namespace.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.13", ngImport: i0__namespace, type: ThemeBasicModule, decorators: [{
854
946
  type: i0.NgModule,
855
947
  args: [{
856
948
  exports: [BaseThemeBasicModule],
@@ -871,11 +963,14 @@
871
963
  exports.AuthWrapperComponent = AuthWrapperComponent;
872
964
  exports.BASIC_THEME_NAV_ITEM_PROVIDERS = BASIC_THEME_NAV_ITEM_PROVIDERS;
873
965
  exports.BASIC_THEME_STYLES_PROVIDERS = BASIC_THEME_STYLES_PROVIDERS;
966
+ exports.BOOTSTRAP = BOOTSTRAP;
874
967
  exports.BaseThemeBasicModule = BaseThemeBasicModule;
875
968
  exports.CurrentUserComponent = CurrentUserComponent;
876
969
  exports.EmptyLayoutComponent = EmptyLayoutComponent;
877
970
  exports.LAYOUTS = LAYOUTS;
971
+ exports.LAZY_STYLES = LAZY_STYLES;
878
972
  exports.LanguagesComponent = LanguagesComponent;
973
+ exports.LazyStyleHandler = LazyStyleHandler;
879
974
  exports.LogoComponent = LogoComponent;
880
975
  exports.NavItemsComponent = NavItemsComponent;
881
976
  exports.PageAlertContainerComponent = PageAlertContainerComponent;
@@ -885,8 +980,10 @@
885
980
  exports.ValidationErrorComponent = ValidationErrorComponent;
886
981
  exports.configureNavItems = configureNavItems;
887
982
  exports.configureStyles = configureStyles;
983
+ exports.createLazyStyleHref = createLazyStyleHref;
984
+ exports.initLazyStyleHandler = initLazyStyleHandler;
888
985
 
889
986
  Object.defineProperty(exports, '__esModule', { value: true });
890
987
 
891
- })));
988
+ }));
892
989
  //# sourceMappingURL=abp-ng.theme.basic.umd.js.map