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

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (91) hide show
  1. package/abp-ng.theme.basic.d.ts +1 -15
  2. package/bundles/abp-ng.theme.basic-testing.umd.js +33 -7
  3. package/bundles/abp-ng.theme.basic-testing.umd.js.map +1 -1
  4. package/bundles/abp-ng.theme.basic.umd.js +305 -263
  5. package/bundles/abp-ng.theme.basic.umd.js.map +1 -1
  6. package/esm2015/abp-ng.theme.basic.js +1 -16
  7. package/esm2015/abp-ng.theme.basic.js.map +1 -0
  8. package/esm2015/lib/components/account-layout/account-layout.component.js +22 -11
  9. package/esm2015/lib/components/account-layout/account-layout.component.js.map +1 -0
  10. package/esm2015/lib/components/account-layout/auth-wrapper/auth-wrapper.component.js +17 -13
  11. package/esm2015/lib/components/account-layout/auth-wrapper/auth-wrapper.component.js.map +1 -0
  12. package/esm2015/lib/components/account-layout/tenant-box/tenant-box.component.js +18 -13
  13. package/esm2015/lib/components/account-layout/tenant-box/tenant-box.component.js.map +1 -0
  14. package/esm2015/lib/components/application-layout/application-layout.component.js +22 -12
  15. package/esm2015/lib/components/application-layout/application-layout.component.js.map +1 -0
  16. package/esm2015/lib/components/empty-layout/empty-layout.component.js +17 -8
  17. package/esm2015/lib/components/empty-layout/empty-layout.component.js.map +1 -0
  18. package/esm2015/lib/components/index.js +1 -1
  19. package/esm2015/lib/components/index.js.map +1 -0
  20. package/esm2015/lib/components/logo/logo.component.js +29 -11
  21. package/esm2015/lib/components/logo/logo.component.js.map +1 -0
  22. package/esm2015/lib/components/nav-items/current-user.component.js +17 -13
  23. package/esm2015/lib/components/nav-items/current-user.component.js.map +1 -0
  24. package/esm2015/lib/components/nav-items/languages.component.js +51 -16
  25. package/esm2015/lib/components/nav-items/languages.component.js.map +1 -0
  26. package/esm2015/lib/components/nav-items/nav-items.component.js +14 -10
  27. package/esm2015/lib/components/nav-items/nav-items.component.js.map +1 -0
  28. package/esm2015/lib/components/page-alert-container/page-alert-container.component.js +15 -11
  29. package/esm2015/lib/components/page-alert-container/page-alert-container.component.js.map +1 -0
  30. package/esm2015/lib/components/routes/routes.component.js +22 -16
  31. package/esm2015/lib/components/routes/routes.component.js.map +1 -0
  32. package/esm2015/lib/components/validation-error/validation-error.component.js +19 -9
  33. package/esm2015/lib/components/validation-error/validation-error.component.js.map +1 -0
  34. package/esm2015/lib/constants/styles.js +1 -1
  35. package/esm2015/lib/constants/styles.js.map +1 -0
  36. package/esm2015/lib/enums/components.js +1 -1
  37. package/esm2015/lib/enums/components.js.map +1 -0
  38. package/esm2015/lib/enums/index.js +1 -1
  39. package/esm2015/lib/enums/index.js.map +1 -0
  40. package/esm2015/lib/models/index.js +1 -1
  41. package/esm2015/lib/models/index.js.map +1 -0
  42. package/esm2015/lib/models/layout.js +1 -1
  43. package/esm2015/lib/models/layout.js.map +1 -0
  44. package/esm2015/lib/providers/index.js +1 -1
  45. package/esm2015/lib/providers/index.js.map +1 -0
  46. package/esm2015/lib/providers/nav-item.provider.js +1 -1
  47. package/esm2015/lib/providers/nav-item.provider.js.map +1 -0
  48. package/esm2015/lib/providers/styles.provider.js +2 -2
  49. package/esm2015/lib/providers/styles.provider.js.map +1 -0
  50. package/esm2015/lib/services/layout.service.js +8 -8
  51. package/esm2015/lib/services/layout.service.js.map +1 -0
  52. package/esm2015/lib/theme-basic.module.js +74 -41
  53. package/esm2015/lib/theme-basic.module.js.map +1 -0
  54. package/esm2015/public-api.js +1 -1
  55. package/esm2015/public-api.js.map +1 -0
  56. package/esm2015/testing/abp-ng.theme.basic-testing.js +1 -1
  57. package/esm2015/testing/abp-ng.theme.basic-testing.js.map +1 -0
  58. package/esm2015/testing/lib/theme-basic-testing.module.js +12 -7
  59. package/esm2015/testing/lib/theme-basic-testing.module.js.map +1 -0
  60. package/esm2015/testing/public-api.js +1 -1
  61. package/esm2015/testing/public-api.js.map +1 -0
  62. package/fesm2015/abp-ng.theme.basic-testing.js +11 -6
  63. package/fesm2015/abp-ng.theme.basic-testing.js.map +1 -1
  64. package/fesm2015/abp-ng.theme.basic.js +334 -240
  65. package/fesm2015/abp-ng.theme.basic.js.map +1 -1
  66. package/lib/components/account-layout/account-layout.component.d.ts +3 -0
  67. package/lib/components/account-layout/auth-wrapper/auth-wrapper.component.d.ts +4 -3
  68. package/lib/components/account-layout/tenant-box/tenant-box.component.d.ts +4 -3
  69. package/lib/components/application-layout/application-layout.component.d.ts +3 -0
  70. package/lib/components/empty-layout/empty-layout.component.d.ts +3 -0
  71. package/lib/components/logo/logo.component.d.ts +3 -0
  72. package/lib/components/nav-items/current-user.component.d.ts +3 -0
  73. package/lib/components/nav-items/languages.component.d.ts +3 -0
  74. package/lib/components/nav-items/nav-items.component.d.ts +3 -0
  75. package/lib/components/page-alert-container/page-alert-container.component.d.ts +3 -0
  76. package/lib/components/routes/routes.component.d.ts +3 -0
  77. package/lib/components/validation-error/validation-error.component.d.ts +3 -0
  78. package/lib/providers/nav-item.provider.d.ts +1 -1
  79. package/lib/providers/styles.provider.d.ts +2 -2
  80. package/lib/services/layout.service.d.ts +3 -0
  81. package/lib/theme-basic.module.d.ts +23 -0
  82. package/package.json +5 -3
  83. package/testing/abp-ng.theme.basic-testing.d.ts +1 -0
  84. package/testing/lib/theme-basic-testing.module.d.ts +5 -0
  85. package/testing/package.json +0 -1
  86. package/abp-ng.theme.basic.metadata.json +0 -1
  87. package/bundles/abp-ng.theme.basic-testing.umd.min.js +0 -2
  88. package/bundles/abp-ng.theme.basic-testing.umd.min.js.map +0 -1
  89. package/bundles/abp-ng.theme.basic.umd.min.js +0 -17
  90. package/bundles/abp-ng.theme.basic.umd.min.js.map +0 -1
  91. package/testing/abp-ng.theme.basic-testing.metadata.json +0 -1
