@abp/ng.theme.basic 5.0.0-rc.1 → 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 (38) hide show
  1. package/README.md +3 -3
  2. package/bundles/abp-ng.theme.basic-testing.umd.js.map +1 -1
  3. package/bundles/abp-ng.theme.basic.umd.js +8 -8
  4. package/bundles/abp-ng.theme.basic.umd.js.map +1 -1
  5. package/esm2015/lib/components/account-layout/account-layout.component.js +2 -2
  6. package/esm2015/lib/components/account-layout/auth-wrapper/auth-wrapper.component.js +2 -2
  7. package/esm2015/lib/components/account-layout/tenant-box/tenant-box.component.js +2 -2
  8. package/esm2015/lib/components/application-layout/application-layout.component.js +2 -2
  9. package/esm2015/lib/components/empty-layout/empty-layout.component.js +7 -7
  10. package/esm2015/lib/components/index.js +1 -1
  11. package/esm2015/lib/components/logo/logo.component.js +29 -29
  12. package/esm2015/lib/components/nav-items/current-user.component.js +2 -2
  13. package/esm2015/lib/components/nav-items/languages.component.js +69 -69
  14. package/esm2015/lib/components/nav-items/nav-items.component.js +2 -2
  15. package/esm2015/lib/components/page-alert-container/page-alert-container.component.js +2 -2
  16. package/esm2015/lib/components/routes/routes.component.js +2 -2
  17. package/esm2015/lib/components/validation-error/validation-error.component.js +9 -9
  18. package/esm2015/lib/constants/styles.js +150 -150
  19. package/esm2015/lib/enums/components.js +1 -1
  20. package/esm2015/lib/enums/index.js +1 -1
  21. package/esm2015/lib/handlers/index.js +1 -1
  22. package/esm2015/lib/handlers/lazy-style.handler.js +1 -1
  23. package/esm2015/lib/models/index.js +1 -1
  24. package/esm2015/lib/models/layout.js +1 -1
  25. package/esm2015/lib/providers/index.js +1 -1
  26. package/esm2015/lib/providers/nav-item.provider.js +1 -1
  27. package/esm2015/lib/providers/styles.provider.js +1 -1
  28. package/esm2015/lib/services/layout.service.js +1 -1
  29. package/esm2015/lib/theme-basic.module.js +1 -1
  30. package/esm2015/lib/tokens/index.js +1 -1
  31. package/esm2015/lib/tokens/lazy-styles.token.js +1 -1
  32. package/esm2015/public-api.js +1 -1
  33. package/esm2015/testing/lib/theme-basic-testing.module.js +1 -1
  34. package/esm2015/testing/public-api.js +1 -1
  35. package/fesm2015/abp-ng.theme.basic-testing.js.map +1 -1
  36. package/fesm2015/abp-ng.theme.basic.js +267 -267
  37. package/fesm2015/abp-ng.theme.basic.js.map +1 -1
  38. package/package.json +4 -4
@@ -56,39 +56,39 @@ class LogoComponent {
56
56
  }
57
57
  }
58
58
  LogoComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "12.2.13", ngImport: i0, type: LogoComponent, deps: [{ token: i1.EnvironmentService }], target: i0.ɵɵFactoryTarget.Component });
59
- LogoComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "12.2.13", type: LogoComponent, selector: "abp-logo", ngImport: i0, template: `
60
- <a class="navbar-brand" routerLink="/">
61
- <img
62
- *ngIf="appInfo.logoUrl; else appName"
63
- [src]="appInfo.logoUrl"
64
- [alt]="appInfo.name"
65
- width="100%"
66
- height="auto"
67
- />
68
- </a>
69
-
70
- <ng-template #appName>
71
- {{ appInfo.name }}
72
- </ng-template>
59
+ LogoComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "12.2.13", type: LogoComponent, selector: "abp-logo", ngImport: i0, template: `
60
+ <a class="navbar-brand" routerLink="/">
61
+ <img
62
+ *ngIf="appInfo.logoUrl; else appName"
63
+ [src]="appInfo.logoUrl"
64
+ [alt]="appInfo.name"
65
+ width="100%"
66
+ height="auto"
67
+ />
68
+ </a>
69
+
70
+ <ng-template #appName>
71
+ {{ appInfo.name }}
72
+ </ng-template>
73
73
  `, isInline: true, directives: [{ type: i2.RouterLinkWithHref, selector: "a[routerLink],area[routerLink]", inputs: ["routerLink", "target", "queryParams", "fragment", "queryParamsHandling", "preserveFragment", "skipLocationChange", "replaceUrl", "state", "relativeTo"] }, { type: i2$1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }] });
74
74
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.13", ngImport: i0, type: LogoComponent, decorators: [{
75
75
  type: Component,
76
76
  args: [{
77
77
  selector: 'abp-logo',
78
- template: `
79
- <a class="navbar-brand" routerLink="/">
80
- <img
81
- *ngIf="appInfo.logoUrl; else appName"
82
- [src]="appInfo.logoUrl"
83
- [alt]="appInfo.name"
84
- width="100%"
85
- height="auto"
86
- />
87
- </a>
88
-
89
- <ng-template #appName>
90
- {{ appInfo.name }}
91
- </ng-template>
78
+ template: `
79
+ <a class="navbar-brand" routerLink="/">
80
+ <img
81
+ *ngIf="appInfo.logoUrl; else appName"
82
+ [src]="appInfo.logoUrl"
83
+ [alt]="appInfo.name"
84
+ width="100%"
85
+ height="auto"
86
+ />
87
+ </a>
88
+
89
+ <ng-template #appName>
90
+ {{ appInfo.name }}
91
+ </ng-template>
92
92
  `,
93
93
  }]
94
94
  }], ctorParameters: function () { return [{ type: i1.EnvironmentService }]; } });
@@ -111,7 +111,7 @@ class RoutesComponent {
111
111
  }
112
112
  }
113
113
  RoutesComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "12.2.13", ngImport: i0, type: RoutesComponent, deps: [{ token: i1.RoutesService }, { token: i0.Renderer2 }], target: i0.ɵɵFactoryTarget.Component });