@@ -1,12 +1,37 @@
1
1
  (function (global, factory) {
2
- typeof exports === 'object' && typeof module !== 'undefined' ? factory(exports, require('@angular/core'), require('@abp/ng.core'), require('rxjs'), require('rxjs/operators'), require('@abp/ng.account.core'), require('@abp/ng.theme.shared'), require('snq'), require('@ngx-validate/core'), require('@ng-bootstrap/ng-bootstrap')) :
3
- typeof define === 'function' && define.amd ? define('@abp/ng.theme.basic', ['exports', '@angular/core', '@abp/ng.core', 'rxjs', 'rxjs/operators', '@abp/ng.account.core', '@abp/ng.theme.shared', 'snq', '@ngx-validate/core', '@ng-bootstrap/ng-bootstrap'], factory) :
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.ng_core, global.rxjs, global.rxjs.operators, global.ng_account_core, global.ng_theme_shared, global.snq, global.core$1, global.ngBootstrap));
5
- }(this, (function (exports, core, ng_core, rxjs, operators, ng_account_core, ng_theme_shared, snq, core$1, ngBootstrap) { 'use strict';
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
+ 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
+ (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';
6
6
 
7
- function _interopDefaultLegacy (e) { return e && typeof e === 'object' && 'default' in e ? e : { 'default': e }; }
7
+ function _interopNamespace(e) {
8
+ if (e && e.__esModule) return e;
9
+ var n = Object.create(null);
10
+ if (e) {
11
+ Object.keys(e).forEach(function (k) {
12
+ if (k !== 'default') {
13
+ var d = Object.getOwnPropertyDescriptor(e, k);
14
+ Object.defineProperty(n, k, d.get ? d : {
15
+ enumerable: true,
16
+ get: function () {
17
+ return e[k];
18
+ }
19
+ });
20
+ }
21
+ });
22
+ }
23
+ n['default'] = e;
24
+ return Object.freeze(n);
25
+ }
8
26
 
9
- var snq__default = /*#__PURE__*/_interopDefaultLegacy(snq);
27
+ var i0__namespace = /*#__PURE__*/_interopNamespace(i0);
28
+ var i1__namespace = /*#__PURE__*/_interopNamespace(i1);
29
+ var i2__namespace = /*#__PURE__*/_interopNamespace(i2);
30
+ var i2__namespace$1 = /*#__PURE__*/_interopNamespace(i2$1);
31
+ var i3__namespace = /*#__PURE__*/_interopNamespace(i3);
32
+ var i1__namespace$1 = /*#__PURE__*/_interopNamespace(i1$1);
33
+ var i1__namespace$2 = /*#__PURE__*/_interopNamespace(i1$2);
34
+ var i4__namespace = /*#__PURE__*/_interopNamespace(i4);
10
35
 
11
36
  var LayoutService = /** @class */ (function () {
12
37
  function LayoutService(subscription, cdRef) {
@@ -37,72 +62,159 @@
37
62
  };
38
63
  return LayoutService;
39
64
  }());
40
- LayoutService.decorators = [
41
- { type: core.Injectable }
42
- ];
43
- LayoutService.ctorParameters = function () { return [
44
- { type: ng_core.SubscriptionService },
45
- { type: core.ChangeDetectorRef }
46
- ]; };
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: [{
68
+ type: i0.Injectable
69
+ }], ctorParameters: function () { return [{ type: i1__namespace.SubscriptionService }, { type: i0__namespace.ChangeDetectorRef }]; } });
47
70
 
48
- var AccountLayoutComponent = /** @class */ (function () {
49
- function AccountLayoutComponent(service) {
50
- this.service = service;
51
- this.authWrapperKey = 'Account.AuthWrapperComponent';
71
+ var LogoComponent = /** @class */ (function () {
72
+ function LogoComponent(environment) {
73
+ this.environment = environment;
52
74
  }
53
- AccountLayoutComponent.prototype.ngAfterViewInit = function () {
54
- this.service.subscribeWindowSize();
75
+ Object.defineProperty(LogoComponent.prototype, "appInfo", {
76
+ get: function () {
77
+ return this.environment.getEnvironment().application;
78
+ },
79
+ enumerable: false,
80
+ configurable: true
81
+ });
82
+ return LogoComponent;
83
+ }());
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: [{
87
+ type: i0.Component,
88
+ args: [{
89
+ selector: 'abp-logo',
90
+ 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 ",
91
+ }]
92
+ }], ctorParameters: function () { return [{ type: i1__namespace.EnvironmentService }]; } });
93
+
94
+ var RoutesComponent = /** @class */ (function () {
95
+ function RoutesComponent(routesService, renderer) {
96
+ this.routesService = routesService;
97
+ this.renderer = renderer;
98
+ this.trackByFn = function (_, item) { return item.name; };
99
+ }
100
+ RoutesComponent.prototype.isDropdown = function (node) {
101
+ return !(node === null || node === void 0 ? void 0 : node.isLeaf) || this.routesService.hasChildren(node.name);
55
102
  };
56
- return AccountLayoutComponent;
103
+ RoutesComponent.prototype.closeDropdown = function () {
104
+ var _this = this;
105
+ this.childrenContainers.forEach(function (_a) {
106
+ var nativeElement = _a.nativeElement;
107
+ _this.renderer.addClass(nativeElement, 'd-none');
108
+ setTimeout(function () { return _this.renderer.removeClass(nativeElement, 'd-none'); }, 0);
109
+ });
110
+ };
111
+ return RoutesComponent;
57
112
  }());
58
- // required for dynamic component
59
- AccountLayoutComponent.type = "account" /* account */;
60
- AccountLayoutComponent.decorators = [
61
- { type: core.Component, args: [{
62
- selector: 'abp-layout-account',
63
- 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",
64
- providers: [LayoutService, ng_core.SubscriptionService]
65
- },] }
66
- ];
67
- AccountLayoutComponent.ctorParameters = function () { return [
68
- { type: LayoutService }
69
- ]; };
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: [{
116
+ type: i0.Component,
117
+ args: [{
118
+ selector: 'abp-routes',
119
+ templateUrl: 'routes.component.html',
120
+ }]
121
+ }], ctorParameters: function () { return [{ type: i1__namespace.RoutesService }, { type: i0__namespace.Renderer2 }]; }, propDecorators: { smallScreen: [{
122
+ type: i0.Input
123
+ }], childrenContainers: [{
124
+ type: i0.ViewChildren,
125
+ args: ['childrenContainer']
126
+ }] } });
70
127
 
71
- var AuthWrapperComponent = /** @class */ (function () {
72
- function AuthWrapperComponent(service) {
128
+ var NavItemsComponent = /** @class */ (function () {
129
+ function NavItemsComponent(navItems) {
130
+ this.navItems = navItems;
131
+ this.trackByFn = function (_, element) { return element.id; };
132
+ }
133
+ return NavItemsComponent;
134
+ }());
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: [{
138
+ type: i0.Component,
139
+ args: [{
140
+ selector: 'abp-nav-items',
141
+ templateUrl: 'nav-items.component.html',
142
+ }]
143
+ }], ctorParameters: function () { return [{ type: i1__namespace$1.NavItemsService }]; } });
144
+
145
+ var PageAlertContainerComponent = /** @class */ (function () {
146
+ function PageAlertContainerComponent(service) {
73
147
  this.service = service;
74
148
  }
75
- AuthWrapperComponent.prototype.ngOnInit = function () { };
76
- return AuthWrapperComponent;
149
+ return PageAlertContainerComponent;
77
150
  }());
78
- AuthWrapperComponent.decorators = [
79
- { type: core.Component, args: [{
80
- selector: 'abp-auth-wrapper',
81
- 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",
82
- providers: [ng_account_core.AuthWrapperService]
83
- },] }
84
- ];
85
- AuthWrapperComponent.ctorParameters = function () { return [
86
- { type: ng_account_core.AuthWrapperService }
87
- ]; };
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: [{
154
+ type: i0.Component,
155
+ args: [{
156
+ selector: 'abp-page-alert-container',
157
+ templateUrl: './page-alert-container.component.html',
158
+ encapsulation: i0.ViewEncapsulation.None,
159
+ }]
160
+ }], ctorParameters: function () { return [{ type: i1__namespace$1.PageAlertService }]; } });
88
161
 
89
162
  var TenantBoxComponent = /** @class */ (function () {
90
163
  function TenantBoxComponent(service) {
91
164
  this.service = service;
92
165
  }
93
- TenantBoxComponent.prototype.ngOnInit = function () { };
94
166
  return TenantBoxComponent;
95
167
  }());
96
- TenantBoxComponent.decorators = [
97
- { type: core.Component, args: [{
98
- selector: 'abp-tenant-box',
99
- template: "<ng-container *ngIf=\"(service.currentTenant$ | async) || {} as currentTenant\">\n <div class=\"card shadow-sm rounded mb-3\">\n <div class=\"card-body px-5\">\n <div class=\"row\">\n <div class=\"col\">\n <span style=\"font-size: 0.8em\" class=\"text-uppercase text-muted\">{{\n 'AbpUiMultiTenancy::Tenant' | abpLocalization\n }}</span\n ><br />\n <h6 class=\"m-0 d-inline-block\">\n <i>{{ currentTenant.name || ('AbpUiMultiTenancy::NotSelected' | abpLocalization) }}</i>\n </h6>\n </div>\n <div class=\"col-auto\">\n <a\n id=\"AbpTenantSwitchLink\"\n href=\"javascript:void(0);\"\n class=\"btn btn-sm mt-3 btn-outline-primary\"\n (click)=\"service.onSwitch()\"\n >{{ 'AbpUiMultiTenancy::Switch' | abpLocalization }}</a\n >\n </div>\n </div>\n </div>\n </div>\n\n <abp-modal size=\"md\" [(visible)]=\"service.isModalVisible\" [busy]=\"service.modalBusy\">\n <ng-template #abpHeader>\n <h5>Switch Tenant</h5>\n </ng-template>\n <ng-template #abpBody>\n <form (ngSubmit)=\"service.save()\">\n <div class=\"mt-2\">\n <div class=\"form-group\">\n <label for=\"name\">{{ 'AbpUiMultiTenancy::Name' | abpLocalization }}</label>\n <input\n [(ngModel)]=\"service.name\"\n type=\"text\"\n id=\"name\"\n name=\"tenant\"\n class=\"form-control\"\n autofocus\n />\n </div>\n <p>{{ 'AbpUiMultiTenancy::SwitchTenantHint' | abpLocalization }}</p>\n </div>\n </form>\n </ng-template>\n <ng-template #abpFooter>\n <button abpClose type=\"button\" class=\"btn btn-secondary\">\n {{ 'AbpTenantManagement::Cancel' | abpLocalization }}\n </button>\n <abp-button\n type=\"abp-button\"\n iconClass=\"fa fa-check\"\n (click)=\"service.save()\"\n [disabled]=\"currentTenant?.name === service.name\"\n >\n <span>{{ 'AbpTenantManagement::Save' | abpLocalization }}</span>\n </abp-button>\n </ng-template>\n </abp-modal>\n</ng-container>\n",
100
- providers: [ng_account_core.TenantBoxService]
101
- },] }
102
- ];
103
- TenantBoxComponent.ctorParameters = function () { return [
104
- { type: ng_account_core.TenantBoxService }
105
- ]; };
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: [{
171
+ type: i0.Component,
172
+ args: [{
173
+ selector: 'abp-tenant-box',
174
+ templateUrl: './tenant-box.component.html',
175
+ providers: [i1$2.TenantBoxService],
176
+ }]
177
+ }], ctorParameters: function () { return [{ type: i1__namespace$2.TenantBoxService }]; } });
178
+
179
+ var AuthWrapperComponent = /** @class */ (function () {
180
+ function AuthWrapperComponent(service) {
181
+ this.service = service;
182
+ }
183
+ return AuthWrapperComponent;
184
+ }());
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: [{
188
+ type: i0.Component,
189
+ args: [{
190
+ selector: 'abp-auth-wrapper',
191
+ templateUrl: './auth-wrapper.component.html',
192
+ providers: [i1$2.AuthWrapperService],
193
+ }]
194
+ }], ctorParameters: function () { return [{ type: i1__namespace$2.AuthWrapperService }]; } });
195
+
196
+ var AccountLayoutComponent = /** @class */ (function () {
197
+ function AccountLayoutComponent(service) {
198
+ this.service = service;
199
+ this.authWrapperKey = 'Account.AuthWrapperComponent';
200
+ }
201
+ AccountLayoutComponent.prototype.ngAfterViewInit = function () {
202
+ this.service.subscribeWindowSize();
203
+ };
204
+ return AccountLayoutComponent;
205
+ }());
206
+ // required for dynamic component
207
+ 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: [{
211
+ type: i0.Component,
212
+ args: [{
213
+ selector: 'abp-layout-account',
214
+ templateUrl: './account-layout.component.html',
215
+ providers: [LayoutService, i1.SubscriptionService],
216
+ }]
217
+ }], ctorParameters: function () { return [{ type: LayoutService }]; } });
106
218
 
107
219
  var ApplicationLayoutComponent = /** @class */ (function () {
108
220
  function ApplicationLayoutComponent(service) {
@@ -115,17 +227,17 @@
115
227
  }());
116
228
  // required for dynamic component
117
229
  ApplicationLayoutComponent.type = "application" /* application */;
118
- ApplicationLayoutComponent.decorators = [
119
- { type: core.Component, args: [{
120
- selector: 'abp-layout-application',
121
- 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",
122
- animations: [ng_theme_shared.slideFromBottom, ng_theme_shared.collapseWithMargin],
123
- providers: [LayoutService, ng_core.SubscriptionService]
124
- },] }
125
- ];
126
- ApplicationLayoutComponent.ctorParameters = function () { return [
127
- { type: LayoutService }
128
- ]; };
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: [{
233
+ type: i0.Component,
234
+ args: [{
235
+ selector: 'abp-layout-application',
236
+ templateUrl: './application-layout.component.html',
237
+ animations: [i1$1.slideFromBottom, i1$1.collapseWithMargin],
238
+ providers: [LayoutService, i1.SubscriptionService],
239
+ }]
240
+ }], ctorParameters: function () { return [{ type: LayoutService }]; } });
129
241
 
130
242
  var EmptyLayoutComponent = /** @class */ (function () {
131
243
  function EmptyLayoutComponent() {
@@ -133,35 +245,15 @@
133
245
  return EmptyLayoutComponent;
134
246
  }());
135
247
  EmptyLayoutComponent.type = "empty" /* empty */;
136
- EmptyLayoutComponent.decorators = [
137
- { type: core.Component, args: [{
138
- selector: 'abp-layout-empty',
139
- template: "\n <router-outlet></router-outlet>\n <abp-confirmation></abp-confirmation>\n "
140
- },] }
141
- ];
142
-
143
- var LogoComponent = /** @class */ (function () {
144
- function LogoComponent(environment) {
145
- this.environment = environment;
146
- }
147
- Object.defineProperty(LogoComponent.prototype, "appInfo", {
148
- get: function () {
149
- return this.environment.getEnvironment().application;
150
- },
151
- enumerable: false,
152
- configurable: true
153
- });
154
- return LogoComponent;
155
- }());
156
- LogoComponent.decorators = [
157
- { type: core.Component, args: [{
158
- selector: 'abp-logo',
159
- 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 "
160
- },] }
161
- ];
162
- LogoComponent.ctorParameters = function () { return [
163
- { type: ng_core.EnvironmentService }
164
- ]; };
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: [{
251
+ type: i0.Component,
252
+ args: [{
253
+ selector: 'abp-layout-empty',
254
+ template: "\n <router-outlet></router-outlet>\n <abp-confirmation></abp-confirmation>\n ",
255
+ }]
256
+ }] });
165
257
 