114
- RoutesComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "12.2.13", type: RoutesComponent, selector: "abp-routes", inputs: { smallScreen: "smallScreen" }, viewQueries: [{ propertyName: "childrenContainers", predicate: ["childrenContainer"], descendants: true }], ngImport: i0, template: "<ul class=\"navbar-nav\">\n <ng-container\n *ngFor=\"let route of routesService.visible$ | async; trackBy: trackByFn\"\n [ngTemplateOutlet]=\"isDropdown(route) ? dropdownLink : defaultLink\"\n [ngTemplateOutletContext]=\"{ $implicit: route }\"\n >\n </ng-container>\n\n <ng-template #defaultLink let-route>\n <li class=\"nav-item\" *abpPermission=\"route.requiredPolicy\">\n <a class=\"nav-link\" [routerLink]=\"[route.path]\"\n ><i *ngIf=\"route.iconClass\" [ngClass]=\"route.iconClass\"></i>\n {{ route.name | abpLocalization }}</a\n >\n </li>\n </ng-template>\n\n <ng-template #dropdownLink let-route>\n <ng-container *ngIf=\"route.children?.length\">\n <li\n class=\"nav-item dropdown\"\n display=\"static\"\n *abpPermission=\"route.requiredPolicy\"\n (click)=\"\n rootDropdownExpand[route.name]\n ? (rootDropdownExpand[route.name] = false)\n : (rootDropdownExpand[route.name] = true)\n \"\n >\n <a\n class=\"nav-link dropdown-toggle\"\n data-toggle=\"dropdown\"\n aria-haspopup=\"true\"\n aria-expanded=\"false\"\n href=\"javascript:void(0)\"\n >\n <i *ngIf=\"route.iconClass\" [ngClass]=\"route.iconClass\"></i>\n {{ route.name | abpLocalization }}\n </a>\n <div\n #routeContainer\n class=\"dropdown-menu border-0 shadow-sm\"\n (click)=\"$event.preventDefault(); $event.stopPropagation()\"\n [class.d-block]=\"smallScreen && rootDropdownExpand[route.name]\"\n >\n <ng-container\n *ngTemplateOutlet=\"forTemplate; context: { $implicit: route }\"\n ></ng-container>\n </div>\n </li>\n </ng-container>\n </ng-template>\n\n <ng-template #forTemplate let-route>\n <ng-container *ngFor=\"let child of route.children\">\n <ng-template\n [ngTemplateOutlet]=\"child.children?.length ? dropdownChild : defaultChild\"\n [ngTemplateOutletContext]=\"{ $implicit: child }\"\n ></ng-template>\n </ng-container>\n </ng-template>\n\n <ng-template #defaultChild let-child>\n <ng-container *ngIf=\"child.path\">\n <div class=\"dropdown-submenu\" *abpPermission=\"child.requiredPolicy\">\n <a class=\"dropdown-item\" [routerLink]=\"[child.path]\" (click)=\"closeDropdown()\">\n <i *ngIf=\"child.iconClass\" [ngClass]=\"child.iconClass\"></i>\n {{ child.name | abpLocalization }}</a\n >\n </div>\n </ng-container>\n </ng-template>\n\n <ng-template #dropdownChild let-child>\n <div\n class=\"dropdown-submenu\"\n ngbDropdown\n #dropdownSubmenu=\"ngbDropdown\"\n placement=\"right-top\"\n [autoClose]=\"true\"\n *abpPermission=\"child.requiredPolicy\"\n >\n <div ngbDropdownToggle [class.dropdown-toggle]=\"false\">\n <a\n abpEllipsis=\"210px\"\n [abpEllipsisEnabled]=\"!smallScreen\"\n role=\"button\"\n class=\"btn d-block text-start dropdown-toggle\"\n >\n <i *ngIf=\"child.iconClass\" [ngClass]=\"child.iconClass\"></i>\n {{ child.name | abpLocalization }}\n </a>\n </div>\n <div\n #childrenContainer\n class=\"dropdown-menu dropdown-menu-start border-0 shadow-sm\"\n [class.d-block]=\"smallScreen && dropdownSubmenu.isOpen()\"\n >\n <ng-container *ngTemplateOutlet=\"forTemplate; context: { $implicit: child }\"></ng-container>\n </div>\n </div>\n </ng-template>\n</ul>\n", directives: [{ type: i2$1.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { type: i2$1.NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet"] }, { type: i1.PermissionDirective, selector: "[abpPermission]", inputs: ["abpPermission"] }, { type: i2.RouterLinkWithHref, selector: "a[routerLink],area[routerLink]", inputs: ["routerLink", "target", "queryParams", "fragment", "queryParamsHandling", "preserveFragment", "skipLocationChange", "replaceUrl", "state", "relativeTo"] }, { type: i2$1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { type: i2$1.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { type: i3.NgbDropdown, selector: "[ngbDropdown]", inputs: ["open", "placement", "container", "autoClose", "display", "dropdownClass"], outputs: ["openChange"], exportAs: ["ngbDropdown"] }, { type: i3.NgbDropdownToggle, selector: "[ngbDropdownToggle]" }, { type: i1$1.EllipsisDirective, selector: "[abpEllipsis]", inputs: ["abpEllipsis", "title", "abpEllipsisEnabled"] }], pipes: { "async": i2$1.AsyncPipe, "abpLocalization": i1.LocalizationPipe } });
114
+ RoutesComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "12.2.13", type: RoutesComponent, selector: "abp-routes", inputs: { smallScreen: "smallScreen" }, viewQueries: [{ propertyName: "childrenContainers", predicate: ["childrenContainer"], descendants: true }], ngImport: i0, template: "<ul class=\"navbar-nav\">\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$1.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { type: i2$1.NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet"] }, { type: i1.PermissionDirective, selector: "[abpPermission]", inputs: ["abpPermission"] }, { type: i2.RouterLinkWithHref, selector: "a[routerLink],area[routerLink]", inputs: ["routerLink", "target", "queryParams", "fragment", "queryParamsHandling", "preserveFragment", "skipLocationChange", "replaceUrl", "state", "relativeTo"] }, { type: i2$1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { type: i2$1.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { type: i3.NgbDropdown, selector: "[ngbDropdown]", inputs: ["open", "placement", "container", "autoClose", "display", "dropdownClass"], outputs: ["openChange"], exportAs: ["ngbDropdown"] }, { type: i3.NgbDropdownToggle, selector: "[ngbDropdownToggle]" }, { type: i1$1.EllipsisDirective, selector: "[abpEllipsis]", inputs: ["abpEllipsis", "title", "abpEllipsisEnabled"] }], pipes: { "async": i2$1.AsyncPipe, "abpLocalization": i1.LocalizationPipe } });
115
115
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.13", ngImport: i0, type: RoutesComponent, decorators: [{
116
116
  type: Component,
117
117
  args: [{
@@ -132,7 +132,7 @@ class NavItemsComponent {
132
132
  }
133
133
  }
134
134
  NavItemsComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "12.2.13", ngImport: i0, type: NavItemsComponent, deps: [{ token: i1$1.NavItemsService }], target: i0.ɵɵFactoryTarget.Component });
135
- NavItemsComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "12.2.13", type: NavItemsComponent, selector: "abp-nav-items", ngImport: i0, template: "<ul class=\"navbar-nav\">\n <ng-container *ngFor=\"let item of navItems.items$ | async; trackBy: trackByFn\">\n <ng-container *ngIf=\"item.visible && item.visible()\">\n <li class=\"nav-item d-flex align-items-center\" *abpPermission=\"item.requiredPolicy\">\n <ng-container\n *ngIf=\"item.component; else htmlTemplate\"\n [ngComponentOutlet]=\"item.component\"\n ></ng-container>\n\n <ng-template #htmlTemplate>\n <div [innerHTML]=\"item.html\" (click)=\"item.action ? item.action() : null\"></div>\n </ng-template>\n </li>\n </ng-container>\n </ng-container>\n</ul>\n", directives: [{ type: i2$1.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { type: i2$1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { type: i1.PermissionDirective, selector: "[abpPermission]", inputs: ["abpPermission"] }, { type: i2$1.NgComponentOutlet, selector: "[ngComponentOutlet]", inputs: ["ngComponentOutlet", "ngComponentOutletInjector", "ngComponentOutletContent", "ngComponentOutletNgModuleFactory"] }], pipes: { "async": i2$1.AsyncPipe } });
135
+ NavItemsComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "12.2.13", type: NavItemsComponent, selector: "abp-nav-items", ngImport: i0, template: "<ul class=\"navbar-nav\">\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$1.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { type: i2$1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { type: i1.PermissionDirective, selector: "[abpPermission]", inputs: ["abpPermission"] }, { type: i2$1.NgComponentOutlet, selector: "[ngComponentOutlet]", inputs: ["ngComponentOutlet", "ngComponentOutletInjector", "ngComponentOutletContent", "ngComponentOutletNgModuleFactory"] }], pipes: { "async": i2$1.AsyncPipe } });
136
136
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.13", ngImport: i0, type: NavItemsComponent, decorators: [{
137
137
  type: Component,