166
258
  var CurrentUserComponent = /** @class */ (function () {
167
259
  function CurrentUserComponent(navigateToManageProfile, authService, configState, sessionState) {
@@ -187,18 +279,20 @@
187
279
  };
188
280
  return CurrentUserComponent;
189
281
  }());
190
- CurrentUserComponent.decorators = [
191
- { type: core.Component, args: [{
192
- selector: 'abp-current-user',
193
- 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"
194
- },] }
195
- ];
196
- CurrentUserComponent.ctorParameters = function () { return [
197
- { type: undefined, decorators: [{ type: core.Inject, args: [ng_core.NAVIGATE_TO_MANAGE_PROFILE,] }] },
198
- { type: ng_core.AuthService },
199
- { type: ng_core.ConfigStateService },
200
- { type: ng_core.SessionStateService }
201
- ]; };
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: [{
285
+ type: i0.Component,
286
+ args: [{
287
+ selector: 'abp-current-user',
288
+ templateUrl: './current-user.component.html',
289
+ }]
290
+ }], ctorParameters: function () {
291
+ return [{ type: undefined, decorators: [{
292
+ type: i0.Inject,
293
+ args: [i1.NAVIGATE_TO_MANAGE_PROFILE]
294
+ }] }, { type: i1__namespace.AuthService }, { type: i1__namespace.ConfigStateService }, { type: i1__namespace.SessionStateService }];
295
+ } });
202
296
 
203
297
  var LanguagesComponent = /** @class */ (function () {
204
298
  function LanguagesComponent(sessionState, configState) {
@@ -216,7 +310,7 @@
216
310
  Object.defineProperty(LanguagesComponent.prototype, "defaultLanguage$", {
217
311
  get: function () {
218
312
  var _this = this;
219
- return this.languages$.pipe(operators.map(function (languages) { return snq__default['default'](function () { return languages.find(function (lang) { return lang.cultureName === _this.selectedLangCulture; }).displayName; }); }, ''));
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) || ''; }));
220
314
  },
221
315
  enumerable: false,
222
316
  configurable: true
@@ -224,7 +318,7 @@
224
318
  Object.defineProperty(LanguagesComponent.prototype, "dropdownLanguages$", {
225
319
  get: function () {
226
320
  var _this = this;
227
- return this.languages$.pipe(operators.map(function (languages) { return snq__default['default'](function () { return languages.filter(function (lang) { return lang.cultureName !== _this.selectedLangCulture; }); }); }, []));
321
+ return this.languages$.pipe(operators.map(function (languages) { return (languages === null || languages === void 0 ? void 0 : languages.filter(function (lang) { return lang.cultureName !== _this.selectedLangCulture; })) || []; }));
228
322
  },
229
323
  enumerable: false,
230
324
  configurable: true
@@ -241,68 +335,15 @@
241
335
  };
242
336
  return LanguagesComponent;
243
337
  }());