138
138
  args: [{
@@ -147,7 +147,7 @@ class PageAlertContainerComponent {
147
147
  }
148
148
  }
149
149
  PageAlertContainerComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "12.2.13", ngImport: i0, type: PageAlertContainerComponent, deps: [{ token: i1$1.PageAlertService }], target: i0.ɵɵFactoryTarget.Component });
150
- PageAlertContainerComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "12.2.13", type: PageAlertContainerComponent, selector: "abp-page-alert-container", ngImport: i0, template: "<ng-container *ngFor=\"let alert of service.alerts$ | async; let i = index\">\n <div\n class=\"alert alert-{{ alert.type }} fade show\"\n [ngClass]=\"{ 'alert-dismissible fade show': alert.dismissible }\"\n role=\"alert\"\n >\n <h4 class=\"alert-heading\" *ngIf=\"alert.title\">\n {{ alert.title | abpLocalization: alert.titleLocalizationParams }}\n </h4>\n {{ alert.message | abpLocalization: alert.messageLocalizationParams }}\n <button\n *ngIf=\"alert.dismissible\"\n type=\"button\"\n class=\"close\"\n data-dismiss=\"alert\"\n aria-label=\"Close\"\n (click)=\"service.remove(i)\"\n >\n <span aria-hidden=\"true\">&times;</span>\n </button>\n </div>\n</ng-container>\n", directives: [{ type: i2$1.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { type: i2$1.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { type: i2$1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }], pipes: { "async": i2$1.AsyncPipe, "abpLocalization": i1.LocalizationPipe }, encapsulation: i0.ViewEncapsulation.None });
150
+ PageAlertContainerComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "12.2.13", type: PageAlertContainerComponent, selector: "abp-page-alert-container", ngImport: i0, template: "<ng-container *ngFor=\"let alert of service.alerts$ | async; let i = index\">\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$1.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { type: i2$1.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { type: i2$1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }], pipes: { "async": i2$1.AsyncPipe, "abpLocalization": i1.LocalizationPipe }, encapsulation: i0.ViewEncapsulation.None });
151
151
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.13", ngImport: i0, type: PageAlertContainerComponent, decorators: [{
152
152
  type: Component,
153
153
  args: [{
@@ -163,7 +163,7 @@ class TenantBoxComponent {
163
163
  }
164
164
  }
165
165
  TenantBoxComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "12.2.13", ngImport: i0, type: TenantBoxComponent, deps: [{ token: i1$2.TenantBoxService }], target: i0.ɵɵFactoryTarget.Component });
166
- TenantBoxComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "12.2.13", type: TenantBoxComponent, selector: "abp-tenant-box", providers: [TenantBoxService], ngImport: i0, template: "<ng-container *ngIf=\"(service.currentTenant$ | async) || { name: '' } as currentTenant\">\n <div class=\"card shadow-sm rounded mb-3\">\n <div class=\"card-body px-5\">\n <div class=\"row\">\n <div class=\"col\">\n <span style=\"font-size: 0.8em\" class=\"text-uppercase text-muted\">{{\n 'AbpUiMultiTenancy::Tenant' | abpLocalization\n }}</span\n ><br />\n <h6 class=\"m-0 d-inline-block\">\n <i>{{ currentTenant.name || ('AbpUiMultiTenancy::NotSelected' | abpLocalization) }}</i>\n </h6>\n </div>\n <div class=\"col-auto\">\n <a\n id=\"AbpTenantSwitchLink\"\n href=\"javascript:void(0);\"\n class=\"btn btn-sm mt-3 btn-outline-primary\"\n (click)=\"service.onSwitch()\"\n >{{ 'AbpUiMultiTenancy::Switch' | abpLocalization }}</a\n >\n </div>\n </div>\n </div>\n </div>\n\n <abp-modal [(visible)]=\"service.isModalVisible\" [busy]=\"service.modalBusy\">\n <ng-template #abpHeader>\n <h5>Switch Tenant</h5>\n </ng-template>\n <ng-template #abpBody>\n <form (ngSubmit)=\"service.save()\">\n <div class=\"mt-2\">\n <div class=\"mb-3 form-group\">\n <label for=\"name\" class=\"form-label\">{{\n 'AbpUiMultiTenancy::Name' | abpLocalization\n }}</label>\n <input\n [(ngModel)]=\"service.name\"\n type=\"text\"\n id=\"name\"\n name=\"tenant\"\n class=\"form-control\"\n autofocus\n />\n </div>\n <p>{{ 'AbpUiMultiTenancy::SwitchTenantHint' | abpLocalization }}</p>\n </div>\n </form>\n </ng-template>\n <ng-template #abpFooter>\n <button abpClose type=\"button\" class=\"btn btn-secondary\">\n {{ 'AbpTenantManagement::Cancel' | abpLocalization }}\n </button>\n <abp-button\n type=\"abp-button\"\n iconClass=\"fa fa-check\"\n (click)=\"service.save()\"\n [disabled]=\"currentTenant?.name === service.name\"\n >\n <span>{{ 'AbpTenantManagement::Save' | abpLocalization }}</span>\n </abp-button>\n </ng-template>\n </abp-modal>\n</ng-container>\n", components: [{ type: i1$1.ModalComponent, selector: "abp-modal", inputs: ["visible", "busy", "options", "suppressUnsavedChangesWarning"], outputs: ["visibleChange", "init", "appear", "disappear"] }, { type: i1$1.ButtonComponent, selector: "abp-button", inputs: ["buttonId", "buttonClass", "buttonType", "iconClass", "loading", "disabled", "attributes"], outputs: ["click", "focus", "blur", "abpClick", "abpFocus", "abpBlur"] }], directives: [{ type: i2$1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { type: i4.ɵNgNoValidate, selector: "form:not([ngNoForm]):not([ngNativeValidate])" }, { type: i4.NgControlStatusGroup, selector: "[formGroupName],[formArrayName],[ngModelGroup],[formGroup],form:not([ngNoForm]),[ngForm]" }, { type: i4.NgForm, selector: "form:not([ngNoForm]):not([formGroup]),ng-form,[ngForm]", inputs: ["ngFormOptions"], outputs: ["ngSubmit"], exportAs: ["ngForm"] }, { type: i4.DefaultValueAccessor, selector: "input:not([type=checkbox])[formControlName],textarea[formControlName],input:not([type=checkbox])[formControl],textarea[formControl],input:not([type=checkbox])[ngModel],textarea[ngModel],[ngDefaultControl]" }, { type: i1.AutofocusDirective, selector: "[autofocus]", inputs: ["autofocus"] }, { type: i4.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { type: i4.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }, { type: i1$1.ModalCloseDirective, selector: "[abpClose]" }], pipes: { "async": i2$1.AsyncPipe, "abpLocalization": i1.LocalizationPipe } });
166
+ TenantBoxComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "12.2.13", type: TenantBoxComponent, selector: "abp-tenant-box", providers: [TenantBoxService], ngImport: i0, template: "<ng-container *ngIf=\"(service.currentTenant$ | async) || { name: '' } as currentTenant\">\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$1.ModalComponent, selector: "abp-modal", inputs: ["visible", "busy", "options", "suppressUnsavedChangesWarning"], outputs: ["visibleChange", "init", "appear", "disappear"] }, { type: i1$1.ButtonComponent, selector: "abp-button", inputs: ["buttonId", "buttonClass", "buttonType", "iconClass", "loading", "disabled", "attributes"], outputs: ["click", "focus", "blur", "abpClick", "abpFocus", "abpBlur"] }], directives: [{ type: i2$1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { type: i4.ɵNgNoValidate, selector: "form:not([ngNoForm]):not([ngNativeValidate])" }, { type: i4.NgControlStatusGroup, selector: "[formGroupName],[formArrayName],[ngModelGroup],[formGroup],form:not([ngNoForm]),[ngForm]" }, { type: i4.NgForm, selector: "form:not([ngNoForm]):not([formGroup]),ng-form,[ngForm]", inputs: ["ngFormOptions"], outputs: ["ngSubmit"], exportAs: ["ngForm"] }, { type: i4.DefaultValueAccessor, selector: "input:not([type=checkbox])[formControlName],textarea[formControlName],input:not([type=checkbox])[formControl],textarea[formControl],input:not([type=checkbox])[ngModel],textarea[ngModel],[ngDefaultControl]" }, { type: i1.AutofocusDirective, selector: "[autofocus]", inputs: ["autofocus"] }, { type: i4.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { type: i4.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }, { type: i1$1.ModalCloseDirective, selector: "[abpClose]" }], pipes: { "async": i2$1.AsyncPipe, "abpLocalization": i1.LocalizationPipe } });
167
167
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.13", ngImport: i0, type: TenantBoxComponent, decorators: [{
168
168
  type: Component,
169
169
  args: [{
@@ -179,7 +179,7 @@ class AuthWrapperComponent {
179
179
  }
180
180
  }
181
181
  AuthWrapperComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "12.2.13", ngImport: i0, type: AuthWrapperComponent, deps: [{ token: i1$2.AuthWrapperService }], target: i0.ɵɵFactoryTarget.Component });
182
- AuthWrapperComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "12.2.13", type: AuthWrapperComponent, selector: "abp-auth-wrapper", providers: [AuthWrapperService], ngImport: i0, template: "<div class=\"row\">\n <div class=\"mx-auto col col-md-5\">\n <ng-container *ngIf=\"(service.isMultiTenancyEnabled$ | async) && service.isTenantBoxVisible\">\n <abp-tenant-box\n *abpReplaceableTemplate=\"{ componentKey: service.tenantBoxKey }\"\n ></abp-tenant-box>\n </ng-container>\n\n <div class=\"abp-account-container\">\n <div\n *ngIf=\"service.enableLocalLogin$ | async; else disableLocalLoginTemplate\"\n class=\"card mt-3 shadow-sm rounded\"\n >\n <div class=\"card-body p-5\">\n <ng-content></ng-content>\n </div>\n </div>\n </div>\n </div>\n</div>\n\n<ng-template #disableLocalLoginTemplate>\n <div class=\"alert alert-warning\">\n <strong>{{ 'AbpAccount::InvalidLoginRequest' | abpLocalization }}</strong>\n {{ 'AbpAccount::ThereAreNoLoginSchemesConfiguredForThisClient' | abpLocalization }}\n </div>\n</ng-template>\n", components: [{ type: TenantBoxComponent, selector: "abp-tenant-box" }], directives: [{ type: i2$1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { type: i1.ReplaceableTemplateDirective, selector: "[abpReplaceableTemplate]", inputs: ["abpReplaceableTemplate"] }], pipes: { "async": i2$1.AsyncPipe, "abpLocalization": i1.LocalizationPipe } });
182
+ AuthWrapperComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "12.2.13", type: AuthWrapperComponent, selector: "abp-auth-wrapper", providers: [AuthWrapperService], ngImport: i0, template: "<div class=\"row\">\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$1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { type: i1.ReplaceableTemplateDirective, selector: "[abpReplaceableTemplate]", inputs: ["abpReplaceableTemplate"] }], pipes: { "async": i2$1.AsyncPipe, "abpLocalization": i1.LocalizationPipe } });
183
183
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.13", ngImport: i0, type: AuthWrapperComponent, decorators: [{
184
184
  type: Component,
185
185
  args: [{
@@ -201,7 +201,7 @@ class AccountLayoutComponent {
201
201
  // required for dynamic component
202
202
  AccountLayoutComponent.type = "account" /* account */;
203
203
  AccountLayoutComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "12.2.13", ngImport: i0, type: AccountLayoutComponent, deps: [{ token: LayoutService }], target: i0.ɵɵFactoryTarget.Component });
204
- AccountLayoutComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "12.2.13", type: AccountLayoutComponent, selector: "abp-layout-account", providers: [LayoutService, SubscriptionService], ngImport: i0, template: "<nav\n class=\"navbar navbar-expand-lg navbar-dark bg-dark shadow-sm flex-column flex-md-row mb-4\"\n id=\"main-navbar\"\n style=\"min-height: 4rem\"\n>\n <div class=\"container\">\n <abp-logo *abpReplaceableTemplate=\"{ componentKey: service.logoComponentKey }\"></abp-logo>\n <button\n class=\"navbar-toggler\"\n type=\"button\"\n [attr.aria-expanded]=\"!service.isCollapsed\"\n (click)=\"service.isCollapsed = !service.isCollapsed\"\n >\n <span class=\"navbar-toggler-icon\"></span>\n </button>\n <div\n class=\"navbar-collapse\"\n [class.overflow-hidden]=\"service.smallScreen\"\n id=\"main-navbar-collapse\"\n >\n <ng-container *ngTemplateOutlet=\"!service.smallScreen ? navigations : null\"></ng-container>\n\n <div\n *ngIf=\"service.smallScreen\"\n [@collapseWithMargin]=\"service.isCollapsed ? 'collapsed' : 'expanded'\"\n >\n <ng-container *ngTemplateOutlet=\"navigations\"></ng-container>\n </div>\n\n <ng-template #navigations>\n <abp-routes\n *abpReplaceableTemplate=\"{\n componentKey: service.routesComponentKey,\n inputs: {\n smallScreen: { value: service.smallScreen }\n }\n }\"\n class=\"mx-auto\"\n [smallScreen]=\"service.smallScreen\"\n ></abp-routes>\n\n <abp-nav-items\n *abpReplaceableTemplate=\"{\n componentKey: service.navItemsComponentKey\n }\"\n ></abp-nav-items>\n </ng-template>\n </div>\n </div>\n</nav>\n\n<!-- [@slideFromBottom]=\"outlet.isActivated && outlet.activatedRoute?.routeConfig?.path\" TODO: throws ExpressionChangedAfterItHasBeenCheck when animation is active. It should be fixed -->\n<div class=\"container\">\n <abp-page-alert-container></abp-page-alert-container>\n <abp-auth-wrapper\n *abpReplaceableTemplate=\"{\n componentKey: authWrapperKey\n }\"\n >\n <router-outlet #outlet=\"outlet\"></router-outlet>\n </abp-auth-wrapper>\n</div>\n", components: [{ type: LogoComponent, selector: "abp-logo" }, { type: RoutesComponent, selector: "abp-routes", inputs: ["smallScreen"] }, { type: NavItemsComponent, selector: "abp-nav-items" }, { type: PageAlertContainerComponent, selector: "abp-page-alert-container" }, { type: AuthWrapperComponent, selector: "abp-auth-wrapper" }], directives: [{ type: i3.NgbNavbar, selector: ".navbar" }, { type: i1.ReplaceableTemplateDirective, selector: "[abpReplaceableTemplate]", inputs: ["abpReplaceableTemplate"] }, { type: i2$1.NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet"] }, { type: i2$1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { type: i2.RouterOutlet, selector: "router-outlet", outputs: ["activate", "deactivate"], exportAs: ["outlet"] }] });
204
+ AccountLayoutComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "12.2.13", type: AccountLayoutComponent, selector: "abp-layout-account", providers: [LayoutService, SubscriptionService], ngImport: i0, template: "<nav\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.NgbNavbar, selector: ".navbar" }, { type: i1.ReplaceableTemplateDirective, selector: "[abpReplaceableTemplate]", inputs: ["abpReplaceableTemplate"] }, { type: i2$1.NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet"] }, { type: i2$1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { type: i2.RouterOutlet, selector: "router-outlet", outputs: ["activate", "deactivate"], exportAs: ["outlet"] }] });
205
205
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.13", ngImport: i0, type: AccountLayoutComponent, decorators: [{
206
206
  type: Component,