244
- LanguagesComponent.decorators = [
245
- { type: core.Component, args: [{
246
- selector: 'abp-languages',
247
- // tslint:disable-next-line: component-max-inline-declarations
248
- 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 "
249
- },] }
250
- ];
251
- LanguagesComponent.ctorParameters = function () { return [
252
- { type: ng_core.SessionStateService },
253
- { type: ng_core.ConfigStateService }
254
- ]; };
255
-
256
- var NavItemsComponent = /** @class */ (function () {
257
- function NavItemsComponent(navItems) {
258
- this.navItems = navItems;
259
- this.trackByFn = function (_, element) { return element.id; };
260
- }
261
- return NavItemsComponent;
262
- }());
263
- NavItemsComponent.decorators = [
264
- { type: core.Component, args: [{
265
- selector: 'abp-nav-items',
266
- 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"
267
- },] }
268
- ];
269
- NavItemsComponent.ctorParameters = function () { return [
270
- { type: ng_theme_shared.NavItemsService }
271
- ]; };
272
-
273
- var RoutesComponent = /** @class */ (function () {
274
- function RoutesComponent(routesService, renderer) {
275
- this.routesService = routesService;
276
- this.renderer = renderer;
277
- this.trackByFn = function (_, item) { return item.name; };
278
- }
279
- RoutesComponent.prototype.isDropdown = function (node) {
280
- return !(node === null || node === void 0 ? void 0 : node.isLeaf) || this.routesService.hasChildren(node.name);
281
- };
282
- RoutesComponent.prototype.closeDropdown = function () {
283
- var _this = this;
284
- this.childrenContainers.forEach(function (_a) {
285
- var nativeElement = _a.nativeElement;
286
- _this.renderer.addClass(nativeElement, 'd-none');
287
- setTimeout(function () { return _this.renderer.removeClass(nativeElement, 'd-none'); }, 0);
288
- });
289
- };
290
- return RoutesComponent;
291
- }());
292
- RoutesComponent.decorators = [
293
- { type: core.Component, args: [{
294
- selector: 'abp-routes',
295
- 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"
296
- },] }
297
- ];
298
- RoutesComponent.ctorParameters = function () { return [
299
- { type: ng_core.RoutesService },
300
- { type: core.Renderer2 }
301
- ]; };
302
- RoutesComponent.propDecorators = {
303
- smallScreen: [{ type: core.Input }],
304
- childrenContainers: [{ type: core.ViewChildren, args: ['childrenContainer',] }]
305
- };
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: [{
341
+ type: i0.Component,
342
+ args: [{
343
+ 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 ",
345
+ }]
346
+ }], ctorParameters: function () { return [{ type: i1__namespace.SessionStateService }, { type: i1__namespace.ConfigStateService }]; } });
306
347
 