207
207
  args: [{
@@ -222,7 +222,7 @@ class ApplicationLayoutComponent {
222
222
  // required for dynamic component
223
223
  ApplicationLayoutComponent.type = "application" /* application */;
224
224
  ApplicationLayoutComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "12.2.13", ngImport: i0, type: ApplicationLayoutComponent, deps: [{ token: LayoutService }], target: i0.ɵɵFactoryTarget.Component });
225
- ApplicationLayoutComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "12.2.13", type: ApplicationLayoutComponent, selector: "abp-layout-application", providers: [LayoutService, SubscriptionService], ngImport: i0, template: "<nav\n class=\"navbar navbar-expand-lg navbar-dark bg-dark shadow-sm flex-column flex-md-row mb-4\"\n id=\"main-navbar\"\n style=\"min-height: 4rem\"\n>\n <div class=\"container\">\n <abp-logo *abpReplaceableTemplate=\"{ componentKey: service.logoComponentKey }\"></abp-logo>\n <button\n class=\"navbar-toggler\"\n type=\"button\"\n [attr.aria-expanded]=\"!service.isCollapsed\"\n (click)=\"service.isCollapsed = !service.isCollapsed\"\n >\n <span class=\"navbar-toggler-icon\"></span>\n </button>\n <div class=\"navbar-collapse\" [class.overflow-hidden]=\"service.smallScreen\" id=\"main-navbar-collapse\">\n <ng-container *ngTemplateOutlet=\"!service.smallScreen ? navigations : null\"></ng-container>\n\n <div *ngIf=\"service.smallScreen\" [@collapseWithMargin]=\"service.isCollapsed ? 'collapsed' : 'expanded'\">\n <ng-container *ngTemplateOutlet=\"navigations\"></ng-container>\n </div>\n\n <ng-template #navigations>\n <abp-routes\n *abpReplaceableTemplate=\"{\n componentKey: service.routesComponentKey,\n inputs: {\n smallScreen: { value: service.smallScreen }\n }\n }\"\n class=\"mx-auto\"\n [smallScreen]=\"service.smallScreen\"\n ></abp-routes>\n\n <abp-nav-items\n *abpReplaceableTemplate=\"{\n componentKey: service.navItemsComponentKey\n }\"\n ></abp-nav-items>\n </ng-template>\n </div>\n </div>\n</nav>\n\n<!-- [@slideFromBottom]=\"outlet.isActivated && outlet.activatedRoute?.routeConfig?.path\" TODO: throws ExpressionChangedAfterItHasBeenCheck when animation is active. It should be fixed -->\n<div class=\"container\">\n <abp-page-alert-container></abp-page-alert-container>\n\n <router-outlet #outlet=\"outlet\"></router-outlet>\n</div>\n", components: [{ type: LogoComponent, selector: "abp-logo" }, { type: RoutesComponent, selector: "abp-routes", inputs: ["smallScreen"] }, { type: NavItemsComponent, selector: "abp-nav-items" }, { type: PageAlertContainerComponent, selector: "abp-page-alert-container" }], directives: [{ type: i3.NgbNavbar, selector: ".navbar" }, { type: i1.ReplaceableTemplateDirective, selector: "[abpReplaceableTemplate]", inputs: ["abpReplaceableTemplate"] }, { type: i2$1.NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet"] }, { type: i2$1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { type: i2.RouterOutlet, selector: "router-outlet", outputs: ["activate", "deactivate"], exportAs: ["outlet"] }], animations: [slideFromBottom, collapseWithMargin] });
225
+ ApplicationLayoutComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "12.2.13", type: ApplicationLayoutComponent, selector: "abp-layout-application", providers: [LayoutService, SubscriptionService], ngImport: i0, template: "<nav\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.NgbNavbar, selector: ".navbar" }, { type: i1.ReplaceableTemplateDirective, selector: "[abpReplaceableTemplate]", inputs: ["abpReplaceableTemplate"] }, { type: i2$1.NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet"] }, { type: i2$1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { type: i2.RouterOutlet, selector: "router-outlet", outputs: ["activate", "deactivate"], exportAs: ["outlet"] }], animations: [slideFromBottom, collapseWithMargin] });
226
226
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.13", ngImport: i0, type: ApplicationLayoutComponent, decorators: [{
227
227
  type: Component,
228
228
  args: [{
@@ -237,17 +237,17 @@ class EmptyLayoutComponent {
237
237
  }
238
238
  EmptyLayoutComponent.type = "empty" /* empty */;
239
239
  EmptyLayoutComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "12.2.13", ngImport: i0, type: EmptyLayoutComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
240
- EmptyLayoutComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "12.2.13", type: EmptyLayoutComponent, selector: "abp-layout-empty", ngImport: i0, template: `
241
- <router-outlet></router-outlet>
242
- <abp-confirmation></abp-confirmation>
240
+ EmptyLayoutComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "12.2.13", type: EmptyLayoutComponent, selector: "abp-layout-empty", ngImport: i0, template: `
241
+ <router-outlet></router-outlet>
242
+ <abp-confirmation></abp-confirmation>
243
243
  `, isInline: true, components: [{ type: i1$1.ConfirmationComponent, selector: "abp-confirmation" }], directives: [{ type: i2.RouterOutlet, selector: "router-outlet", outputs: ["activate", "deactivate"], exportAs: ["outlet"] }] });
244
244
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.13", ngImport: i0, type: EmptyLayoutComponent, decorators: [{
245
245
  type: Component,
246
246
  args: [{
247
247
  selector: 'abp-layout-empty',
248
- template: `
249
- <router-outlet></router-outlet>
250
- <abp-confirmation></abp-confirmation>
248
+ template: `
249
+ <router-outlet></router-outlet>
250
+ <abp-confirmation></abp-confirmation>
251
251
  `,
252
252
  }]
253
253
  }] });
@@ -272,7 +272,7 @@ class CurrentUserComponent {
272
272
  }
273
273
  }