307
348
  /*! *****************************************************************************
308
349
  Copyright (c) Microsoft Corporation.
@@ -539,7 +580,7 @@
539
580
  ar[i] = from[i];
540
581
  }
541
582
  }
542
- return to.concat(ar || from);
583
+ return to.concat(ar || Array.prototype.slice.call(from));
543
584
  }
544
585
  function __await(v) {
545
586
  return this instanceof __await ? (this.v = v, this) : new __await(v);
@@ -645,38 +686,24 @@
645
686
  configurable: true
646
687
  });
647
688
  return ValidationErrorComponent;
648
- }(core$1.ValidationErrorComponent));
649
- ValidationErrorComponent.decorators = [
650
- { type: core.Component, args: [{
651
- selector: 'abp-validation-error',
652
- template: "\n <div class=\"invalid-feedback\" *ngFor=\"let error of abpErrors; trackBy: trackByFn\">\n {{ error.message | abpLocalization: error.interpoliteParams }}\n </div>\n ",
653
- changeDetection: core.ChangeDetectionStrategy.OnPush,
654
- encapsulation: core.ViewEncapsulation.None
655
- },] }
656
- ];
657
-
658
- var PageAlertContainerComponent = /** @class */ (function () {
659
- function PageAlertContainerComponent(service) {
660
- this.service = service;
661
- }
662
- return PageAlertContainerComponent;
663
- }());
664
- PageAlertContainerComponent.decorators = [
665
- { type: core.Component, args: [{
666
- selector: 'abp-page-alert-container',
667
- 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",
668
- encapsulation: core.ViewEncapsulation.None
669
- },] }
670
- ];
671
- PageAlertContainerComponent.ctorParameters = function () { return [
672
- { type: ng_theme_shared.PageAlertService }
673
- ]; };
689
+ }(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: [{
693
+ type: i0.Component,
694
+ args: [{
695
+ selector: 'abp-validation-error',
696
+ template: "\n <div class=\"invalid-feedback\" *ngFor=\"let error of abpErrors; trackBy: trackByFn\">\n {{ error.message | abpLocalization: error.interpoliteParams }}\n </div>\n ",
697
+ changeDetection: i0.ChangeDetectionStrategy.OnPush,
698
+ encapsulation: i0.ViewEncapsulation.None,
699
+ }]
700
+ }] });
674
701
 
675
702
  var BASIC_THEME_NAV_ITEM_PROVIDERS = [
676
703
  {
677
- provide: core.APP_INITIALIZER,
704
+ provide: i0.APP_INITIALIZER,
678
705
  useFactory: configureNavItems,
679
- deps: [ng_theme_shared.NavItemsService],
706
+ deps: [i1$1.NavItemsService],
680
707
  multi: true,
681
708
  },
682
709
  ];
@@ -701,15 +728,15 @@
701
728
 
702
729
  var BASIC_THEME_STYLES_PROVIDERS = [
703
730
  {
704
- provide: core.APP_INITIALIZER,
731
+ provide: i0.APP_INITIALIZER,
705
732
  useFactory: configureStyles,
706
- deps: [ng_core.DomInsertionService, ng_core.ReplaceableComponentsService],
733
+ deps: [i1.DomInsertionService, i1.ReplaceableComponentsService],
707
734
  multi: true,
708
735
  },
709
736
  ];
710
737
  function configureStyles(domInsertion, replaceableComponents) {
711
738
  return function () {
712
- domInsertion.insertContent(ng_core.CONTENT_STRATEGY.AppendStyleToHead(styles));
739
+ domInsertion.insertContent(i1.CONTENT_STRATEGY.AppendStyleToHead(styles));
713
740
  initLayouts(replaceableComponents);
714
741
  };
715
742
  }
@@ -734,38 +761,66 @@
734
761
  }
735
762
  return BaseThemeBasicModule;
736
763
  }());