274
274
  CurrentUserComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "12.2.13", ngImport: i0, type: CurrentUserComponent, deps: [{ token: NAVIGATE_TO_MANAGE_PROFILE }, { token: i1.AuthService }, { token: i1.ConfigStateService }, { token: i1.SessionStateService }], target: i0.ɵɵFactoryTarget.Component });
275
- CurrentUserComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "12.2.13", type: CurrentUserComponent, selector: "abp-current-user", ngImport: i0, template: "<ng-template #loginBtn>\n <a role=\"button\" class=\"nav-link pointer\" (click)=\"navigateToLogin()\">{{\n 'AbpAccount::Login' | abpLocalization\n }}</a>\n</ng-template>\n<div\n *ngIf=\"(currentUser$ | async)?.isAuthenticated; else loginBtn\"\n ngbDropdown\n class=\"dropdown\"\n #currentUserDropdown=\"ngbDropdown\"\n display=\"static\"\n>\n <a\n ngbDropdownToggle\n class=\"nav-link\"\n href=\"javascript:void(0)\"\n role=\"button\"\n id=\"dropdownMenuLink\"\n data-toggle=\"dropdown\"\n aria-haspopup=\"true\"\n aria-expanded=\"false\"\n >\n <small *ngIf=\"(selectedTenant$ | async)?.name as tenantName\"\n ><i>{{ tenantName }}</i\n >\\</small\n >\n <strong>{{ (currentUser$ | async)?.userName }}</strong>\n </a>\n <div\n class=\"dropdown-menu dropdown-menu-end border-0 shadow-sm\"\n aria-labelledby=\"dropdownMenuLink\"\n [class.d-block]=\"smallScreen && currentUserDropdown.isOpen()\"\n >\n <a class=\"dropdown-item pointer\" (click)=\"navigateToManageProfile()\"\n ><i class=\"fa fa-cog me-1\"></i>{{ 'AbpAccount::MyAccount' | abpLocalization }}</a\n >\n <a class=\"dropdown-item\" href=\"javascript:void(0)\" (click)=\"logout()\"\n ><i class=\"fa fa-power-off me-1\"></i>{{ 'AbpUi::Logout' | abpLocalization }}</a\n >\n </div>\n</div>\n", directives: [{ type: i2$1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { type: i3.NgbDropdown, selector: "[ngbDropdown]", inputs: ["open", "placement", "container", "autoClose", "display", "dropdownClass"], outputs: ["openChange"], exportAs: ["ngbDropdown"] }, { type: i3.NgbDropdownToggle, selector: "[ngbDropdownToggle]" }], pipes: { "abpLocalization": i1.LocalizationPipe, "async": i2$1.AsyncPipe } });
275
+ CurrentUserComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "12.2.13", type: CurrentUserComponent, selector: "abp-current-user", ngImport: i0, template: "<ng-template #loginBtn>\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$1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { type: i3.NgbDropdown, selector: "[ngbDropdown]", inputs: ["open", "placement", "container", "autoClose", "display", "dropdownClass"], outputs: ["openChange"], exportAs: ["ngbDropdown"] }, { type: i3.NgbDropdownToggle, selector: "[ngbDropdownToggle]" }], pipes: { "abpLocalization": i1.LocalizationPipe, "async": i2$1.AsyncPipe } });
276
276
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.13", ngImport: i0, type: CurrentUserComponent, decorators: [{
277
277
  type: Component,
278
278
  args: [{
@@ -307,79 +307,79 @@ class LanguagesComponent {
307
307
  }
308
308
  }
309
309
  LanguagesComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "12.2.13", ngImport: i0, type: LanguagesComponent, deps: [{ token: i1.SessionStateService }, { token: i1.ConfigStateService }], target: i0.ɵɵFactoryTarget.Component });
310
- LanguagesComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "12.2.13", type: LanguagesComponent, selector: "abp-languages", ngImport: i0, template: `
311
- <div
312
- *ngIf="((dropdownLanguages$ | async)?.length || 0) > 0"
313
- class="dropdown"
314
- ngbDropdown
315
- #languageDropdown="ngbDropdown"
316
- display="static"
317
- >
318
- <a
319
- ngbDropdownToggle
320
- class="nav-link"
321
- href="javascript:void(0)"
322
- role="button"
323
- id="dropdownMenuLink"
324
- data-toggle="dropdown"
325
- aria-haspopup="true"
326
- aria-expanded="false"
327
- >
328
- {{ defaultLanguage$ | async }}
329
- </a>
330
- <div
331
- class="dropdown-menu dropdown-menu-end border-0 shadow-sm"
332
- aria-labelledby="dropdownMenuLink"
333
- [class.d-block]="smallScreen && languageDropdown.isOpen()"
334
- >
335
- <a
336
- *ngFor="let lang of dropdownLanguages$ | async"
337
- href="javascript:void(0)"
338
- class="dropdown-item"
339
- (click)="onChangeLang(lang.cultureName || '')"
340
- >{{ lang?.displayName }}</a
341
- >
342
- </div>
343
- </div>
310
+ LanguagesComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "12.2.13", type: LanguagesComponent, selector: "abp-languages", ngImport: i0, template: `
311
+ <div
312
+ *ngIf="((dropdownLanguages$ | async)?.length || 0) > 0"
313
+ class="dropdown"
314
+ ngbDropdown
315
+ #languageDropdown="ngbDropdown"
316
+ display="static"
317
+ >
318
+ <a
319
+ ngbDropdownToggle
320
+ class="nav-link"
321
+ href="javascript:void(0)"
322
+ role="button"
323
+ id="dropdownMenuLink"
324
+ data-toggle="dropdown"
325
+ aria-haspopup="true"
326
+ aria-expanded="false"
327
+ >
328
+ {{ defaultLanguage$ | async }}
329
+ </a>
330
+ <div
331
+ class="dropdown-menu dropdown-menu-end border-0 shadow-sm"
332
+ aria-labelledby="dropdownMenuLink"
333
+ [class.d-block]="smallScreen && languageDropdown.isOpen()"
334
+ >
335
+ <a
336
+ *ngFor="let lang of dropdownLanguages$ | async"
337
+ href="javascript:void(0)"
338
+ class="dropdown-item"
339
+ (click)="onChangeLang(lang.cultureName || '')"
340
+ >{{ lang?.displayName }}</a
341
+ >
342
+ </div>
343
+ </div>
344
344
  `, isInline: true, directives: [{ type: i2$1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { type: i3.NgbDropdown, selector: "[ngbDropdown]", inputs: ["open", "placement", "container", "autoClose", "display", "dropdownClass"], outputs: ["openChange"], exportAs: ["ngbDropdown"] }, { type: i3.NgbDropdownToggle, selector: "[ngbDropdownToggle]" }, { type: i2$1.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }], pipes: { "async": i2$1.AsyncPipe } });
345
345
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.13", ngImport: i0, type: LanguagesComponent, decorators: [{
346
346
  type: Component,
347
347
  args: [{
348
348
  selector: 'abp-languages',
349
- template: `
350
- <div
351
- *ngIf="((dropdownLanguages$ | async)?.length || 0) > 0"
352
- class="dropdown"
353
- ngbDropdown
354
- #languageDropdown="ngbDropdown"
355
- display="static"
356
- >
357
- <a
358
- ngbDropdownToggle
359
- class="nav-link"
360
- href="javascript:void(0)"
361
- role="button"
362
- id="dropdownMenuLink"
363
- data-toggle="dropdown"
364
- aria-haspopup="true"
365
- aria-expanded="false"
366
- >
367
- {{ defaultLanguage$ | async }}
368
- </a>
369
- <div
370
- class="dropdown-menu dropdown-menu-end border-0 shadow-sm"
371
- aria-labelledby="dropdownMenuLink"
372
- [class.d-block]="smallScreen && languageDropdown.isOpen()"
373
- >
374
- <a
375
- *ngFor="let lang of dropdownLanguages$ | async"
376
- href="javascript:void(0)"
377
- class="dropdown-item"
378
- (click)="onChangeLang(lang.cultureName || '')"
379
- >{{ lang?.displayName }}</a
380
- >
381
- </div>
382
- </div>
349
+ template: `
350
+ <div
351
+ *ngIf="((dropdownLanguages$ | async)?.length || 0) > 0"
352
+ class="dropdown"
353
+ ngbDropdown
354
+ #languageDropdown="ngbDropdown"
355
+ display="static"
356
+ >
357
+ <a
358
+ ngbDropdownToggle
359
+ class="nav-link"
360
+ href="javascript:void(0)"
361
+ role="button"
362
+ id="dropdownMenuLink"
363
+ data-toggle="dropdown"
364
+ aria-haspopup="true"
365
+ aria-expanded="false"
366
+ >
367
+ {{ defaultLanguage$ | async }}
368
+ </a>
369
+ <div
370
+ class="dropdown-menu dropdown-menu-end border-0 shadow-sm"
371
+ aria-labelledby="dropdownMenuLink"
372
+ [class.d-block]="smallScreen && languageDropdown.isOpen()"
373
+ >
374
+ <a
375
+ *ngFor="let lang of dropdownLanguages$ | async"
376
+ href="javascript:void(0)"
377
+ class="dropdown-item"
378
+ (click)="onChangeLang(lang.cultureName || '')"
379
+ >{{ lang?.displayName }}</a
380
+ >
381
+ </div>
382
+ </div>
383
383
  `,
384
384
  }]
385
385
  }], ctorParameters: function () { return [{ type: i1.SessionStateService }, { type: i1.ConfigStateService }]; } });
@@ -400,19 +400,19 @@ class ValidationErrorComponent extends ValidationErrorComponent$1 {
400
400
  }
401
401
  }
402
402
  ValidationErrorComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "12.2.13", ngImport: i0, type: ValidationErrorComponent, deps: null, target: i0.ɵɵFactoryTarget.Component });
403
- ValidationErrorComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "12.2.13", type: ValidationErrorComponent, selector: "abp-validation-error", usesInheritance: true, ngImport: i0, template: `
404
- <div class="invalid-feedback" *ngFor="let error of abpErrors; trackBy: trackByFn">
405
- {{ error.message | abpLocalization: error.interpoliteParams }}
406
- </div>
403
+ ValidationErrorComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "12.2.13", type: ValidationErrorComponent, selector: "abp-validation-error", usesInheritance: true, ngImport: i0, template: `
404
+ <div class="invalid-feedback" *ngFor="let error of abpErrors; trackBy: trackByFn">
405
+ {{ error.message | abpLocalization: error.interpoliteParams }}
406
+ </div>
407
407
  `, isInline: true, directives: [{ type: i2$1.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }], pipes: { "abpLocalization": i1.LocalizationPipe }, changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None });
408
408
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.13", ngImport: i0, type: ValidationErrorComponent, decorators: [{
409
409
  type: Component,
410
410
  args: [{
411
411
  selector: 'abp-validation-error',
412
- template: `
413
- <div class="invalid-feedback" *ngFor="let error of abpErrors; trackBy: trackByFn">
414
- {{ error.message | abpLocalization: error.interpoliteParams }}
415
- </div>
412
+ template: `
413
+ <div class="invalid-feedback" *ngFor="let error of abpErrors; trackBy: trackByFn">
414
+ {{ error.message | abpLocalization: error.interpoliteParams }}
415
+ </div>
416
416
  `,
417
417
  changeDetection: ChangeDetectionStrategy.OnPush,
418
418
  encapsulation: ViewEncapsulation.None,
@@ -523,155 +523,155 @@ function configureNavItems(navItems) {
523
523
  };
524
524
  }
525
525
 