737
- BaseThemeBasicModule.decorators = [
738
- { type: core.NgModule, args: [{
739
- declarations: __spread(LAYOUTS, [
740
- ValidationErrorComponent,
741
- LogoComponent,
742
- NavItemsComponent,
743
- RoutesComponent,
744
- CurrentUserComponent,
745
- LanguagesComponent,
746
- PageAlertContainerComponent,
747
- TenantBoxComponent,
748
- AuthWrapperComponent,
749
- ]),
750
- exports: __spread(LAYOUTS, [
751
- ValidationErrorComponent,
752
- LogoComponent,
753
- NavItemsComponent,
754
- RoutesComponent,
755
- CurrentUserComponent,
756
- LanguagesComponent,
757
- PageAlertContainerComponent,
758
- ]),
759
- imports: [
760
- ng_core.CoreModule,
761
- ng_theme_shared.ThemeSharedModule,
762
- ngBootstrap.NgbCollapseModule,
763
- ngBootstrap.NgbDropdownModule,
764
- core$1.NgxValidateCoreModule,
765
- ],
766
- entryComponents: __spread(LAYOUTS, [ValidationErrorComponent, CurrentUserComponent, LanguagesComponent]),
767
- },] }
768
- ];
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,
766
+ LogoComponent,
767
+ NavItemsComponent,
768
+ RoutesComponent,
769
+ CurrentUserComponent,
770
+ LanguagesComponent,
771
+ PageAlertContainerComponent,
772
+ TenantBoxComponent,
773
+ AuthWrapperComponent], imports: [i1.CoreModule,
774
+ i1$1.ThemeSharedModule,
775
+ i3.NgbCollapseModule,
776
+ i3.NgbDropdownModule,
777
+ core.NgxValidateCoreModule], exports: [ApplicationLayoutComponent, AccountLayoutComponent, EmptyLayoutComponent, ValidationErrorComponent,
778
+ LogoComponent,
779
+ NavItemsComponent,
780
+ RoutesComponent,
781
+ CurrentUserComponent,
782
+ LanguagesComponent,
783
+ PageAlertContainerComponent] });
784
+ BaseThemeBasicModule.ɵinj = i0__namespace.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "12.2.6", ngImport: i0__namespace, type: BaseThemeBasicModule, imports: [[
785
+ i1.CoreModule,
786
+ i1$1.ThemeSharedModule,
787
+ i3.NgbCollapseModule,
788
+ i3.NgbDropdownModule,
789
+ core.NgxValidateCoreModule,
790
+ ]] });
791
+ i0__namespace.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.6", ngImport: i0__namespace, type: BaseThemeBasicModule, decorators: [{
792
+ type: i0.NgModule,
793
+ args: [{
794
+ declarations: __spreadArray(__spreadArray([], __read(LAYOUTS)), [
795
+ ValidationErrorComponent,
796
+ LogoComponent,
797
+ NavItemsComponent,
798
+ RoutesComponent,
799
+ CurrentUserComponent,
800
+ LanguagesComponent,
801
+ PageAlertContainerComponent,
802
+ TenantBoxComponent,
803
+ AuthWrapperComponent,
804
+ ]),
805
+ exports: __spreadArray(__spreadArray([], __read(LAYOUTS)), [
806
+ ValidationErrorComponent,
807
+ LogoComponent,
808
+ NavItemsComponent,
809
+ RoutesComponent,
810
+ CurrentUserComponent,
811
+ LanguagesComponent,
812
+ PageAlertContainerComponent,
813
+ ]),
814
+ imports: [
815
+ i1.CoreModule,
816
+ i1$1.ThemeSharedModule,
817
+ i3.NgbCollapseModule,
818
+ i3.NgbDropdownModule,
819
+ core.NgxValidateCoreModule,
820
+ ],
821
+ entryComponents: __spreadArray(__spreadArray([], __read(LAYOUTS)), [ValidationErrorComponent, CurrentUserComponent, LanguagesComponent]),
822
+ }]
823
+ }] });
769
824
  var ThemeBasicModule = /** @class */ (function () {
770
825
  function ThemeBasicModule() {
771
826
  }
@@ -776,15 +831,15 @@
776
831
  BASIC_THEME_NAV_ITEM_PROVIDERS,
777
832
  BASIC_THEME_STYLES_PROVIDERS,
778
833
  {
779
- provide: core$1.VALIDATION_ERROR_TEMPLATE,
834
+ provide: core.VALIDATION_ERROR_TEMPLATE,
780
835
  useValue: ValidationErrorComponent,
781
836
  },
782
837
  {
783
- provide: core$1.VALIDATION_TARGET_SELECTOR,
838
+ provide: core.VALIDATION_TARGET_SELECTOR,
784
839
  useValue: '.form-group',
785
840
  },
786
841
  {
787
- provide: core$1.VALIDATION_INVALID_CLASSES,
842
+ provide: core.VALIDATION_INVALID_CLASSES,
788
843
  useValue: 'is-invalid',
789
844
  },
790
845
  ],
@@ -792,12 +847,16 @@
792
847
  };
793
848
  return ThemeBasicModule;
794
849
  }());
795
- ThemeBasicModule.decorators = [
796
- { type: core.NgModule, args: [{
797
- exports: [BaseThemeBasicModule],
798
- imports: [BaseThemeBasicModule],
799
- },] }
800
- ];
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: [{
854
+ type: i0.NgModule,
855
+ args: [{
856
+ exports: [BaseThemeBasicModule],
857
+ imports: [BaseThemeBasicModule],
858
+ }]
859
+ }] });
801
860
 
802
861
  /*
803
862
  * Public API Surface of theme-basic
@@ -826,23 +885,6 @@
826
885
  exports.ValidationErrorComponent = ValidationErrorComponent;
827
886
  exports.configureNavItems = configureNavItems;
828
887
  exports.configureStyles = configureStyles;
829
- exports.ɵa = ApplicationLayoutComponent;
830
- exports.ɵb = LayoutService;
831
- exports.ɵc = AccountLayoutComponent;
832
- exports.ɵd = EmptyLayoutComponent;
833
- exports.ɵe = ValidationErrorComponent;
834
- exports.ɵf = LogoComponent;
835
- exports.ɵg = NavItemsComponent;
836
- exports.ɵh = RoutesComponent;
837
- exports.ɵi = CurrentUserComponent;
838
- exports.ɵj = LanguagesComponent;
839
- exports.ɵk = PageAlertContainerComponent;
840
- exports.ɵl = TenantBoxComponent;
841
- exports.ɵm = AuthWrapperComponent;
842
- exports.ɵn = BASIC_THEME_NAV_ITEM_PROVIDERS;
843
- exports.ɵo = configureNavItems;
844
- exports.ɵp = BASIC_THEME_STYLES_PROVIDERS;
845
- exports.ɵq = configureStyles;
846
888
 
847
889
  Object.defineProperty(exports, '__esModule', { value: true });
848
890