526
- var styles = `
527
- .content-header-title {
528
- font-size: 24px;
529
- }
530
- .entry-row {
531
- margin-bottom: 15px;
532
- }
533
- #main-navbar-tools a.dropdown-toggle {
534
- text-decoration: none;
535
- color: #fff;
536
- }
537
- .navbar .dropdown-submenu {
538
- position: relative;
539
- }
540
- .navbar .dropdown-menu {
541
- margin: 0;
542
- padding: 0;
543
- }
544
- .navbar .dropdown-menu a {
545
- font-size: .9em;
546
- padding: 10px 15px;
547
- display: block;
548
- min-width: 210px;
549
- text-align: left;
550
- border-radius: 0.25rem;
551
- min-height: 44px;
552
- }
553
- [dir=rtl] .navbar .dropdown-menu a {
554
- text-align: right!important;
555
- }
556
- .navbar .dropdown-submenu a::after {
557
- transform: rotate(-90deg);
558
- position: absolute;
559
- right: 16px;
560
- top: 18px;
561
- }
562
- [dir=rtl] .navbar .dropdown-submenu a::after {
563
- transform: rotate(90deg);
564
- left: 16px;
565
- right: auto;
566
- top: 20px;
567
- }
568
- .navbar .dropdown-submenu .dropdown-menu {
569
- top: 0;
570
- left: 100%;
571
- }
572
- /* work around for rtl. Track https://github.com/ng-bootstrap/ng-bootstrap/issues/4100 issue */
573
- [dir=rtl] .navbar .dropdown-submenu .dropdown-menu {
574
- top: 0;
575
- right: 100%;
576
- }
577
- .card-header .btn {
578
- padding: 2px 6px;
579
- }
580
- .card-header h5 {
581
- margin: 0;
582
- }
583
- .container > .card {
584
- box-shadow: 0 0.125rem 0.25rem rgba(0, 0, 0, 0.075) !important;
585
- }
586
- @media screen and (min-width: 992px) {
587
- .navbar .dropdown:hover > .dropdown-menu {
588
- display: block;
589
- }
590
-
591
- .navbar .dropdown-submenu:hover > .dropdown-menu {
592
- display: block;
593
- }
594
- }
595
- .input-validation-error {
596
- border-color: #dc3545;
597
- }
598
- .field-validation-error {
599
- font-size: 0.8em;
600
- }
601
- .ui-table .ui-table-tbody > tr.empty-row > div.empty-row-content {
602
- border: 1px solid #c8c8c8;
603
- }
604
- .abp-loading {
605
- background: rgba(0, 0, 0, 0.05);
606
- }
607
- .modal-backdrop {
608
- background-color: rgba(0, 0, 0, 0.6);
609
- }
610
-
611
- .confirmation .confirmation-backdrop {
612
- background: rgba(0, 0, 0, 0.7) !important;
613
- }
614
- .confirmation .confirmation-dialog {
615
- border: none;
616
- border-radius: 10px;
617
- background-color: #fff;
618
- box-shadow: 0 0 10px -5px rgba(0, 0, 0, 0.5);
619
- }
620
- .confirmation .confirmation-dialog .icon-container .icon {
621
- stroke: #fff;
622
- color: #fff;
623
- }
624
- .confirmation .confirmation-dialog .icon-container.info .icon {
625
- stroke: #2f96b4;
626
- color: #2f96b4;
627
- }
628
- .confirmation .confirmation-dialog .icon-container.success .icon {
629
- stroke: #51a351;
630
- color: #51a351;
631
- }
632
- .confirmation .confirmation-dialog .icon-container.warning .icon {
633
- stroke: #f89406;
634
- color: #f89406;
635
- }
636
- .confirmation .confirmation-dialog .icon-container.error .icon {
637
- stroke: #bd362f;
638
- color: #bd362f;
639
- }
640
- .confirmation .confirmation-dialog .content .title {
641
- color: #222;
642
- }
643
- .confirmation .confirmation-dialog .content .message {
644
- color: #777;
645
- }
646
- .confirmation .confirmation-dialog .footer {
647
- background: transparent;
648
- }
649
- .confirmation .confirmation-dialog .footer .confirmation-button {
650
- background-color: #eee;
651
- color: #777;
652
- }
653
- .confirmation .confirmation-dialog .footer .confirmation-button:hover, .confirmation .confirmation-dialog .footer .confirmation-button:focus, .confirmation .confirmation-dialog .footer .confirmation-button:active {
654
- background-color: #bbb;
655
- }
656
- .confirmation .confirmation-dialog .footer .confirmation-button--confirm {
657
- background-color: #2f96b4;
658
- color: #fff;
659
- }
660
- .confirmation .confirmation-dialog .footer .confirmation-button--confirm:hover {
661
- background-color: #2e819b;
662
- }
663
- .ui-table .pagination-wrapper {
664
- background-color: #f4f4f4;
665
- border: 1px solid #c8c8c8;
666
- }
667
- .bordered .datatable-body-row {
668
- border-top: 1px solid #eee;
669
- margin-top: -1px;
670
- }
671
- .breadcrumb {
672
- background-color: transparent;
673
- padding: 0.27rem;
674
- }
526
+ var styles = `
527
+ .content-header-title {
528
+ font-size: 24px;
529
+ }
530
+ .entry-row {
531
+ margin-bottom: 15px;
532
+ }
533
+ #main-navbar-tools a.dropdown-toggle {
534
+ text-decoration: none;
535
+ color: #fff;
536
+ }
537
+ .navbar .dropdown-submenu {
538
+ position: relative;
539
+ }
540
+ .navbar .dropdown-menu {
541
+ margin: 0;
542
+ padding: 0;
543
+ }
544
+ .navbar .dropdown-menu a {
545
+ font-size: .9em;
546
+ padding: 10px 15px;
547
+ display: block;
548
+ min-width: 210px;
549
+ text-align: left;
550
+ border-radius: 0.25rem;
551
+ min-height: 44px;
552
+ }
553
+ [dir=rtl] .navbar .dropdown-menu a {
554
+ text-align: right!important;
555
+ }
556
+ .navbar .dropdown-submenu a::after {
557
+ transform: rotate(-90deg);
558
+ position: absolute;
559
+ right: 16px;
560
+ top: 18px;
561
+ }
562
+ [dir=rtl] .navbar .dropdown-submenu a::after {
563
+ transform: rotate(90deg);
564
+ left: 16px;
565
+ right: auto;
566
+ top: 20px;
567
+ }
568
+ .navbar .dropdown-submenu .dropdown-menu {
569
+ top: 0;
570
+ left: 100%;
571
+ }
572
+ /* work around for rtl. Track https://github.com/ng-bootstrap/ng-bootstrap/issues/4100 issue */
573
+ [dir=rtl] .navbar .dropdown-submenu .dropdown-menu {
574
+ top: 0;
575
+ right: 100%;
576
+ }
577
+ .card-header .btn {
578
+ padding: 2px 6px;
579
+ }
580
+ .card-header h5 {
581
+ margin: 0;
582
+ }
583
+ .container > .card {
584
+ box-shadow: 0 0.125rem 0.25rem rgba(0, 0, 0, 0.075) !important;
585
+ }
586
+ @media screen and (min-width: 992px) {
587
+ .navbar .dropdown:hover > .dropdown-menu {
588
+ display: block;
589
+ }
590
+
591
+ .navbar .dropdown-submenu:hover > .dropdown-menu {
592
+ display: block;
593
+ }
594
+ }
595
+ .input-validation-error {
596
+ border-color: #dc3545;
597
+ }
598
+ .field-validation-error {
599
+ font-size: 0.8em;
600
+ }
601
+ .ui-table .ui-table-tbody > tr.empty-row > div.empty-row-content {
602
+ border: 1px solid #c8c8c8;
603
+ }
604
+ .abp-loading {
605
+ background: rgba(0, 0, 0, 0.05);
606
+ }
607
+ .modal-backdrop {
608
+ background-color: rgba(0, 0, 0, 0.6);
609
+ }
610
+
611
+ .confirmation .confirmation-backdrop {
612
+ background: rgba(0, 0, 0, 0.7) !important;
613
+ }
614
+ .confirmation .confirmation-dialog {
615
+ border: none;
616
+ border-radius: 10px;
617
+ background-color: #fff;
618
+ box-shadow: 0 0 10px -5px rgba(0, 0, 0, 0.5);
619
+ }
620
+ .confirmation .confirmation-dialog .icon-container .icon {
621
+ stroke: #fff;
622
+ color: #fff;
623
+ }
624
+ .confirmation .confirmation-dialog .icon-container.info .icon {
625
+ stroke: #2f96b4;
626
+ color: #2f96b4;
627
+ }
628
+ .confirmation .confirmation-dialog .icon-container.success .icon {
629
+ stroke: #51a351;
630
+ color: #51a351;
631
+ }
632
+ .confirmation .confirmation-dialog .icon-container.warning .icon {
633
+ stroke: #f89406;
634
+ color: #f89406;
635
+ }
636
+ .confirmation .confirmation-dialog .icon-container.error .icon {
637
+ stroke: #bd362f;
638
+ color: #bd362f;
639
+ }
640
+ .confirmation .confirmation-dialog .content .title {
641
+ color: #222;
642
+ }
643
+ .confirmation .confirmation-dialog .content .message {
644
+ color: #777;
645
+ }
646
+ .confirmation .confirmation-dialog .footer {
647
+ background: transparent;
648
+ }
649
+ .confirmation .confirmation-dialog .footer .confirmation-button {
650
+ background-color: #eee;
651
+ color: #777;
652
+ }
653
+ .confirmation .confirmation-dialog .footer .confirmation-button:hover, .confirmation .confirmation-dialog .footer .confirmation-button:focus, .confirmation .confirmation-dialog .footer .confirmation-button:active {
654
+ background-color: #bbb;
655
+ }
656
+ .confirmation .confirmation-dialog .footer .confirmation-button--confirm {
657
+ background-color: #2f96b4;
658
+ color: #fff;
659
+ }
660
+ .confirmation .confirmation-dialog .footer .confirmation-button--confirm:hover {
661
+ background-color: #2e819b;
662
+ }
663
+ .ui-table .pagination-wrapper {
664
+ background-color: #f4f4f4;
665
+ border: 1px solid #c8c8c8;
666
+ }
667
+ .bordered .datatable-body-row {
668
+ border-top: 1px solid #eee;
669
+ margin-top: -1px;
670
+ }
671
+ .breadcrumb {
672
+ background-color: transparent;
673
+ padding: 0.27rem;
674
+ }
675
675
  `;
676
676
 
677
677
  const BASIC_THEME_STYLES_PROVIDERS = [