@abp/ng.theme.basic 7.2.1 → 7.3.0-rc.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 (92) hide show
  1. package/{esm2020 → esm2022}/abp-ng.theme.basic.mjs +4 -4
  2. package/esm2022/lib/components/account-layout/account-layout.component.mjs +32 -0
  3. package/esm2022/lib/components/account-layout/auth-wrapper/auth-wrapper.component.mjs +20 -0
  4. package/esm2022/lib/components/account-layout/tenant-box/tenant-box.component.mjs +21 -0
  5. package/esm2022/lib/components/application-layout/application-layout.component.mjs +31 -0
  6. package/esm2022/lib/components/empty-layout/empty-layout.component.mjs +24 -0
  7. package/{esm2020 → esm2022}/lib/components/index.mjs +12 -12
  8. package/esm2022/lib/components/logo/logo.component.mjs +53 -0
  9. package/esm2022/lib/components/nav-items/current-user.component.mjs +40 -0
  10. package/esm2022/lib/components/nav-items/languages.component.mjs +108 -0
  11. package/{esm2020 → esm2022}/lib/components/nav-items/nav-items.component.mjs +20 -19
  12. package/esm2022/lib/components/page-alert-container/page-alert-container.component.mjs +19 -0
  13. package/esm2022/lib/components/routes/routes.component.mjs +38 -0
  14. package/esm2022/lib/components/validation-error/validation-error.component.mjs +45 -0
  15. package/{esm2020 → esm2022}/lib/constants/styles.mjs +1 -1
  16. package/{esm2020 → esm2022}/lib/enums/components.mjs +1 -1
  17. package/{esm2020 → esm2022}/lib/enums/index.mjs +2 -2
  18. package/{esm2020 → esm2022}/lib/enums/user-menu-items.mjs +1 -1
  19. package/{esm2020 → esm2022}/lib/handlers/index.mjs +1 -1
  20. package/esm2022/lib/handlers/lazy-style.handler.mjs +83 -0
  21. package/{esm2020 → esm2022}/lib/models/index.mjs +1 -1
  22. package/{esm2020 → esm2022}/lib/models/layout.mjs +1 -1
  23. package/{esm2020 → esm2022}/lib/providers/index.mjs +3 -3
  24. package/{esm2020 → esm2022}/lib/providers/nav-item.provider.mjs +28 -28
  25. package/{esm2020 → esm2022}/lib/providers/styles.provider.mjs +34 -34
  26. package/{esm2020 → esm2022}/lib/providers/user-menu.provider.mjs +40 -40
  27. package/esm2022/lib/services/layout.service.mjs +42 -0
  28. package/esm2022/lib/theme-basic.module.mjs +128 -0
  29. package/{esm2020 → esm2022}/lib/tokens/index.mjs +1 -1
  30. package/{esm2020 → esm2022}/lib/tokens/lazy-styles.token.mjs +2 -2
  31. package/{esm2020 → esm2022}/public-api.mjs +10 -10
  32. package/{esm2020 → esm2022}/testing/abp-ng.theme.basic-testing.mjs +4 -4
  33. package/esm2022/testing/lib/theme-basic-testing.module.mjs +39 -0
  34. package/{esm2020 → esm2022}/testing/public-api.mjs +1 -1
  35. package/{fesm2015 → fesm2022}/abp-ng.theme.basic-testing.mjs +34 -34
  36. package/{fesm2015 → fesm2022}/abp-ng.theme.basic-testing.mjs.map +1 -1
  37. package/{fesm2020 → fesm2022}/abp-ng.theme.basic.mjs +520 -520
  38. package/{fesm2020 → fesm2022}/abp-ng.theme.basic.mjs.map +1 -1
  39. package/index.d.ts +5 -5
  40. package/lib/components/account-layout/account-layout.component.d.ts +13 -13
  41. package/lib/components/account-layout/auth-wrapper/auth-wrapper.component.d.ts +8 -8
  42. package/lib/components/account-layout/tenant-box/tenant-box.component.d.ts +8 -8
  43. package/lib/components/application-layout/application-layout.component.d.ts +12 -12
  44. package/lib/components/empty-layout/empty-layout.component.d.ts +7 -7
  45. package/lib/components/index.d.ts +12 -12
  46. package/lib/components/logo/logo.component.d.ts +9 -9
  47. package/lib/components/nav-items/current-user.component.d.ts +21 -21
  48. package/lib/components/nav-items/languages.component.d.ts +16 -16
  49. package/lib/components/nav-items/nav-items.component.d.ts +10 -10
  50. package/lib/components/page-alert-container/page-alert-container.component.d.ts +8 -8
  51. package/lib/components/routes/routes.component.d.ts +18 -18
  52. package/lib/components/validation-error/validation-error.component.d.ts +9 -9
  53. package/lib/constants/styles.d.ts +2 -2
  54. package/lib/enums/components.d.ts +10 -10
  55. package/lib/enums/index.d.ts +2 -2
  56. package/lib/enums/user-menu-items.d.ts +4 -4
  57. package/lib/handlers/index.d.ts +1 -1
  58. package/lib/handlers/lazy-style.handler.d.ts +23 -23
  59. package/lib/models/index.d.ts +1 -1
  60. package/lib/models/layout.d.ts +11 -11
  61. package/lib/providers/index.d.ts +3 -3
  62. package/lib/providers/nav-item.provider.d.ts +8 -8
  63. package/lib/providers/styles.provider.d.ts +8 -8
  64. package/lib/providers/user-menu.provider.d.ts +8 -8
  65. package/lib/services/layout.service.d.ts +18 -18
  66. package/lib/theme-basic.module.d.ts +32 -32
  67. package/lib/tokens/index.d.ts +1 -1
  68. package/lib/tokens/lazy-styles.token.d.ts +2 -2
  69. package/package.json +11 -19
  70. package/public-api.d.ts +7 -7
  71. package/testing/index.d.ts +5 -5
  72. package/testing/lib/theme-basic-testing.module.d.ts +9 -9
  73. package/testing/public-api.d.ts +1 -1
  74. package/esm2020/lib/components/account-layout/account-layout.component.mjs +0 -32
  75. package/esm2020/lib/components/account-layout/auth-wrapper/auth-wrapper.component.mjs +0 -19
  76. package/esm2020/lib/components/account-layout/tenant-box/tenant-box.component.mjs +0 -20
  77. package/esm2020/lib/components/application-layout/application-layout.component.mjs +0 -31
  78. package/esm2020/lib/components/empty-layout/empty-layout.component.mjs +0 -23
  79. package/esm2020/lib/components/logo/logo.component.mjs +0 -52
  80. package/esm2020/lib/components/nav-items/current-user.component.mjs +0 -39
  81. package/esm2020/lib/components/nav-items/languages.component.mjs +0 -107
  82. package/esm2020/lib/components/page-alert-container/page-alert-container.component.mjs +0 -18
  83. package/esm2020/lib/components/routes/routes.component.mjs +0 -37
  84. package/esm2020/lib/components/validation-error/validation-error.component.mjs +0 -44
  85. package/esm2020/lib/handlers/lazy-style.handler.mjs +0 -82
  86. package/esm2020/lib/services/layout.service.mjs +0 -41
  87. package/esm2020/lib/theme-basic.module.mjs +0 -126
  88. package/esm2020/testing/lib/theme-basic-testing.module.mjs +0 -38
  89. package/fesm2015/abp-ng.theme.basic.mjs +0 -834
  90. package/fesm2015/abp-ng.theme.basic.mjs.map +0 -1
  91. package/fesm2020/abp-ng.theme.basic-testing.mjs +0 -45
  92. package/fesm2020/abp-ng.theme.basic-testing.mjs.map +0 -1
@@ -1,5 +1,5 @@
1
- /**
2
- * Generated bundle index. Do not edit.
3
- */
4
- export * from './public-api';
1
+ /**
2
+ * Generated bundle index. Do not edit.
3
+ */
4
+ export * from './public-api';
5
5
  //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYWJwLW5nLnRoZW1lLmJhc2ljLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vcGFja2FnZXMvdGhlbWUtYmFzaWMvc3JjL2FicC1uZy50aGVtZS5iYXNpYy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQTs7R0FFRztBQUVILGNBQWMsY0FBYyxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiLyoqXG4gKiBHZW5lcmF0ZWQgYnVuZGxlIGluZGV4LiBEbyBub3QgZWRpdC5cbiAqL1xuXG5leHBvcnQgKiBmcm9tICcuL3B1YmxpYy1hcGknO1xuIl19
@@ -0,0 +1,32 @@
1
+ import { Component } from '@angular/core';
2
+ import { SubscriptionService } from '@abp/ng.core';
3
+ import { LayoutService } from '../../services/layout.service';
4
+ import * as i0 from "@angular/core";
5
+ import * as i1 from "../../services/layout.service";
6
+ import * as i2 from "@angular/common";
7
+ import * as i3 from "@angular/router";
8
+ import * as i4 from "@abp/ng.core";
9
+ import * as i5 from "../logo/logo.component";
10
+ import * as i6 from "../nav-items/nav-items.component";
11
+ import * as i7 from "../routes/routes.component";
12
+ import * as i8 from "../page-alert-container/page-alert-container.component";
13
+ import * as i9 from "./auth-wrapper/auth-wrapper.component";
14
+ class AccountLayoutComponent {
15
+ // required for dynamic component
16
+ static { this.type = "account" /* eLayoutType.account */; }
17
+ constructor(service) {
18
+ this.service = service;
19
+ this.authWrapperKey = 'Account.AuthWrapperComponent';
20
+ }
21
+ ngAfterViewInit() {
22
+ this.service.subscribeWindowSize();
23
+ }
24
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.0.1", ngImport: i0, type: AccountLayoutComponent, deps: [{ token: i1.LayoutService }], target: i0.ɵɵFactoryTarget.Component }); }
25
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.0.1", 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", dependencies: [{ kind: "directive", type: i2.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i2.NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }, { kind: "directive", type: i3.RouterOutlet, selector: "router-outlet", inputs: ["name"], outputs: ["activate", "deactivate", "attach", "detach"], exportAs: ["outlet"] }, { kind: "directive", type: i4.ReplaceableTemplateDirective, selector: "[abpReplaceableTemplate]", inputs: ["abpReplaceableTemplate"] }, { kind: "component", type: i5.LogoComponent, selector: "abp-logo" }, { kind: "component", type: i6.NavItemsComponent, selector: "abp-nav-items" }, { kind: "component", type: i7.RoutesComponent, selector: "abp-routes", inputs: ["smallScreen"] }, { kind: "component", type: i8.PageAlertContainerComponent, selector: "abp-page-alert-container" }, { kind: "component", type: i9.AuthWrapperComponent, selector: "abp-auth-wrapper" }] }); }
26
+ }
27
+ export { AccountLayoutComponent };
28
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.0.1", ngImport: i0, type: AccountLayoutComponent, decorators: [{
29
+ type: Component,
30
+ args: [{ selector: 'abp-layout-account', providers: [LayoutService, SubscriptionService], 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" }]
31
+ }], ctorParameters: function () { return [{ type: i1.LayoutService }]; } });
32
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYWNjb3VudC1sYXlvdXQuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vcGFja2FnZXMvdGhlbWUtYmFzaWMvc3JjL2xpYi9jb21wb25lbnRzL2FjY291bnQtbGF5b3V0L2FjY291bnQtbGF5b3V0LmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uLy4uLy4uL3BhY2thZ2VzL3RoZW1lLWJhc2ljL3NyYy9saWIvY29tcG9uZW50cy9hY2NvdW50LWxheW91dC9hY2NvdW50LWxheW91dC5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQWlCLFNBQVMsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUN6RCxPQUFPLEVBQWUsbUJBQW1CLEVBQUUsTUFBTSxjQUFjLENBQUM7QUFDaEUsT0FBTyxFQUFFLGFBQWEsRUFBRSxNQUFNLCtCQUErQixDQUFDOzs7Ozs7Ozs7OztBQUU5RCxNQUthLHNCQUFzQjtJQUNqQyxpQ0FBaUM7YUFDMUIsU0FBSSxzQ0FBQSxDQUF1QjtJQUlsQyxZQUFtQixPQUFzQjtRQUF0QixZQUFPLEdBQVAsT0FBTyxDQUFlO1FBRnpDLG1CQUFjLEdBQUcsOEJBQThCLENBQUM7SUFFSixDQUFDO0lBRTdDLGVBQWU7UUFDYixJQUFJLENBQUMsT0FBTyxDQUFDLG1CQUFtQixFQUFFLENBQUM7SUFDckMsQ0FBQzs4R0FWVSxzQkFBc0I7a0dBQXRCLHNCQUFzQiw2Q0FGdEIsQ0FBQyxhQUFhLEVBQUUsbUJBQW1CLENBQUMsMEJDUGpELDBvRUE4REE7O1NEckRhLHNCQUFzQjsyRkFBdEIsc0JBQXNCO2tCQUxsQyxTQUFTOytCQUNFLG9CQUFvQixhQUVuQixDQUFDLGFBQWEsRUFBRSxtQkFBbUIsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEFmdGVyVmlld0luaXQsIENvbXBvbmVudCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xyXG5pbXBvcnQgeyBlTGF5b3V0VHlwZSwgU3Vic2NyaXB0aW9uU2VydmljZSB9IGZyb20gJ0BhYnAvbmcuY29yZSc7XHJcbmltcG9ydCB7IExheW91dFNlcnZpY2UgfSBmcm9tICcuLi8uLi9zZXJ2aWNlcy9sYXlvdXQuc2VydmljZSc7XHJcblxyXG5AQ29tcG9uZW50KHtcclxuICBzZWxlY3RvcjogJ2FicC1sYXlvdXQtYWNjb3VudCcsXHJcbiAgdGVtcGxhdGVVcmw6ICcuL2FjY291bnQtbGF5b3V0LmNvbXBvbmVudC5odG1sJyxcclxuICBwcm92aWRlcnM6IFtMYXlvdXRTZXJ2aWNlLCBTdWJzY3JpcHRpb25TZXJ2aWNlXSxcclxufSlcclxuZXhwb3J0IGNsYXNzIEFjY291bnRMYXlvdXRDb21wb25lbnQgaW1wbGVtZW50cyBBZnRlclZpZXdJbml0IHtcclxuICAvLyByZXF1aXJlZCBmb3IgZHluYW1pYyBjb21wb25lbnRcclxuICBzdGF0aWMgdHlwZSA9IGVMYXlvdXRUeXBlLmFjY291bnQ7XHJcblxyXG4gIGF1dGhXcmFwcGVyS2V5ID0gJ0FjY291bnQuQXV0aFdyYXBwZXJDb21wb25lbnQnO1xyXG5cclxuICBjb25zdHJ1Y3RvcihwdWJsaWMgc2VydmljZTogTGF5b3V0U2VydmljZSkge31cclxuXHJcbiAgbmdBZnRlclZpZXdJbml0KCkge1xyXG4gICAgdGhpcy5zZXJ2aWNlLnN1YnNjcmliZVdpbmRvd1NpemUoKTtcclxuICB9XHJcbn1cclxuIiwiPG5hdlxyXG4gIGNsYXNzPVwibmF2YmFyIG5hdmJhci1leHBhbmQtbGcgbmF2YmFyLWRhcmsgYmctZGFyayBzaGFkb3ctc20gZmxleC1jb2x1bW4gZmxleC1tZC1yb3cgbWItNFwiXHJcbiAgaWQ9XCJtYWluLW5hdmJhclwiXHJcbiAgc3R5bGU9XCJtaW4taGVpZ2h0OiA0cmVtXCJcclxuPlxyXG4gIDxkaXYgY2xhc3M9XCJjb250YWluZXJcIj5cclxuICAgIDxhYnAtbG9nbyAqYWJwUmVwbGFjZWFibGVUZW1wbGF0ZT1cInsgY29tcG9uZW50S2V5OiBzZXJ2aWNlLmxvZ29Db21wb25lbnRLZXkgfVwiPjwvYWJwLWxvZ28+XHJcbiAgICA8YnV0dG9uXHJcbiAgICAgIGNsYXNzPVwibmF2YmFyLXRvZ2dsZXJcIlxyXG4gICAgICB0eXBlPVwiYnV0dG9uXCJcclxuICAgICAgW2F0dHIuYXJpYS1leHBhbmRlZF09XCIhc2VydmljZS5pc0NvbGxhcHNlZFwiXHJcbiAgICAgIChjbGljayk9XCJzZXJ2aWNlLmlzQ29sbGFwc2VkID0gIXNlcnZpY2UuaXNDb2xsYXBzZWRcIlxyXG4gICAgPlxyXG4gICAgICA8c3BhbiBjbGFzcz1cIm5hdmJhci10b2dnbGVyLWljb25cIj48L3NwYW4+XHJcbiAgICA8L2J1dHRvbj5cclxuICAgIDxkaXZcclxuICAgICAgY2xhc3M9XCJuYXZiYXItY29sbGFwc2VcIlxyXG4gICAgICBbY2xhc3Mub3ZlcmZsb3ctaGlkZGVuXT1cInNlcnZpY2Uuc21hbGxTY3JlZW5cIlxyXG4gICAgICBpZD1cIm1haW4tbmF2YmFyLWNvbGxhcHNlXCJcclxuICAgID5cclxuICAgICAgPG5nLWNvbnRhaW5lciAqbmdUZW1wbGF0ZU91dGxldD1cIiFzZXJ2aWNlLnNtYWxsU2NyZWVuID8gbmF2aWdhdGlvbnMgOiBudWxsXCI+PC9uZy1jb250YWluZXI+XHJcblxyXG4gICAgICA8ZGl2XHJcbiAgICAgICAgKm5nSWY9XCJzZXJ2aWNlLnNtYWxsU2NyZWVuXCJcclxuICAgICAgICBbQGNvbGxhcHNlV2l0aE1hcmdpbl09XCJzZXJ2aWNlLmlzQ29sbGFwc2VkID8gJ2NvbGxhcHNlZCcgOiAnZXhwYW5kZWQnXCJcclxuICAgICAgPlxyXG4gICAgICAgIDxuZy1jb250YWluZXIgKm5nVGVtcGxhdGVPdXRsZXQ9XCJuYXZpZ2F0aW9uc1wiPjwvbmctY29udGFpbmVyPlxyXG4gICAgICA8L2Rpdj5cclxuXHJcbiAgICAgIDxuZy10ZW1wbGF0ZSAjbmF2aWdhdGlvbnM+XHJcbiAgICAgICAgPGFicC1yb3V0ZXNcclxuICAgICAgICAgICphYnBSZXBsYWNlYWJsZVRlbXBsYXRlPVwie1xyXG4gICAgICAgICAgICBjb21wb25lbnRLZXk6IHNlcnZpY2Uucm91dGVzQ29tcG9uZW50S2V5LFxyXG4gICAgICAgICAgICBpbnB1dHM6IHtcclxuICAgICAgICAgICAgICBzbWFsbFNjcmVlbjogeyB2YWx1ZTogc2VydmljZS5zbWFsbFNjcmVlbiB9XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICAgIH1cIlxyXG4gICAgICAgICAgY2xhc3M9XCJteC1hdXRvXCJcclxuICAgICAgICAgIFtzbWFsbFNjcmVlbl09XCJzZXJ2aWNlLnNtYWxsU2NyZWVuXCJcclxuICAgICAgICA+PC9hYnAtcm91dGVzPlxyXG5cclxuICAgICAgICA8YWJwLW5hdi1pdGVtc1xyXG4gICAgICAgICAgKmFicFJlcGxhY2VhYmxlVGVtcGxhdGU9XCJ7XHJcbiAgICAgICAgICAgIGNvbXBvbmVudEtleTogc2VydmljZS5uYXZJdGVtc0NvbXBvbmVudEtleVxyXG4gICAgICAgICAgfVwiXHJcbiAgICAgICAgPjwvYWJwLW5hdi1pdGVtcz5cclxuICAgICAgPC9uZy10ZW1wbGF0ZT5cclxuICAgIDwvZGl2PlxyXG4gIDwvZGl2PlxyXG48L25hdj5cclxuXHJcbjwhLS0gW0BzbGlkZUZyb21Cb3R0b21dPVwib3V0bGV0LmlzQWN0aXZhdGVkICYmIG91dGxldC5hY3RpdmF0ZWRSb3V0ZT8ucm91dGVDb25maWc/LnBhdGhcIiBUT0RPOiB0aHJvd3MgRXhwcmVzc2lvbkNoYW5nZWRBZnRlckl0SGFzQmVlbkNoZWNrIHdoZW4gYW5pbWF0aW9uIGlzIGFjdGl2ZS4gSXQgc2hvdWxkIGJlIGZpeGVkIC0tPlxyXG48ZGl2IGNsYXNzPVwiY29udGFpbmVyXCI+XHJcbiAgPGFicC1wYWdlLWFsZXJ0LWNvbnRhaW5lcj48L2FicC1wYWdlLWFsZXJ0LWNvbnRhaW5lcj5cclxuICA8YWJwLWF1dGgtd3JhcHBlclxyXG4gICAgKmFicFJlcGxhY2VhYmxlVGVtcGxhdGU9XCJ7XHJcbiAgICAgIGNvbXBvbmVudEtleTogYXV0aFdyYXBwZXJLZXlcclxuICAgIH1cIlxyXG4gID5cclxuICAgIDxyb3V0ZXItb3V0bGV0ICNvdXRsZXQ9XCJvdXRsZXRcIj48L3JvdXRlci1vdXRsZXQ+XHJcbiAgPC9hYnAtYXV0aC13cmFwcGVyPlxyXG48L2Rpdj5cclxuIl19
@@ -0,0 +1,20 @@
1
+ import { AuthWrapperService } from '@abp/ng.account.core';
2
+ import { Component } from '@angular/core';
3
+ import * as i0 from "@angular/core";
4
+ import * as i1 from "@abp/ng.account.core";
5
+ import * as i2 from "@angular/common";
6
+ import * as i3 from "@abp/ng.core";
7
+ import * as i4 from "../tenant-box/tenant-box.component";
8
+ class AuthWrapperComponent {
9
+ constructor(service) {
10
+ this.service = service;
11
+ }
12
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.0.1", ngImport: i0, type: AuthWrapperComponent, deps: [{ token: i1.AuthWrapperService }], target: i0.ɵɵFactoryTarget.Component }); }
13
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.0.1", 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", dependencies: [{ kind: "directive", type: i2.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i3.ReplaceableTemplateDirective, selector: "[abpReplaceableTemplate]", inputs: ["abpReplaceableTemplate"] }, { kind: "component", type: i4.TenantBoxComponent, selector: "abp-tenant-box" }, { kind: "pipe", type: i2.AsyncPipe, name: "async" }, { kind: "pipe", type: i3.LocalizationPipe, name: "abpLocalization" }] }); }
14
+ }
15
+ export { AuthWrapperComponent };
16
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.0.1", ngImport: i0, type: AuthWrapperComponent, decorators: [{
17
+ type: Component,
18
+ args: [{ selector: 'abp-auth-wrapper', providers: [AuthWrapperService], 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" }]
19
+ }], ctorParameters: function () { return [{ type: i1.AuthWrapperService }]; } });
20
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYXV0aC13cmFwcGVyLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL3BhY2thZ2VzL3RoZW1lLWJhc2ljL3NyYy9saWIvY29tcG9uZW50cy9hY2NvdW50LWxheW91dC9hdXRoLXdyYXBwZXIvYXV0aC13cmFwcGVyLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL3BhY2thZ2VzL3RoZW1lLWJhc2ljL3NyYy9saWIvY29tcG9uZW50cy9hY2NvdW50LWxheW91dC9hdXRoLXdyYXBwZXIvYXV0aC13cmFwcGVyLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxrQkFBa0IsRUFBRSxNQUFNLHNCQUFzQixDQUFDO0FBQzFELE9BQU8sRUFBRSxTQUFTLEVBQUUsTUFBTSxlQUFlLENBQUM7Ozs7OztBQUUxQyxNQUthLG9CQUFvQjtJQUMvQixZQUFtQixPQUEyQjtRQUEzQixZQUFPLEdBQVAsT0FBTyxDQUFvQjtJQUFHLENBQUM7OEdBRHZDLG9CQUFvQjtrR0FBcEIsb0JBQW9CLDJDQUZwQixDQUFDLGtCQUFrQixDQUFDLDBCQ05qQyxnOUJBMkJBOztTRG5CYSxvQkFBb0I7MkZBQXBCLG9CQUFvQjtrQkFMaEMsU0FBUzsrQkFDRSxrQkFBa0IsYUFFakIsQ0FBQyxrQkFBa0IsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEF1dGhXcmFwcGVyU2VydmljZSB9IGZyb20gJ0BhYnAvbmcuYWNjb3VudC5jb3JlJztcclxuaW1wb3J0IHsgQ29tcG9uZW50IH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XHJcblxyXG5AQ29tcG9uZW50KHtcclxuICBzZWxlY3RvcjogJ2FicC1hdXRoLXdyYXBwZXInLFxyXG4gIHRlbXBsYXRlVXJsOiAnLi9hdXRoLXdyYXBwZXIuY29tcG9uZW50Lmh0bWwnLFxyXG4gIHByb3ZpZGVyczogW0F1dGhXcmFwcGVyU2VydmljZV0sXHJcbn0pXHJcbmV4cG9ydCBjbGFzcyBBdXRoV3JhcHBlckNvbXBvbmVudCB7XHJcbiAgY29uc3RydWN0b3IocHVibGljIHNlcnZpY2U6IEF1dGhXcmFwcGVyU2VydmljZSkge31cclxufVxyXG4iLCI8ZGl2IGNsYXNzPVwicm93XCI+XHJcbiAgPGRpdiBjbGFzcz1cIm14LWF1dG8gY29sIGNvbC1tZC01XCI+XHJcbiAgICA8bmctY29udGFpbmVyICpuZ0lmPVwiKHNlcnZpY2UuaXNNdWx0aVRlbmFuY3lFbmFibGVkJCB8IGFzeW5jKSAmJiBzZXJ2aWNlLmlzVGVuYW50Qm94VmlzaWJsZVwiPlxyXG4gICAgICA8YWJwLXRlbmFudC1ib3hcclxuICAgICAgICAqYWJwUmVwbGFjZWFibGVUZW1wbGF0ZT1cInsgY29tcG9uZW50S2V5OiBzZXJ2aWNlLnRlbmFudEJveEtleSB9XCJcclxuICAgICAgPjwvYWJwLXRlbmFudC1ib3g+XHJcbiAgICA8L25nLWNvbnRhaW5lcj5cclxuXHJcbiAgICA8ZGl2IGNsYXNzPVwiYWJwLWFjY291bnQtY29udGFpbmVyXCI+XHJcbiAgICAgIDxkaXZcclxuICAgICAgICAqbmdJZj1cInNlcnZpY2UuZW5hYmxlTG9jYWxMb2dpbiQgfCBhc3luYzsgZWxzZSBkaXNhYmxlTG9jYWxMb2dpblRlbXBsYXRlXCJcclxuICAgICAgICBjbGFzcz1cImNhcmQgbXQtMyBzaGFkb3ctc20gcm91bmRlZFwiXHJcbiAgICAgID5cclxuICAgICAgICA8ZGl2IGNsYXNzPVwiY2FyZC1ib2R5IHAtNVwiPlxyXG4gICAgICAgICAgPG5nLWNvbnRlbnQ+PC9uZy1jb250ZW50PlxyXG4gICAgICAgIDwvZGl2PlxyXG4gICAgICA8L2Rpdj5cclxuICAgIDwvZGl2PlxyXG4gIDwvZGl2PlxyXG48L2Rpdj5cclxuXHJcbjxuZy10ZW1wbGF0ZSAjZGlzYWJsZUxvY2FsTG9naW5UZW1wbGF0ZT5cclxuICA8ZGl2IGNsYXNzPVwiYWxlcnQgYWxlcnQtd2FybmluZ1wiPlxyXG4gICAgPHN0cm9uZz57eyAnQWJwQWNjb3VudDo6SW52YWxpZExvZ2luUmVxdWVzdCcgfCBhYnBMb2NhbGl6YXRpb24gfX08L3N0cm9uZz5cclxuICAgIHt7ICdBYnBBY2NvdW50OjpUaGVyZUFyZU5vTG9naW5TY2hlbWVzQ29uZmlndXJlZEZvclRoaXNDbGllbnQnIHwgYWJwTG9jYWxpemF0aW9uIH19XHJcbiAgPC9kaXY+XHJcbjwvbmctdGVtcGxhdGU+XHJcbiJdfQ==
@@ -0,0 +1,21 @@
1
+ import { TenantBoxService } from '@abp/ng.account.core';
2
+ import { Component } from '@angular/core';
3
+ import * as i0 from "@angular/core";
4
+ import * as i1 from "@abp/ng.account.core";
5
+ import * as i2 from "@angular/common";
6
+ import * as i3 from "@angular/forms";
7
+ import * as i4 from "@abp/ng.core";
8
+ import * as i5 from "@abp/ng.theme.shared";
9
+ class TenantBoxComponent {
10
+ constructor(service) {
11
+ this.service = service;
12
+ }
13
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.0.1", ngImport: i0, type: TenantBoxComponent, deps: [{ token: i1.TenantBoxService }], target: i0.ɵɵFactoryTarget.Component }); }
14
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.0.1", 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", dependencies: [{ kind: "directive", type: i2.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i3.ɵNgNoValidate, selector: "form:not([ngNoForm]):not([ngNativeValidate])" }, { kind: "directive", type: i3.DefaultValueAccessor, selector: "input:not([type=checkbox])[formControlName],textarea[formControlName],input:not([type=checkbox])[formControl],textarea[formControl],input:not([type=checkbox])[ngModel],textarea[ngModel],[ngDefaultControl]" }, { kind: "directive", type: i3.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i3.NgControlStatusGroup, selector: "[formGroupName],[formArrayName],[ngModelGroup],[formGroup],form:not([ngNoForm]),[ngForm]" }, { kind: "directive", type: i3.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }, { kind: "directive", type: i3.NgForm, selector: "form:not([ngNoForm]):not([formGroup]),ng-form,[ngForm]", inputs: ["ngFormOptions"], outputs: ["ngSubmit"], exportAs: ["ngForm"] }, { kind: "directive", type: i4.AutofocusDirective, selector: "[autofocus]", inputs: ["autofocus"] }, { kind: "component", type: i5.ButtonComponent, selector: "abp-button", inputs: ["buttonId", "buttonClass", "buttonType", "formName", "iconClass", "loading", "disabled", "attributes"], outputs: ["click", "focus", "blur", "abpClick", "abpFocus", "abpBlur"] }, { kind: "component", type: i5.ModalComponent, selector: "abp-modal", inputs: ["visible", "busy", "options", "suppressUnsavedChangesWarning"], outputs: ["visibleChange", "init", "appear", "disappear"] }, { kind: "directive", type: i5.ModalCloseDirective, selector: "[abpClose]" }, { kind: "pipe", type: i2.AsyncPipe, name: "async" }, { kind: "pipe", type: i4.LocalizationPipe, name: "abpLocalization" }] }); }
15
+ }
16
+ export { TenantBoxComponent };
17
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.0.1", ngImport: i0, type: TenantBoxComponent, decorators: [{
18
+ type: Component,
19
+ args: [{ selector: 'abp-tenant-box', providers: [TenantBoxService], 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" }]
20
+ }], ctorParameters: function () { return [{ type: i1.TenantBoxService }]; } });
21
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidGVuYW50LWJveC5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9wYWNrYWdlcy90aGVtZS1iYXNpYy9zcmMvbGliL2NvbXBvbmVudHMvYWNjb3VudC1sYXlvdXQvdGVuYW50LWJveC90ZW5hbnQtYm94LmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL3BhY2thZ2VzL3RoZW1lLWJhc2ljL3NyYy9saWIvY29tcG9uZW50cy9hY2NvdW50LWxheW91dC90ZW5hbnQtYm94L3RlbmFudC1ib3guY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLGdCQUFnQixFQUFFLE1BQU0sc0JBQXNCLENBQUM7QUFDeEQsT0FBTyxFQUFFLFNBQVMsRUFBRSxNQUFNLGVBQWUsQ0FBQzs7Ozs7OztBQUUxQyxNQUthLGtCQUFrQjtJQUM3QixZQUFtQixPQUF5QjtRQUF6QixZQUFPLEdBQVAsT0FBTyxDQUFrQjtJQUFHLENBQUM7OEdBRHJDLGtCQUFrQjtrR0FBbEIsa0JBQWtCLHlDQUZsQixDQUFDLGdCQUFnQixDQUFDLDBCQ04vQixtNEVBaUVBOztTRHpEYSxrQkFBa0I7MkZBQWxCLGtCQUFrQjtrQkFMOUIsU0FBUzsrQkFDRSxnQkFBZ0IsYUFFZixDQUFDLGdCQUFnQixDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgVGVuYW50Qm94U2VydmljZSB9IGZyb20gJ0BhYnAvbmcuYWNjb3VudC5jb3JlJztcclxuaW1wb3J0IHsgQ29tcG9uZW50IH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XHJcblxyXG5AQ29tcG9uZW50KHtcclxuICBzZWxlY3RvcjogJ2FicC10ZW5hbnQtYm94JyxcclxuICB0ZW1wbGF0ZVVybDogJy4vdGVuYW50LWJveC5jb21wb25lbnQuaHRtbCcsXHJcbiAgcHJvdmlkZXJzOiBbVGVuYW50Qm94U2VydmljZV0sXHJcbn0pXHJcbmV4cG9ydCBjbGFzcyBUZW5hbnRCb3hDb21wb25lbnQge1xyXG4gIGNvbnN0cnVjdG9yKHB1YmxpYyBzZXJ2aWNlOiBUZW5hbnRCb3hTZXJ2aWNlKSB7fVxyXG59XHJcbiIsIjxuZy1jb250YWluZXIgKm5nSWY9XCIoc2VydmljZS5jdXJyZW50VGVuYW50JCB8IGFzeW5jKSB8fCB7IG5hbWU6ICcnIH0gYXMgY3VycmVudFRlbmFudFwiPlxyXG4gIDxkaXYgY2xhc3M9XCJjYXJkIHNoYWRvdy1zbSByb3VuZGVkIG1iLTNcIj5cclxuICAgIDxkaXYgY2xhc3M9XCJjYXJkLWJvZHkgcHgtNVwiPlxyXG4gICAgICA8ZGl2IGNsYXNzPVwicm93XCI+XHJcbiAgICAgICAgPGRpdiBjbGFzcz1cImNvbFwiPlxyXG4gICAgICAgICAgPHNwYW4gc3R5bGU9XCJmb250LXNpemU6IDAuOGVtXCIgY2xhc3M9XCJ0ZXh0LXVwcGVyY2FzZSB0ZXh0LW11dGVkXCI+e3tcclxuICAgICAgICAgICAgJ0FicFVpTXVsdGlUZW5hbmN5OjpUZW5hbnQnIHwgYWJwTG9jYWxpemF0aW9uXHJcbiAgICAgICAgICB9fTwvc3BhblxyXG4gICAgICAgICAgPjxiciAvPlxyXG4gICAgICAgICAgPGg2IGNsYXNzPVwibS0wIGQtaW5saW5lLWJsb2NrXCI+XHJcbiAgICAgICAgICAgIDxpPnt7IGN1cnJlbnRUZW5hbnQubmFtZSB8fCAoJ0FicFVpTXVsdGlUZW5hbmN5OjpOb3RTZWxlY3RlZCcgfCBhYnBMb2NhbGl6YXRpb24pIH19PC9pPlxyXG4gICAgICAgICAgPC9oNj5cclxuICAgICAgICA8L2Rpdj5cclxuICAgICAgICA8ZGl2IGNsYXNzPVwiY29sLWF1dG9cIj5cclxuICAgICAgICAgIDxhXHJcbiAgICAgICAgICAgIGlkPVwiQWJwVGVuYW50U3dpdGNoTGlua1wiXHJcbiAgICAgICAgICAgIGhyZWY9XCJqYXZhc2NyaXB0OnZvaWQoMCk7XCJcclxuICAgICAgICAgICAgY2xhc3M9XCJidG4gYnRuLXNtIG10LTMgYnRuLW91dGxpbmUtcHJpbWFyeVwiXHJcbiAgICAgICAgICAgIChjbGljayk9XCJzZXJ2aWNlLm9uU3dpdGNoKClcIlxyXG4gICAgICAgICAgICA+e3sgJ0FicFVpTXVsdGlUZW5hbmN5OjpTd2l0Y2gnIHwgYWJwTG9jYWxpemF0aW9uIH19PC9hXHJcbiAgICAgICAgICA+XHJcbiAgICAgICAgPC9kaXY+XHJcbiAgICAgIDwvZGl2PlxyXG4gICAgPC9kaXY+XHJcbiAgPC9kaXY+XHJcblxyXG4gIDxhYnAtbW9kYWwgWyh2aXNpYmxlKV09XCJzZXJ2aWNlLmlzTW9kYWxWaXNpYmxlXCIgW2J1c3ldPVwic2VydmljZS5tb2RhbEJ1c3lcIj5cclxuICAgIDxuZy10ZW1wbGF0ZSAjYWJwSGVhZGVyPlxyXG4gICAgICA8aDU+U3dpdGNoIFRlbmFudDwvaDU+XHJcbiAgICA8L25nLXRlbXBsYXRlPlxyXG4gICAgPG5nLXRlbXBsYXRlICNhYnBCb2R5PlxyXG4gICAgICA8Zm9ybSAobmdTdWJtaXQpPVwic2VydmljZS5zYXZlKClcIj5cclxuICAgICAgICA8ZGl2IGNsYXNzPVwibXQtMlwiPlxyXG4gICAgICAgICAgPGRpdiBjbGFzcz1cIm1iLTMgZm9ybS1ncm91cFwiPlxyXG4gICAgICAgICAgICA8bGFiZWwgZm9yPVwibmFtZVwiIGNsYXNzPVwiZm9ybS1sYWJlbFwiPnt7XHJcbiAgICAgICAgICAgICAgJ0FicFVpTXVsdGlUZW5hbmN5OjpOYW1lJyB8IGFicExvY2FsaXphdGlvblxyXG4gICAgICAgICAgICB9fTwvbGFiZWw+XHJcbiAgICAgICAgICAgIDxpbnB1dFxyXG4gICAgICAgICAgICAgIFsobmdNb2RlbCldPVwic2VydmljZS5uYW1lXCJcclxuICAgICAgICAgICAgICB0eXBlPVwidGV4dFwiXHJcbiAgICAgICAgICAgICAgaWQ9XCJuYW1lXCJcclxuICAgICAgICAgICAgICBuYW1lPVwidGVuYW50XCJcclxuICAgICAgICAgICAgICBjbGFzcz1cImZvcm0tY29udHJvbFwiXHJcbiAgICAgICAgICAgICAgYXV0b2ZvY3VzXHJcbiAgICAgICAgICAgIC8+XHJcbiAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgIDxwPnt7ICdBYnBVaU11bHRpVGVuYW5jeTo6U3dpdGNoVGVuYW50SGludCcgfCBhYnBMb2NhbGl6YXRpb24gfX08L3A+XHJcbiAgICAgICAgPC9kaXY+XHJcbiAgICAgIDwvZm9ybT5cclxuICAgIDwvbmctdGVtcGxhdGU+XHJcbiAgICA8bmctdGVtcGxhdGUgI2FicEZvb3Rlcj5cclxuICAgICAgPGJ1dHRvbiBhYnBDbG9zZSB0eXBlPVwiYnV0dG9uXCIgY2xhc3M9XCJidG4gYnRuLXNlY29uZGFyeVwiPlxyXG4gICAgICAgIHt7ICdBYnBUZW5hbnRNYW5hZ2VtZW50OjpDYW5jZWwnIHwgYWJwTG9jYWxpemF0aW9uIH19XHJcbiAgICAgIDwvYnV0dG9uPlxyXG4gICAgICA8YWJwLWJ1dHRvblxyXG4gICAgICAgIHR5cGU9XCJhYnAtYnV0dG9uXCJcclxuICAgICAgICBpY29uQ2xhc3M9XCJmYSBmYS1jaGVja1wiXHJcbiAgICAgICAgKGNsaWNrKT1cInNlcnZpY2Uuc2F2ZSgpXCJcclxuICAgICAgICBbZGlzYWJsZWRdPVwiY3VycmVudFRlbmFudD8ubmFtZSA9PT0gc2VydmljZS5uYW1lXCJcclxuICAgICAgPlxyXG4gICAgICAgIDxzcGFuPnt7ICdBYnBUZW5hbnRNYW5hZ2VtZW50OjpTYXZlJyB8IGFicExvY2FsaXphdGlvbiB9fTwvc3Bhbj5cclxuICAgICAgPC9hYnAtYnV0dG9uPlxyXG4gICAgPC9uZy10ZW1wbGF0ZT5cclxuICA8L2FicC1tb2RhbD5cclxuPC9uZy1jb250YWluZXI+XHJcbiJdfQ==
@@ -0,0 +1,31 @@
1
+ import { SubscriptionService } from '@abp/ng.core';
2
+ import { collapseWithMargin, slideFromBottom } from '@abp/ng.theme.shared';
3
+ import { Component } from '@angular/core';
4
+ import { LayoutService } from '../../services/layout.service';
5
+ import * as i0 from "@angular/core";
6
+ import * as i1 from "../../services/layout.service";
7
+ import * as i2 from "@angular/common";
8
+ import * as i3 from "@angular/router";
9
+ import * as i4 from "@abp/ng.core";
10
+ import * as i5 from "../logo/logo.component";
11
+ import * as i6 from "../nav-items/nav-items.component";
12
+ import * as i7 from "../routes/routes.component";
13
+ import * as i8 from "../page-alert-container/page-alert-container.component";
14
+ class ApplicationLayoutComponent {
15
+ // required for dynamic component
16
+ static { this.type = "application" /* eLayoutType.application */; }
17
+ constructor(service) {
18
+ this.service = service;
19
+ }
20
+ ngAfterViewInit() {
21
+ this.service.subscribeWindowSize();
22
+ }
23
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.0.1", ngImport: i0, type: ApplicationLayoutComponent, deps: [{ token: i1.LayoutService }], target: i0.ɵɵFactoryTarget.Component }); }
24
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.0.1", 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", dependencies: [{ kind: "directive", type: i2.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i2.NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }, { kind: "directive", type: i3.RouterOutlet, selector: "router-outlet", inputs: ["name"], outputs: ["activate", "deactivate", "attach", "detach"], exportAs: ["outlet"] }, { kind: "directive", type: i4.ReplaceableTemplateDirective, selector: "[abpReplaceableTemplate]", inputs: ["abpReplaceableTemplate"] }, { kind: "component", type: i5.LogoComponent, selector: "abp-logo" }, { kind: "component", type: i6.NavItemsComponent, selector: "abp-nav-items" }, { kind: "component", type: i7.RoutesComponent, selector: "abp-routes", inputs: ["smallScreen"] }, { kind: "component", type: i8.PageAlertContainerComponent, selector: "abp-page-alert-container" }], animations: [slideFromBottom, collapseWithMargin] }); }
25
+ }
26
+ export { ApplicationLayoutComponent };
27
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.0.1", ngImport: i0, type: ApplicationLayoutComponent, decorators: [{
28
+ type: Component,
29
+ args: [{ selector: 'abp-layout-application', animations: [slideFromBottom, collapseWithMargin], providers: [LayoutService, SubscriptionService], 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" }]
30
+ }], ctorParameters: function () { return [{ type: i1.LayoutService }]; } });
31
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYXBwbGljYXRpb24tbGF5b3V0LmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uL3BhY2thZ2VzL3RoZW1lLWJhc2ljL3NyYy9saWIvY29tcG9uZW50cy9hcHBsaWNhdGlvbi1sYXlvdXQvYXBwbGljYXRpb24tbGF5b3V0LmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uLy4uLy4uL3BhY2thZ2VzL3RoZW1lLWJhc2ljL3NyYy9saWIvY29tcG9uZW50cy9hcHBsaWNhdGlvbi1sYXlvdXQvYXBwbGljYXRpb24tbGF5b3V0LmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBYyxtQkFBbUIsRUFBQyxNQUFNLGNBQWMsQ0FBQztBQUM5RCxPQUFPLEVBQUUsa0JBQWtCLEVBQUUsZUFBZSxFQUFFLE1BQU0sc0JBQXNCLENBQUM7QUFDM0UsT0FBTyxFQUFnQixTQUFTLEVBQUMsTUFBTSxlQUFlLENBQUM7QUFDdkQsT0FBTyxFQUFFLGFBQWEsRUFBRSxNQUFNLCtCQUErQixDQUFDOzs7Ozs7Ozs7O0FBRzlELE1BTWEsMEJBQTBCO0lBQ3JDLGlDQUFpQzthQUMxQixTQUFJLDhDQUFBLENBQTJCO0lBRXRDLFlBQW1CLE9BQXNCO1FBQXRCLFlBQU8sR0FBUCxPQUFPLENBQWU7SUFBRyxDQUFDO0lBRTdDLGVBQWU7UUFDYixJQUFJLENBQUMsT0FBTyxDQUFDLG1CQUFtQixFQUFFLENBQUM7SUFDckMsQ0FBQzs4R0FSVSwwQkFBMEI7a0dBQTFCLDBCQUEwQixpREFGMUIsQ0FBQyxhQUFhLEVBQUUsbUJBQW1CLENBQUMsMEJDVmpELDg3REFrREEsbTdCRHpDYyxDQUFDLGVBQWUsRUFBRSxrQkFBa0IsQ0FBQzs7U0FHdEMsMEJBQTBCOzJGQUExQiwwQkFBMEI7a0JBTnRDLFNBQVM7K0JBQ0Usd0JBQXdCLGNBRXRCLENBQUMsZUFBZSxFQUFFLGtCQUFrQixDQUFDLGFBQ3RDLENBQUMsYUFBYSxFQUFFLG1CQUFtQixDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtlTGF5b3V0VHlwZSwgU3Vic2NyaXB0aW9uU2VydmljZX0gZnJvbSAnQGFicC9uZy5jb3JlJztcclxuaW1wb3J0IHsgY29sbGFwc2VXaXRoTWFyZ2luLCBzbGlkZUZyb21Cb3R0b20gfSBmcm9tICdAYWJwL25nLnRoZW1lLnNoYXJlZCc7XHJcbmltcG9ydCB7QWZ0ZXJWaWV3SW5pdCwgQ29tcG9uZW50fSBmcm9tICdAYW5ndWxhci9jb3JlJztcclxuaW1wb3J0IHsgTGF5b3V0U2VydmljZSB9IGZyb20gJy4uLy4uL3NlcnZpY2VzL2xheW91dC5zZXJ2aWNlJztcclxuXHJcblxyXG5AQ29tcG9uZW50KHtcclxuICBzZWxlY3RvcjogJ2FicC1sYXlvdXQtYXBwbGljYXRpb24nLFxyXG4gIHRlbXBsYXRlVXJsOiAnLi9hcHBsaWNhdGlvbi1sYXlvdXQuY29tcG9uZW50Lmh0bWwnLFxyXG4gIGFuaW1hdGlvbnM6IFtzbGlkZUZyb21Cb3R0b20sIGNvbGxhcHNlV2l0aE1hcmdpbl0sXHJcbiAgcHJvdmlkZXJzOiBbTGF5b3V0U2VydmljZSwgU3Vic2NyaXB0aW9uU2VydmljZV0sXHJcbn0pXHJcbmV4cG9ydCBjbGFzcyBBcHBsaWNhdGlvbkxheW91dENvbXBvbmVudCBpbXBsZW1lbnRzIEFmdGVyVmlld0luaXQge1xyXG4gIC8vIHJlcXVpcmVkIGZvciBkeW5hbWljIGNvbXBvbmVudFxyXG4gIHN0YXRpYyB0eXBlID0gZUxheW91dFR5cGUuYXBwbGljYXRpb247XHJcblxyXG4gIGNvbnN0cnVjdG9yKHB1YmxpYyBzZXJ2aWNlOiBMYXlvdXRTZXJ2aWNlKSB7fVxyXG5cclxuICBuZ0FmdGVyVmlld0luaXQoKSB7XHJcbiAgICB0aGlzLnNlcnZpY2Uuc3Vic2NyaWJlV2luZG93U2l6ZSgpO1xyXG4gIH1cclxufVxyXG4iLCI8bmF2XHJcbiAgY2xhc3M9XCJuYXZiYXIgbmF2YmFyLWV4cGFuZC1sZyBuYXZiYXItZGFyayBiZy1kYXJrIHNoYWRvdy1zbSBmbGV4LWNvbHVtbiBmbGV4LW1kLXJvdyBtYi00XCJcclxuICBpZD1cIm1haW4tbmF2YmFyXCJcclxuICBzdHlsZT1cIm1pbi1oZWlnaHQ6IDRyZW1cIlxyXG4+XHJcbiAgPGRpdiBjbGFzcz1cImNvbnRhaW5lclwiPlxyXG4gICAgPGFicC1sb2dvICphYnBSZXBsYWNlYWJsZVRlbXBsYXRlPVwieyBjb21wb25lbnRLZXk6IHNlcnZpY2UubG9nb0NvbXBvbmVudEtleSB9XCI+PC9hYnAtbG9nbz5cclxuICAgIDxidXR0b25cclxuICAgICAgY2xhc3M9XCJuYXZiYXItdG9nZ2xlclwiXHJcbiAgICAgIHR5cGU9XCJidXR0b25cIlxyXG4gICAgICBbYXR0ci5hcmlhLWV4cGFuZGVkXT1cIiFzZXJ2aWNlLmlzQ29sbGFwc2VkXCJcclxuICAgICAgKGNsaWNrKT1cInNlcnZpY2UuaXNDb2xsYXBzZWQgPSAhc2VydmljZS5pc0NvbGxhcHNlZFwiXHJcbiAgICA+XHJcbiAgICAgIDxzcGFuIGNsYXNzPVwibmF2YmFyLXRvZ2dsZXItaWNvblwiPjwvc3Bhbj5cclxuICAgIDwvYnV0dG9uPlxyXG4gICAgPGRpdiBjbGFzcz1cIm5hdmJhci1jb2xsYXBzZVwiIFtjbGFzcy5vdmVyZmxvdy1oaWRkZW5dPVwic2VydmljZS5zbWFsbFNjcmVlblwiIGlkPVwibWFpbi1uYXZiYXItY29sbGFwc2VcIj5cclxuICAgICAgPG5nLWNvbnRhaW5lciAqbmdUZW1wbGF0ZU91dGxldD1cIiFzZXJ2aWNlLnNtYWxsU2NyZWVuID8gbmF2aWdhdGlvbnMgOiBudWxsXCI+PC9uZy1jb250YWluZXI+XHJcblxyXG4gICAgICA8ZGl2ICpuZ0lmPVwic2VydmljZS5zbWFsbFNjcmVlblwiIFtAY29sbGFwc2VXaXRoTWFyZ2luXT1cInNlcnZpY2UuaXNDb2xsYXBzZWQgPyAnY29sbGFwc2VkJyA6ICdleHBhbmRlZCdcIj5cclxuICAgICAgICA8bmctY29udGFpbmVyICpuZ1RlbXBsYXRlT3V0bGV0PVwibmF2aWdhdGlvbnNcIj48L25nLWNvbnRhaW5lcj5cclxuICAgICAgPC9kaXY+XHJcblxyXG4gICAgICA8bmctdGVtcGxhdGUgI25hdmlnYXRpb25zPlxyXG4gICAgICAgIDxhYnAtcm91dGVzXHJcbiAgICAgICAgICAqYWJwUmVwbGFjZWFibGVUZW1wbGF0ZT1cIntcclxuICAgICAgICAgICAgY29tcG9uZW50S2V5OiBzZXJ2aWNlLnJvdXRlc0NvbXBvbmVudEtleSxcclxuICAgICAgICAgICAgaW5wdXRzOiB7XHJcbiAgICAgICAgICAgICAgc21hbGxTY3JlZW46IHsgdmFsdWU6IHNlcnZpY2Uuc21hbGxTY3JlZW4gfVxyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgICB9XCJcclxuICAgICAgICAgIGNsYXNzPVwibXgtYXV0b1wiXHJcbiAgICAgICAgICBbc21hbGxTY3JlZW5dPVwic2VydmljZS5zbWFsbFNjcmVlblwiXHJcbiAgICAgICAgPjwvYWJwLXJvdXRlcz5cclxuXHJcbiAgICAgICAgPGFicC1uYXYtaXRlbXNcclxuICAgICAgICAgICphYnBSZXBsYWNlYWJsZVRlbXBsYXRlPVwie1xyXG4gICAgICAgICAgICBjb21wb25lbnRLZXk6IHNlcnZpY2UubmF2SXRlbXNDb21wb25lbnRLZXlcclxuICAgICAgICAgIH1cIlxyXG4gICAgICAgID48L2FicC1uYXYtaXRlbXM+XHJcbiAgICAgIDwvbmctdGVtcGxhdGU+XHJcbiAgICA8L2Rpdj5cclxuICA8L2Rpdj5cclxuPC9uYXY+XHJcblxyXG48IS0tIFtAc2xpZGVGcm9tQm90dG9tXT1cIm91dGxldC5pc0FjdGl2YXRlZCAmJiBvdXRsZXQuYWN0aXZhdGVkUm91dGU/LnJvdXRlQ29uZmlnPy5wYXRoXCIgVE9ETzogdGhyb3dzIEV4cHJlc3Npb25DaGFuZ2VkQWZ0ZXJJdEhhc0JlZW5DaGVjayB3aGVuIGFuaW1hdGlvbiBpcyBhY3RpdmUuIEl0IHNob3VsZCBiZSBmaXhlZCAtLT5cclxuPGRpdiBjbGFzcz1cImNvbnRhaW5lclwiPlxyXG4gIDxhYnAtcGFnZS1hbGVydC1jb250YWluZXI+PC9hYnAtcGFnZS1hbGVydC1jb250YWluZXI+XHJcblxyXG4gIDxyb3V0ZXItb3V0bGV0ICNvdXRsZXQ9XCJvdXRsZXRcIj48L3JvdXRlci1vdXRsZXQ+XHJcbjwvZGl2PlxyXG4iXX0=
@@ -0,0 +1,24 @@
1
+ import { Component } from '@angular/core';
2
+ import * as i0 from "@angular/core";
3
+ import * as i1 from "@angular/router";
4
+ import * as i2 from "@abp/ng.theme.shared";
5
+ class EmptyLayoutComponent {
6
+ static { this.type = "empty" /* eLayoutType.empty */; }
7
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.0.1", ngImport: i0, type: EmptyLayoutComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
8
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.0.1", type: EmptyLayoutComponent, selector: "abp-layout-empty", ngImport: i0, template: `
9
+ <router-outlet></router-outlet>
10
+ <abp-confirmation></abp-confirmation>
11
+ `, isInline: true, dependencies: [{ kind: "directive", type: i1.RouterOutlet, selector: "router-outlet", inputs: ["name"], outputs: ["activate", "deactivate", "attach", "detach"], exportAs: ["outlet"] }, { kind: "component", type: i2.ConfirmationComponent, selector: "abp-confirmation" }] }); }
12
+ }
13
+ export { EmptyLayoutComponent };
14
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.0.1", ngImport: i0, type: EmptyLayoutComponent, decorators: [{
15
+ type: Component,
16
+ args: [{
17
+ selector: 'abp-layout-empty',
18
+ template: `
19
+ <router-outlet></router-outlet>
20
+ <abp-confirmation></abp-confirmation>
21
+ `,
22
+ }]
23
+ }] });
24
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZW1wdHktbGF5b3V0LmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uL3BhY2thZ2VzL3RoZW1lLWJhc2ljL3NyYy9saWIvY29tcG9uZW50cy9lbXB0eS1sYXlvdXQvZW1wdHktbGF5b3V0LmNvbXBvbmVudC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsU0FBUyxFQUFFLE1BQU0sZUFBZSxDQUFDOzs7O0FBRzFDLE1BT2Esb0JBQW9CO2FBQ3hCLFNBQUksa0NBQUEsQ0FBcUI7OEdBRHJCLG9CQUFvQjtrR0FBcEIsb0JBQW9CLHdEQUxyQjs7O0dBR1Q7O1NBRVUsb0JBQW9COzJGQUFwQixvQkFBb0I7a0JBUGhDLFNBQVM7bUJBQUM7b0JBQ1QsUUFBUSxFQUFFLGtCQUFrQjtvQkFDNUIsUUFBUSxFQUFFOzs7R0FHVDtpQkFDRiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENvbXBvbmVudCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xyXG5pbXBvcnQgeyBlTGF5b3V0VHlwZSB9IGZyb20gJ0BhYnAvbmcuY29yZSc7XHJcblxyXG5AQ29tcG9uZW50KHtcclxuICBzZWxlY3RvcjogJ2FicC1sYXlvdXQtZW1wdHknLFxyXG4gIHRlbXBsYXRlOiBgXHJcbiAgICA8cm91dGVyLW91dGxldD48L3JvdXRlci1vdXRsZXQ+XHJcbiAgICA8YWJwLWNvbmZpcm1hdGlvbj48L2FicC1jb25maXJtYXRpb24+XHJcbiAgYCxcclxufSlcclxuZXhwb3J0IGNsYXNzIEVtcHR5TGF5b3V0Q29tcG9uZW50IHtcclxuICBzdGF0aWMgdHlwZSA9IGVMYXlvdXRUeXBlLmVtcHR5O1xyXG59XHJcbiJdfQ==
@@ -1,13 +1,13 @@
1
- export * from './account-layout/account-layout.component';
2
- export * from './account-layout/auth-wrapper/auth-wrapper.component';
3
- export * from './account-layout/tenant-box/tenant-box.component';
4
- export * from './application-layout/application-layout.component';
5
- export * from './empty-layout/empty-layout.component';
6
- export * from './logo/logo.component';
7
- export * from './nav-items/current-user.component';
8
- export * from './nav-items/languages.component';
9
- export * from './nav-items/nav-items.component';
10
- export * from './page-alert-container/page-alert-container.component';
11
- export * from './routes/routes.component';
12
- export * from './validation-error/validation-error.component';
1
+ export * from './account-layout/account-layout.component';
2
+ export * from './account-layout/auth-wrapper/auth-wrapper.component';
3
+ export * from './account-layout/tenant-box/tenant-box.component';
4
+ export * from './application-layout/application-layout.component';
5
+ export * from './empty-layout/empty-layout.component';
6
+ export * from './logo/logo.component';
7
+ export * from './nav-items/current-user.component';
8
+ export * from './nav-items/languages.component';
9
+ export * from './nav-items/nav-items.component';
10
+ export * from './page-alert-container/page-alert-container.component';
11
+ export * from './routes/routes.component';
12
+ export * from './validation-error/validation-error.component';
13
13
  //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wYWNrYWdlcy90aGVtZS1iYXNpYy9zcmMvbGliL2NvbXBvbmVudHMvaW5kZXgudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsY0FBYywyQ0FBMkMsQ0FBQztBQUMxRCxjQUFjLHNEQUFzRCxDQUFDO0FBQ3JFLGNBQWMsa0RBQWtELENBQUM7QUFDakUsY0FBYyxtREFBbUQsQ0FBQztBQUNsRSxjQUFjLHVDQUF1QyxDQUFDO0FBQ3RELGNBQWMsdUJBQXVCLENBQUM7QUFDdEMsY0FBYyxvQ0FBb0MsQ0FBQztBQUNuRCxjQUFjLGlDQUFpQyxDQUFDO0FBQ2hELGNBQWMsaUNBQWlDLENBQUM7QUFDaEQsY0FBYyx1REFBdUQsQ0FBQztBQUN0RSxjQUFjLDJCQUEyQixDQUFDO0FBQzFDLGNBQWMsK0NBQStDLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJleHBvcnQgKiBmcm9tICcuL2FjY291bnQtbGF5b3V0L2FjY291bnQtbGF5b3V0LmNvbXBvbmVudCc7XHJcbmV4cG9ydCAqIGZyb20gJy4vYWNjb3VudC1sYXlvdXQvYXV0aC13cmFwcGVyL2F1dGgtd3JhcHBlci5jb21wb25lbnQnO1xyXG5leHBvcnQgKiBmcm9tICcuL2FjY291bnQtbGF5b3V0L3RlbmFudC1ib3gvdGVuYW50LWJveC5jb21wb25lbnQnO1xyXG5leHBvcnQgKiBmcm9tICcuL2FwcGxpY2F0aW9uLWxheW91dC9hcHBsaWNhdGlvbi1sYXlvdXQuY29tcG9uZW50JztcclxuZXhwb3J0ICogZnJvbSAnLi9lbXB0eS1sYXlvdXQvZW1wdHktbGF5b3V0LmNvbXBvbmVudCc7XHJcbmV4cG9ydCAqIGZyb20gJy4vbG9nby9sb2dvLmNvbXBvbmVudCc7XHJcbmV4cG9ydCAqIGZyb20gJy4vbmF2LWl0ZW1zL2N1cnJlbnQtdXNlci5jb21wb25lbnQnO1xyXG5leHBvcnQgKiBmcm9tICcuL25hdi1pdGVtcy9sYW5ndWFnZXMuY29tcG9uZW50JztcclxuZXhwb3J0ICogZnJvbSAnLi9uYXYtaXRlbXMvbmF2LWl0ZW1zLmNvbXBvbmVudCc7XHJcbmV4cG9ydCAqIGZyb20gJy4vcGFnZS1hbGVydC1jb250YWluZXIvcGFnZS1hbGVydC1jb250YWluZXIuY29tcG9uZW50JztcclxuZXhwb3J0ICogZnJvbSAnLi9yb3V0ZXMvcm91dGVzLmNvbXBvbmVudCc7XHJcbmV4cG9ydCAqIGZyb20gJy4vdmFsaWRhdGlvbi1lcnJvci92YWxpZGF0aW9uLWVycm9yLmNvbXBvbmVudCc7XHJcbiJdfQ==
@@ -0,0 +1,53 @@
1
+ import { EnvironmentService } from '@abp/ng.core';
2
+ import { Component } from '@angular/core';
3
+ import * as i0 from "@angular/core";
4
+ import * as i1 from "@abp/ng.core";
5
+ import * as i2 from "@angular/common";
6
+ import * as i3 from "@angular/router";
7
+ class LogoComponent {
8
+ get appInfo() {
9
+ return this.environment.getEnvironment().application;
10
+ }
11
+ constructor(environment) {
12
+ this.environment = environment;
13
+ }
14
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.0.1", ngImport: i0, type: LogoComponent, deps: [{ token: i1.EnvironmentService }], target: i0.ɵɵFactoryTarget.Component }); }
15
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.0.1", type: LogoComponent, selector: "abp-logo", ngImport: i0, template: `
16
+ <a class="navbar-brand" routerLink="/">
17
+ <img
18
+ *ngIf="appInfo.logoUrl; else appName"
19
+ [src]="appInfo.logoUrl"
20
+ [alt]="appInfo.name"
21
+ width="100%"
22
+ height="auto"
23
+ />
24
+ </a>
25
+
26
+ <ng-template #appName>
27
+ {{ appInfo.name }}
28
+ </ng-template>
29
+ `, isInline: true, dependencies: [{ kind: "directive", type: i2.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i3.RouterLink, selector: "[routerLink]", inputs: ["target", "queryParams", "fragment", "queryParamsHandling", "state", "relativeTo", "preserveFragment", "skipLocationChange", "replaceUrl", "routerLink"] }] }); }
30
+ }
31
+ export { LogoComponent };
32
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.0.1", ngImport: i0, type: LogoComponent, decorators: [{
33
+ type: Component,
34
+ args: [{
35
+ selector: 'abp-logo',
36
+ template: `
37
+ <a class="navbar-brand" routerLink="/">
38
+ <img
39
+ *ngIf="appInfo.logoUrl; else appName"
40
+ [src]="appInfo.logoUrl"
41
+ [alt]="appInfo.name"
42
+ width="100%"
43
+ height="auto"
44
+ />
45
+ </a>
46
+
47
+ <ng-template #appName>
48
+ {{ appInfo.name }}
49
+ </ng-template>
50
+ `,
51
+ }]
52
+ }], ctorParameters: function () { return [{ type: i1.EnvironmentService }]; } });
53
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibG9nby5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9wYWNrYWdlcy90aGVtZS1iYXNpYy9zcmMvbGliL2NvbXBvbmVudHMvbG9nby9sb2dvLmNvbXBvbmVudC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQW1CLGtCQUFrQixFQUFFLE1BQU0sY0FBYyxDQUFDO0FBQ25FLE9BQU8sRUFBRSxTQUFTLEVBQUUsTUFBTSxlQUFlLENBQUM7Ozs7O0FBRTFDLE1Ba0JhLGFBQWE7SUFDeEIsSUFBSSxPQUFPO1FBQ1QsT0FBTyxJQUFJLENBQUMsV0FBVyxDQUFDLGNBQWMsRUFBRSxDQUFDLFdBQVcsQ0FBQztJQUN2RCxDQUFDO0lBRUQsWUFBb0IsV0FBK0I7UUFBL0IsZ0JBQVcsR0FBWCxXQUFXLENBQW9CO0lBQUcsQ0FBQzs4R0FMNUMsYUFBYTtrR0FBYixhQUFhLGdEQWhCZDs7Ozs7Ozs7Ozs7Ozs7R0FjVDs7U0FFVSxhQUFhOzJGQUFiLGFBQWE7a0JBbEJ6QixTQUFTO21CQUFDO29CQUNULFFBQVEsRUFBRSxVQUFVO29CQUNwQixRQUFRLEVBQUU7Ozs7Ozs7Ozs7Ozs7O0dBY1Q7aUJBQ0YiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBBcHBsaWNhdGlvbkluZm8sIEVudmlyb25tZW50U2VydmljZSB9IGZyb20gJ0BhYnAvbmcuY29yZSc7XHJcbmltcG9ydCB7IENvbXBvbmVudCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xyXG5cclxuQENvbXBvbmVudCh7XHJcbiAgc2VsZWN0b3I6ICdhYnAtbG9nbycsXHJcbiAgdGVtcGxhdGU6IGBcclxuICAgIDxhIGNsYXNzPVwibmF2YmFyLWJyYW5kXCIgcm91dGVyTGluaz1cIi9cIj5cclxuICAgICAgPGltZ1xyXG4gICAgICAgICpuZ0lmPVwiYXBwSW5mby5sb2dvVXJsOyBlbHNlIGFwcE5hbWVcIlxyXG4gICAgICAgIFtzcmNdPVwiYXBwSW5mby5sb2dvVXJsXCJcclxuICAgICAgICBbYWx0XT1cImFwcEluZm8ubmFtZVwiXHJcbiAgICAgICAgd2lkdGg9XCIxMDAlXCJcclxuICAgICAgICBoZWlnaHQ9XCJhdXRvXCJcclxuICAgICAgLz5cclxuICAgIDwvYT5cclxuXHJcbiAgICA8bmctdGVtcGxhdGUgI2FwcE5hbWU+XHJcbiAgICAgIHt7IGFwcEluZm8ubmFtZSB9fVxyXG4gICAgPC9uZy10ZW1wbGF0ZT5cclxuICBgLFxyXG59KVxyXG5leHBvcnQgY2xhc3MgTG9nb0NvbXBvbmVudCB7XHJcbiAgZ2V0IGFwcEluZm8oKTogQXBwbGljYXRpb25JbmZvIHtcclxuICAgIHJldHVybiB0aGlzLmVudmlyb25tZW50LmdldEVudmlyb25tZW50KCkuYXBwbGljYXRpb247XHJcbiAgfVxyXG5cclxuICBjb25zdHJ1Y3Rvcihwcml2YXRlIGVudmlyb25tZW50OiBFbnZpcm9ubWVudFNlcnZpY2UpIHt9XHJcbn1cclxuIl19
@@ -0,0 +1,40 @@
1
+ import { AuthService, ConfigStateService, NAVIGATE_TO_MANAGE_PROFILE, SessionStateService, } from '@abp/ng.core';
2
+ import { UserMenuService } from '@abp/ng.theme.shared';
3
+ import { Component, Inject } from '@angular/core';
4
+ import * as i0 from "@angular/core";
5
+ import * as i1 from "@abp/ng.theme.shared";
6
+ import * as i2 from "@abp/ng.core";
7
+ import * as i3 from "@angular/common";
8
+ import * as i4 from "@ng-bootstrap/ng-bootstrap";
9
+ class CurrentUserComponent {
10
+ get smallScreen() {
11
+ return window.innerWidth < 992;
12
+ }
13
+ constructor(navigateToManageProfile, userMenu, authService, configState, sessionState) {
14
+ this.navigateToManageProfile = navigateToManageProfile;
15
+ this.userMenu = userMenu;
16
+ this.authService = authService;
17
+ this.configState = configState;
18
+ this.sessionState = sessionState;
19
+ this.currentUser$ = this.configState.getOne$('currentUser');
20
+ this.selectedTenant$ = this.sessionState.getTenant$();
21
+ this.trackByFn = (_, element) => element.id;
22
+ }
23
+ navigateToLogin() {
24
+ this.authService.navigateToLogin();
25
+ }
26
+ logout() {
27
+ this.authService.logout().subscribe();
28
+ }
29
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.0.1", ngImport: i0, type: CurrentUserComponent, deps: [{ token: NAVIGATE_TO_MANAGE_PROFILE }, { token: i1.UserMenuService }, { token: i2.AuthService }, { token: i2.ConfigStateService }, { token: i2.SessionStateService }], target: i0.ɵɵFactoryTarget.Component }); }
30
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.0.1", 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 <ng-container *ngFor=\"let item of userMenu.items$ | async; trackBy: trackByFn\">\r\n <ng-container *abpVisible=\"!item.visible || item.visible(item)\">\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 [ngComponentOutletInjector]=\"item | toInjector\"\r\n ></ng-container>\r\n\r\n <ng-template #htmlTemplate>\r\n <div\r\n *ngIf=\"item.html; else textTemplate\"\r\n [innerHTML]=\"item.html\"\r\n (click)=\"item.action ? item.action() : null\"\r\n ></div>\r\n </ng-template>\r\n\r\n <ng-template #textTemplate>\r\n <a\r\n *ngIf=\"item.textTemplate\"\r\n (click)=\"item.action ? item.action() : null\"\r\n class=\"dropdown-item pointer\"\r\n >\r\n <i *ngIf=\"item.textTemplate.icon\" class=\"me-1 {{ item.textTemplate.icon }}\"></i>\r\n {{ item.textTemplate.text | abpLocalization }}</a\r\n >\r\n </ng-template>\r\n </li>\r\n </ng-container>\r\n </ng-container>\r\n </div>\r\n</div>\r\n", dependencies: [{ kind: "directive", type: i3.NgComponentOutlet, selector: "[ngComponentOutlet]", inputs: ["ngComponentOutlet", "ngComponentOutletInjector", "ngComponentOutletContent", "ngComponentOutletNgModule", "ngComponentOutletNgModuleFactory"] }, { kind: "directive", type: i3.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i3.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i2.PermissionDirective, selector: "[abpPermission]", inputs: ["abpPermission", "abpPermissionRunChangeDetection"] }, { kind: "directive", type: i1.AbpVisibleDirective, selector: "[abpVisible]", inputs: ["abpVisible"] }, { kind: "directive", type: i4.NgbDropdown, selector: "[ngbDropdown]", inputs: ["autoClose", "dropdownClass", "open", "placement", "popperOptions", "container", "display"], outputs: ["openChange"], exportAs: ["ngbDropdown"] }, { kind: "directive", type: i4.NgbDropdownToggle, selector: "[ngbDropdownToggle]" }, { kind: "pipe", type: i3.AsyncPipe, name: "async" }, { kind: "pipe", type: i2.LocalizationPipe, name: "abpLocalization" }, { kind: "pipe", type: i2.ToInjectorPipe, name: "toInjector" }] }); }
31
+ }
32
+ export { CurrentUserComponent };
33
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.0.1", ngImport: i0, type: CurrentUserComponent, decorators: [{
34
+ type: Component,
35
+ args: [{ selector: 'abp-current-user', 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 <ng-container *ngFor=\"let item of userMenu.items$ | async; trackBy: trackByFn\">\r\n <ng-container *abpVisible=\"!item.visible || item.visible(item)\">\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 [ngComponentOutletInjector]=\"item | toInjector\"\r\n ></ng-container>\r\n\r\n <ng-template #htmlTemplate>\r\n <div\r\n *ngIf=\"item.html; else textTemplate\"\r\n [innerHTML]=\"item.html\"\r\n (click)=\"item.action ? item.action() : null\"\r\n ></div>\r\n </ng-template>\r\n\r\n <ng-template #textTemplate>\r\n <a\r\n *ngIf=\"item.textTemplate\"\r\n (click)=\"item.action ? item.action() : null\"\r\n class=\"dropdown-item pointer\"\r\n >\r\n <i *ngIf=\"item.textTemplate.icon\" class=\"me-1 {{ item.textTemplate.icon }}\"></i>\r\n {{ item.textTemplate.text | abpLocalization }}</a\r\n >\r\n </ng-template>\r\n </li>\r\n </ng-container>\r\n </ng-container>\r\n </div>\r\n</div>\r\n" }]
36
+ }], ctorParameters: function () { return [{ type: undefined, decorators: [{
37
+ type: Inject,
38
+ args: [NAVIGATE_TO_MANAGE_PROFILE]
39
+ }] }, { type: i1.UserMenuService }, { type: i2.AuthService }, { type: i2.ConfigStateService }, { type: i2.SessionStateService }]; } });
40
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY3VycmVudC11c2VyLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uL3BhY2thZ2VzL3RoZW1lLWJhc2ljL3NyYy9saWIvY29tcG9uZW50cy9uYXYtaXRlbXMvY3VycmVudC11c2VyLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uLy4uLy4uL3BhY2thZ2VzL3RoZW1lLWJhc2ljL3NyYy9saWIvY29tcG9uZW50cy9uYXYtaXRlbXMvY3VycmVudC11c2VyLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFDTCxXQUFXLEVBQ1gsa0JBQWtCLEVBRWxCLDBCQUEwQixFQUMxQixtQkFBbUIsR0FDcEIsTUFBTSxjQUFjLENBQUM7QUFDdEIsT0FBTyxFQUFZLGVBQWUsRUFBRSxNQUFNLHNCQUFzQixDQUFDO0FBQ2pFLE9BQU8sRUFBRSxTQUFTLEVBQUUsTUFBTSxFQUFtQixNQUFNLGVBQWUsQ0FBQzs7Ozs7O0FBR25FLE1BSWEsb0JBQW9CO0lBTS9CLElBQUksV0FBVztRQUNiLE9BQU8sTUFBTSxDQUFDLFVBQVUsR0FBRyxHQUFHLENBQUM7SUFDakMsQ0FBQztJQUVELFlBQ3NELHVCQUFtQyxFQUN2RSxRQUF5QixFQUNqQyxXQUF3QixFQUN4QixXQUErQixFQUMvQixZQUFpQztRQUpXLDRCQUF1QixHQUF2Qix1QkFBdUIsQ0FBWTtRQUN2RSxhQUFRLEdBQVIsUUFBUSxDQUFpQjtRQUNqQyxnQkFBVyxHQUFYLFdBQVcsQ0FBYTtRQUN4QixnQkFBVyxHQUFYLFdBQVcsQ0FBb0I7UUFDL0IsaUJBQVksR0FBWixZQUFZLENBQXFCO1FBZDNDLGlCQUFZLEdBQStCLElBQUksQ0FBQyxXQUFXLENBQUMsT0FBTyxDQUFDLGFBQWEsQ0FBQyxDQUFDO1FBQ25GLG9CQUFlLEdBQUcsSUFBSSxDQUFDLFlBQVksQ0FBQyxVQUFVLEVBQUUsQ0FBQztRQUVqRCxjQUFTLEdBQThCLENBQUMsQ0FBQyxFQUFFLE9BQU8sRUFBRSxFQUFFLENBQUMsT0FBTyxDQUFDLEVBQUUsQ0FBQztJQVkvRCxDQUFDO0lBRUosZUFBZTtRQUNiLElBQUksQ0FBQyxXQUFXLENBQUMsZUFBZSxFQUFFLENBQUM7SUFDckMsQ0FBQztJQUVELE1BQU07UUFDSixJQUFJLENBQUMsV0FBVyxDQUFDLE1BQU0sRUFBRSxDQUFDLFNBQVMsRUFBRSxDQUFDO0lBQ3hDLENBQUM7OEdBeEJVLG9CQUFvQixrQkFXckIsMEJBQTBCO2tHQVh6QixvQkFBb0Isd0RDZmpDLDZ5RUFpRUE7O1NEbERhLG9CQUFvQjsyRkFBcEIsb0JBQW9CO2tCQUpoQyxTQUFTOytCQUNFLGtCQUFrQjs7MEJBY3pCLE1BQU07MkJBQUMsMEJBQTBCIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtcclxuICBBdXRoU2VydmljZSxcclxuICBDb25maWdTdGF0ZVNlcnZpY2UsXHJcbiAgQ3VycmVudFVzZXJEdG8sXHJcbiAgTkFWSUdBVEVfVE9fTUFOQUdFX1BST0ZJTEUsXHJcbiAgU2Vzc2lvblN0YXRlU2VydmljZSxcclxufSBmcm9tICdAYWJwL25nLmNvcmUnO1xyXG5pbXBvcnQgeyBVc2VyTWVudSwgVXNlck1lbnVTZXJ2aWNlIH0gZnJvbSAnQGFicC9uZy50aGVtZS5zaGFyZWQnO1xyXG5pbXBvcnQgeyBDb21wb25lbnQsIEluamVjdCwgVHJhY2tCeUZ1bmN0aW9uIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XHJcbmltcG9ydCB7IE9ic2VydmFibGUgfSBmcm9tICdyeGpzJztcclxuXHJcbkBDb21wb25lbnQoe1xyXG4gIHNlbGVjdG9yOiAnYWJwLWN1cnJlbnQtdXNlcicsXHJcbiAgdGVtcGxhdGVVcmw6ICcuL2N1cnJlbnQtdXNlci5jb21wb25lbnQuaHRtbCcsXHJcbn0pXHJcbmV4cG9ydCBjbGFzcyBDdXJyZW50VXNlckNvbXBvbmVudCB7XHJcbiAgY3VycmVudFVzZXIkOiBPYnNlcnZhYmxlPEN1cnJlbnRVc2VyRHRvPiA9IHRoaXMuY29uZmlnU3RhdGUuZ2V0T25lJCgnY3VycmVudFVzZXInKTtcclxuICBzZWxlY3RlZFRlbmFudCQgPSB0aGlzLnNlc3Npb25TdGF0ZS5nZXRUZW5hbnQkKCk7XHJcblxyXG4gIHRyYWNrQnlGbjogVHJhY2tCeUZ1bmN0aW9uPFVzZXJNZW51PiA9IChfLCBlbGVtZW50KSA9PiBlbGVtZW50LmlkO1xyXG5cclxuICBnZXQgc21hbGxTY3JlZW4oKTogYm9vbGVhbiB7XHJcbiAgICByZXR1cm4gd2luZG93LmlubmVyV2lkdGggPCA5OTI7XHJcbiAgfVxyXG5cclxuICBjb25zdHJ1Y3RvcihcclxuICAgIEBJbmplY3QoTkFWSUdBVEVfVE9fTUFOQUdFX1BST0ZJTEUpIHB1YmxpYyByZWFkb25seSBuYXZpZ2F0ZVRvTWFuYWdlUHJvZmlsZTogKCkgPT4gdm9pZCxcclxuICAgIHB1YmxpYyByZWFkb25seSB1c2VyTWVudTogVXNlck1lbnVTZXJ2aWNlLFxyXG4gICAgcHJpdmF0ZSBhdXRoU2VydmljZTogQXV0aFNlcnZpY2UsXHJcbiAgICBwcml2YXRlIGNvbmZpZ1N0YXRlOiBDb25maWdTdGF0ZVNlcnZpY2UsXHJcbiAgICBwcml2YXRlIHNlc3Npb25TdGF0ZTogU2Vzc2lvblN0YXRlU2VydmljZSxcclxuICApIHt9XHJcblxyXG4gIG5hdmlnYXRlVG9Mb2dpbigpIHtcclxuICAgIHRoaXMuYXV0aFNlcnZpY2UubmF2aWdhdGVUb0xvZ2luKCk7XHJcbiAgfVxyXG5cclxuICBsb2dvdXQoKSB7XHJcbiAgICB0aGlzLmF1dGhTZXJ2aWNlLmxvZ291dCgpLnN1YnNjcmliZSgpO1xyXG4gIH1cclxufVxyXG4iLCI8bmctdGVtcGxhdGUgI2xvZ2luQnRuPlxyXG4gIDxhIHJvbGU9XCJidXR0b25cIiBjbGFzcz1cIm5hdi1saW5rIHBvaW50ZXJcIiAoY2xpY2spPVwibmF2aWdhdGVUb0xvZ2luKClcIj57e1xyXG4gICAgJ0FicEFjY291bnQ6OkxvZ2luJyB8IGFicExvY2FsaXphdGlvblxyXG4gIH19PC9hPlxyXG48L25nLXRlbXBsYXRlPlxyXG48ZGl2XHJcbiAgKm5nSWY9XCIoY3VycmVudFVzZXIkIHwgYXN5bmMpPy5pc0F1dGhlbnRpY2F0ZWQ7IGVsc2UgbG9naW5CdG5cIlxyXG4gIG5nYkRyb3Bkb3duXHJcbiAgY2xhc3M9XCJkcm9wZG93blwiXHJcbiAgI2N1cnJlbnRVc2VyRHJvcGRvd249XCJuZ2JEcm9wZG93blwiXHJcbiAgZGlzcGxheT1cInN0YXRpY1wiXHJcbj5cclxuICA8YVxyXG4gICAgbmdiRHJvcGRvd25Ub2dnbGVcclxuICAgIGNsYXNzPVwibmF2LWxpbmtcIlxyXG4gICAgaHJlZj1cImphdmFzY3JpcHQ6dm9pZCgwKVwiXHJcbiAgICByb2xlPVwiYnV0dG9uXCJcclxuICAgIGlkPVwiZHJvcGRvd25NZW51TGlua1wiXHJcbiAgICBkYXRhLXRvZ2dsZT1cImRyb3Bkb3duXCJcclxuICAgIGFyaWEtaGFzcG9wdXA9XCJ0cnVlXCJcclxuICAgIGFyaWEtZXhwYW5kZWQ9XCJmYWxzZVwiXHJcbiAgPlxyXG4gICAgPHNtYWxsICpuZ0lmPVwiKHNlbGVjdGVkVGVuYW50JCB8IGFzeW5jKT8ubmFtZSBhcyB0ZW5hbnROYW1lXCJcclxuICAgICAgPjxpPnt7IHRlbmFudE5hbWUgfX08L2lcclxuICAgICAgPlxcPC9zbWFsbFxyXG4gICAgPlxyXG4gICAgPHN0cm9uZz57eyAoY3VycmVudFVzZXIkIHwgYXN5bmMpPy51c2VyTmFtZSB9fTwvc3Ryb25nPlxyXG4gIDwvYT5cclxuICA8ZGl2XHJcbiAgICBjbGFzcz1cImRyb3Bkb3duLW1lbnUgZHJvcGRvd24tbWVudS1lbmQgYm9yZGVyLTAgc2hhZG93LXNtXCJcclxuICAgIGFyaWEtbGFiZWxsZWRieT1cImRyb3Bkb3duTWVudUxpbmtcIlxyXG4gICAgW2NsYXNzLmQtYmxvY2tdPVwic21hbGxTY3JlZW4gJiYgY3VycmVudFVzZXJEcm9wZG93bi5pc09wZW4oKVwiXHJcbiAgPlxyXG4gICAgPG5nLWNvbnRhaW5lciAqbmdGb3I9XCJsZXQgaXRlbSBvZiB1c2VyTWVudS5pdGVtcyQgfCBhc3luYzsgdHJhY2tCeTogdHJhY2tCeUZuXCI+XHJcbiAgICAgIDxuZy1jb250YWluZXIgKmFicFZpc2libGU9XCIhaXRlbS52aXNpYmxlIHx8IGl0ZW0udmlzaWJsZShpdGVtKVwiPlxyXG4gICAgICAgIDxsaSBjbGFzcz1cIm5hdi1pdGVtIGQtZmxleCBhbGlnbi1pdGVtcy1jZW50ZXJcIiAqYWJwUGVybWlzc2lvbj1cIml0ZW0ucmVxdWlyZWRQb2xpY3lcIj5cclxuICAgICAgICAgIDxuZy1jb250YWluZXJcclxuICAgICAgICAgICAgKm5nSWY9XCJpdGVtLmNvbXBvbmVudDsgZWxzZSBodG1sVGVtcGxhdGVcIlxyXG4gICAgICAgICAgICBbbmdDb21wb25lbnRPdXRsZXRdPVwiaXRlbS5jb21wb25lbnRcIlxyXG4gICAgICAgICAgICBbbmdDb21wb25lbnRPdXRsZXRJbmplY3Rvcl09XCJpdGVtIHwgdG9JbmplY3RvclwiXHJcbiAgICAgICAgICA+PC9uZy1jb250YWluZXI+XHJcblxyXG4gICAgICAgICAgPG5nLXRlbXBsYXRlICNodG1sVGVtcGxhdGU+XHJcbiAgICAgICAgICAgIDxkaXZcclxuICAgICAgICAgICAgICAqbmdJZj1cIml0ZW0uaHRtbDsgZWxzZSB0ZXh0VGVtcGxhdGVcIlxyXG4gICAgICAgICAgICAgIFtpbm5lckhUTUxdPVwiaXRlbS5odG1sXCJcclxuICAgICAgICAgICAgICAoY2xpY2spPVwiaXRlbS5hY3Rpb24gPyBpdGVtLmFjdGlvbigpIDogbnVsbFwiXHJcbiAgICAgICAgICAgID48L2Rpdj5cclxuICAgICAgICAgIDwvbmctdGVtcGxhdGU+XHJcblxyXG4gICAgICAgICAgPG5nLXRlbXBsYXRlICN0ZXh0VGVtcGxhdGU+XHJcbiAgICAgICAgICAgIDxhXHJcbiAgICAgICAgICAgICAgKm5nSWY9XCJpdGVtLnRleHRUZW1wbGF0ZVwiXHJcbiAgICAgICAgICAgICAgKGNsaWNrKT1cIml0ZW0uYWN0aW9uID8gaXRlbS5hY3Rpb24oKSA6IG51bGxcIlxyXG4gICAgICAgICAgICAgIGNsYXNzPVwiZHJvcGRvd24taXRlbSBwb2ludGVyXCJcclxuICAgICAgICAgICAgPlxyXG4gICAgICAgICAgICAgIDxpICpuZ0lmPVwiaXRlbS50ZXh0VGVtcGxhdGUuaWNvblwiIGNsYXNzPVwibWUtMSB7eyBpdGVtLnRleHRUZW1wbGF0ZS5pY29uIH19XCI+PC9pPlxyXG4gICAgICAgICAgICAgIHt7IGl0ZW0udGV4dFRlbXBsYXRlLnRleHQgfCBhYnBMb2NhbGl6YXRpb24gfX08L2FcclxuICAgICAgICAgICAgPlxyXG4gICAgICAgICAgPC9uZy10ZW1wbGF0ZT5cclxuICAgICAgICA8L2xpPlxyXG4gICAgICA8L25nLWNvbnRhaW5lcj5cclxuICAgIDwvbmctY29udGFpbmVyPlxyXG4gIDwvZGl2PlxyXG48L2Rpdj5cclxuIl19
@@ -0,0 +1,108 @@
1
+ import { ConfigStateService, SessionStateService } from '@abp/ng.core';
2
+ import { Component } from '@angular/core';
3
+ import { map } from 'rxjs/operators';
4
+ import * as i0 from "@angular/core";
5
+ import * as i1 from "@abp/ng.core";
6
+ import * as i2 from "@angular/common";
7
+ import * as i3 from "@ng-bootstrap/ng-bootstrap";
8
+ class LanguagesComponent {
9
+ get smallScreen() {
10
+ return window.innerWidth < 992;
11
+ }
12
+ get defaultLanguage$() {
13
+ return this.languages$.pipe(map(languages => languages?.find(lang => lang.cultureName === this.selectedLangCulture)?.displayName || ''));
14
+ }
15
+ get dropdownLanguages$() {
16
+ return this.languages$.pipe(map(languages => languages?.filter(lang => lang.cultureName !== this.selectedLangCulture) || []));
17
+ }
18
+ get selectedLangCulture() {
19
+ return this.sessionState.getLanguage();
20
+ }
21
+ constructor(sessionState, configState) {
22
+ this.sessionState = sessionState;
23
+ this.configState = configState;
24
+ this.languages$ = this.configState.getDeep$('localization.languages');
25
+ }
26
+ onChangeLang(cultureName) {
27
+ this.sessionState.setLanguage(cultureName);
28
+ }
29
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.0.1", ngImport: i0, type: LanguagesComponent, deps: [{ token: i1.SessionStateService }, { token: i1.ConfigStateService }], target: i0.ɵɵFactoryTarget.Component }); }
30
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.0.1", type: LanguagesComponent, selector: "abp-languages", ngImport: i0, template: `
31
+ <div
32
+ *ngIf="((dropdownLanguages$ | async)?.length || 0) > 0"
33
+ class="dropdown"
34
+ ngbDropdown
35
+ #languageDropdown="ngbDropdown"
36
+ display="static"
37
+ >
38
+ <a
39
+ ngbDropdownToggle
40
+ class="nav-link"
41
+ href="javascript:void(0)"
42
+ role="button"
43
+ id="dropdownMenuLink"
44
+ data-toggle="dropdown"
45
+ aria-haspopup="true"
46
+ aria-expanded="false"
47
+ >
48
+ {{ defaultLanguage$ | async }}
49
+ </a>
50
+ <div
51
+ class="dropdown-menu dropdown-menu-end border-0 shadow-sm"
52
+ aria-labelledby="dropdownMenuLink"
53
+ [class.d-block]="smallScreen && languageDropdown.isOpen()"
54
+ >
55
+ <a
56
+ *ngFor="let lang of dropdownLanguages$ | async"
57
+ href="javascript:void(0)"
58
+ class="dropdown-item"
59
+ (click)="onChangeLang(lang.cultureName || '')"
60
+ >{{ lang?.displayName }}</a
61
+ >
62
+ </div>
63
+ </div>
64
+ `, isInline: true, dependencies: [{ kind: "directive", type: i2.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i2.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i3.NgbDropdown, selector: "[ngbDropdown]", inputs: ["autoClose", "dropdownClass", "open", "placement", "popperOptions", "container", "display"], outputs: ["openChange"], exportAs: ["ngbDropdown"] }, { kind: "directive", type: i3.NgbDropdownToggle, selector: "[ngbDropdownToggle]" }, { kind: "pipe", type: i2.AsyncPipe, name: "async" }] }); }
65
+ }
66
+ export { LanguagesComponent };
67
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.0.1", ngImport: i0, type: LanguagesComponent, decorators: [{
68
+ type: Component,
69
+ args: [{
70
+ selector: 'abp-languages',
71
+ template: `
72
+ <div
73
+ *ngIf="((dropdownLanguages$ | async)?.length || 0) > 0"
74
+ class="dropdown"
75
+ ngbDropdown
76
+ #languageDropdown="ngbDropdown"
77
+ display="static"
78
+ >
79
+ <a
80
+ ngbDropdownToggle
81
+ class="nav-link"
82
+ href="javascript:void(0)"
83
+ role="button"
84
+ id="dropdownMenuLink"
85
+ data-toggle="dropdown"
86
+ aria-haspopup="true"
87
+ aria-expanded="false"
88
+ >
89
+ {{ defaultLanguage$ | async }}
90
+ </a>
91
+ <div
92
+ class="dropdown-menu dropdown-menu-end border-0 shadow-sm"
93
+ aria-labelledby="dropdownMenuLink"
94
+ [class.d-block]="smallScreen && languageDropdown.isOpen()"
95
+ >
96
+ <a
97
+ *ngFor="let lang of dropdownLanguages$ | async"
98
+ href="javascript:void(0)"
99
+ class="dropdown-item"
100
+ (click)="onChangeLang(lang.cultureName || '')"
101
+ >{{ lang?.displayName }}</a
102
+ >
103
+ </div>
104
+ </div>
105
+ `,
106
+ }]
107
+ }], ctorParameters: function () { return [{ type: i1.SessionStateService }, { type: i1.ConfigStateService }]; } });
108
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibGFuZ3VhZ2VzLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uL3BhY2thZ2VzL3RoZW1lLWJhc2ljL3NyYy9saWIvY29tcG9uZW50cy9uYXYtaXRlbXMvbGFuZ3VhZ2VzLmNvbXBvbmVudC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsa0JBQWtCLEVBQWdCLG1CQUFtQixFQUFFLE1BQU0sY0FBYyxDQUFDO0FBQ3JGLE9BQU8sRUFBRSxTQUFTLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFFMUMsT0FBTyxFQUFFLEdBQUcsRUFBRSxNQUFNLGdCQUFnQixDQUFDOzs7OztBQUVyQyxNQXNDYSxrQkFBa0I7SUFDN0IsSUFBSSxXQUFXO1FBQ2IsT0FBTyxNQUFNLENBQUMsVUFBVSxHQUFHLEdBQUcsQ0FBQztJQUNqQyxDQUFDO0lBSUQsSUFBSSxnQkFBZ0I7UUFDbEIsT0FBTyxJQUFJLENBQUMsVUFBVSxDQUFDLElBQUksQ0FDekIsR0FBRyxDQUNELFNBQVMsQ0FBQyxFQUFFLENBQ1YsU0FBUyxFQUFFLElBQUksQ0FBQyxJQUFJLENBQUMsRUFBRSxDQUFDLElBQUksQ0FBQyxXQUFXLEtBQUssSUFBSSxDQUFDLG1CQUFtQixDQUFDLEVBQUUsV0FBVyxJQUFJLEVBQUUsQ0FDNUYsQ0FDRixDQUFDO0lBQ0osQ0FBQztJQUVELElBQUksa0JBQWtCO1FBQ3BCLE9BQU8sSUFBSSxDQUFDLFVBQVUsQ0FBQyxJQUFJLENBQ3pCLEdBQUcsQ0FDRCxTQUFTLENBQUMsRUFBRSxDQUFDLFNBQVMsRUFBRSxNQUFNLENBQUMsSUFBSSxDQUFDLEVBQUUsQ0FBQyxJQUFJLENBQUMsV0FBVyxLQUFLLElBQUksQ0FBQyxtQkFBbUIsQ0FBQyxJQUFJLEVBQUUsQ0FDNUYsQ0FDRixDQUFDO0lBQ0osQ0FBQztJQUVELElBQUksbUJBQW1CO1FBQ3JCLE9BQU8sSUFBSSxDQUFDLFlBQVksQ0FBQyxXQUFXLEVBQUUsQ0FBQztJQUN6QyxDQUFDO0lBRUQsWUFBb0IsWUFBaUMsRUFBVSxXQUErQjtRQUExRSxpQkFBWSxHQUFaLFlBQVksQ0FBcUI7UUFBVSxnQkFBVyxHQUFYLFdBQVcsQ0FBb0I7UUF2QjlGLGVBQVUsR0FBK0IsSUFBSSxDQUFDLFdBQVcsQ0FBQyxRQUFRLENBQUMsd0JBQXdCLENBQUMsQ0FBQztJQXVCSSxDQUFDO0lBRWxHLFlBQVksQ0FBQyxXQUFtQjtRQUM5QixJQUFJLENBQUMsWUFBWSxDQUFDLFdBQVcsQ0FBQyxXQUFXLENBQUMsQ0FBQztJQUM3QyxDQUFDOzhHQWhDVSxrQkFBa0I7a0dBQWxCLGtCQUFrQixxREFwQ25COzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O0dBa0NUOztTQUVVLGtCQUFrQjsyRkFBbEIsa0JBQWtCO2tCQXRDOUIsU0FBUzttQkFBQztvQkFDVCxRQUFRLEVBQUUsZUFBZTtvQkFDekIsUUFBUSxFQUFFOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O0dBa0NUO2lCQUNGIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ29uZmlnU3RhdGVTZXJ2aWNlLCBMYW5ndWFnZUluZm8sIFNlc3Npb25TdGF0ZVNlcnZpY2UgfSBmcm9tICdAYWJwL25nLmNvcmUnO1xyXG5pbXBvcnQgeyBDb21wb25lbnQgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcclxuaW1wb3J0IHsgT2JzZXJ2YWJsZSB9IGZyb20gJ3J4anMnO1xyXG5pbXBvcnQgeyBtYXAgfSBmcm9tICdyeGpzL29wZXJhdG9ycyc7XHJcblxyXG5AQ29tcG9uZW50KHtcclxuICBzZWxlY3RvcjogJ2FicC1sYW5ndWFnZXMnLFxyXG4gIHRlbXBsYXRlOiBgXHJcbiAgICA8ZGl2XHJcbiAgICAgICpuZ0lmPVwiKChkcm9wZG93bkxhbmd1YWdlcyQgfCBhc3luYyk/Lmxlbmd0aCB8fCAwKSA+IDBcIlxyXG4gICAgICBjbGFzcz1cImRyb3Bkb3duXCJcclxuICAgICAgbmdiRHJvcGRvd25cclxuICAgICAgI2xhbmd1YWdlRHJvcGRvd249XCJuZ2JEcm9wZG93blwiXHJcbiAgICAgIGRpc3BsYXk9XCJzdGF0aWNcIlxyXG4gICAgPlxyXG4gICAgICA8YVxyXG4gICAgICAgIG5nYkRyb3Bkb3duVG9nZ2xlXHJcbiAgICAgICAgY2xhc3M9XCJuYXYtbGlua1wiXHJcbiAgICAgICAgaHJlZj1cImphdmFzY3JpcHQ6dm9pZCgwKVwiXHJcbiAgICAgICAgcm9sZT1cImJ1dHRvblwiXHJcbiAgICAgICAgaWQ9XCJkcm9wZG93bk1lbnVMaW5rXCJcclxuICAgICAgICBkYXRhLXRvZ2dsZT1cImRyb3Bkb3duXCJcclxuICAgICAgICBhcmlhLWhhc3BvcHVwPVwidHJ1ZVwiXHJcbiAgICAgICAgYXJpYS1leHBhbmRlZD1cImZhbHNlXCJcclxuICAgICAgPlxyXG4gICAgICAgIHt7IGRlZmF1bHRMYW5ndWFnZSQgfCBhc3luYyB9fVxyXG4gICAgICA8L2E+XHJcbiAgICAgIDxkaXZcclxuICAgICAgICBjbGFzcz1cImRyb3Bkb3duLW1lbnUgZHJvcGRvd24tbWVudS1lbmQgYm9yZGVyLTAgc2hhZG93LXNtXCJcclxuICAgICAgICBhcmlhLWxhYmVsbGVkYnk9XCJkcm9wZG93bk1lbnVMaW5rXCJcclxuICAgICAgICBbY2xhc3MuZC1ibG9ja109XCJzbWFsbFNjcmVlbiAmJiBsYW5ndWFnZURyb3Bkb3duLmlzT3BlbigpXCJcclxuICAgICAgPlxyXG4gICAgICAgIDxhXHJcbiAgICAgICAgICAqbmdGb3I9XCJsZXQgbGFuZyBvZiBkcm9wZG93bkxhbmd1YWdlcyQgfCBhc3luY1wiXHJcbiAgICAgICAgICBocmVmPVwiamF2YXNjcmlwdDp2b2lkKDApXCJcclxuICAgICAgICAgIGNsYXNzPVwiZHJvcGRvd24taXRlbVwiXHJcbiAgICAgICAgICAoY2xpY2spPVwib25DaGFuZ2VMYW5nKGxhbmcuY3VsdHVyZU5hbWUgfHwgJycpXCJcclxuICAgICAgICAgID57eyBsYW5nPy5kaXNwbGF5TmFtZSB9fTwvYVxyXG4gICAgICAgID5cclxuICAgICAgPC9kaXY+XHJcbiAgICA8L2Rpdj5cclxuICBgLFxyXG59KVxyXG5leHBvcnQgY2xhc3MgTGFuZ3VhZ2VzQ29tcG9uZW50IHtcclxuICBnZXQgc21hbGxTY3JlZW4oKTogYm9vbGVhbiB7XHJcbiAgICByZXR1cm4gd2luZG93LmlubmVyV2lkdGggPCA5OTI7XHJcbiAgfVxyXG5cclxuICBsYW5ndWFnZXMkOiBPYnNlcnZhYmxlPExhbmd1YWdlSW5mb1tdPiA9IHRoaXMuY29uZmlnU3RhdGUuZ2V0RGVlcCQoJ2xvY2FsaXphdGlvbi5sYW5ndWFnZXMnKTtcclxuXHJcbiAgZ2V0IGRlZmF1bHRMYW5ndWFnZSQoKTogT2JzZXJ2YWJsZTxzdHJpbmc+IHtcclxuICAgIHJldHVybiB0aGlzLmxhbmd1YWdlcyQucGlwZShcclxuICAgICAgbWFwKFxyXG4gICAgICAgIGxhbmd1YWdlcyA9PlxyXG4gICAgICAgICAgbGFuZ3VhZ2VzPy5maW5kKGxhbmcgPT4gbGFuZy5jdWx0dXJlTmFtZSA9PT0gdGhpcy5zZWxlY3RlZExhbmdDdWx0dXJlKT8uZGlzcGxheU5hbWUgfHwgJycsXHJcbiAgICAgICksXHJcbiAgICApO1xyXG4gIH1cclxuXHJcbiAgZ2V0IGRyb3Bkb3duTGFuZ3VhZ2VzJCgpOiBPYnNlcnZhYmxlPExhbmd1YWdlSW5mb1tdPiB7XHJcbiAgICByZXR1cm4gdGhpcy5sYW5ndWFnZXMkLnBpcGUoXHJcbiAgICAgIG1hcChcclxuICAgICAgICBsYW5ndWFnZXMgPT4gbGFuZ3VhZ2VzPy5maWx0ZXIobGFuZyA9PiBsYW5nLmN1bHR1cmVOYW1lICE9PSB0aGlzLnNlbGVjdGVkTGFuZ0N1bHR1cmUpIHx8IFtdLFxyXG4gICAgICApLFxyXG4gICAgKTtcclxuICB9XHJcblxyXG4gIGdldCBzZWxlY3RlZExhbmdDdWx0dXJlKCk6IHN0cmluZyB7XHJcbiAgICByZXR1cm4gdGhpcy5zZXNzaW9uU3RhdGUuZ2V0TGFuZ3VhZ2UoKTtcclxuICB9XHJcblxyXG4gIGNvbnN0cnVjdG9yKHByaXZhdGUgc2Vzc2lvblN0YXRlOiBTZXNzaW9uU3RhdGVTZXJ2aWNlLCBwcml2YXRlIGNvbmZpZ1N0YXRlOiBDb25maWdTdGF0ZVNlcnZpY2UpIHt9XHJcblxyXG4gIG9uQ2hhbmdlTGFuZyhjdWx0dXJlTmFtZTogc3RyaW5nKSB7XHJcbiAgICB0aGlzLnNlc3Npb25TdGF0ZS5zZXRMYW5ndWFnZShjdWx0dXJlTmFtZSk7XHJcbiAgfVxyXG59XHJcbiJdfQ==
@@ -1,19 +1,20 @@
1
- import { NavItemsService } from '@abp/ng.theme.shared';
2
- import { Component } from '@angular/core';
3
- import * as i0 from "@angular/core";
4
- import * as i1 from "@abp/ng.theme.shared";
5
- import * as i2 from "@angular/common";
6
- import * as i3 from "@abp/ng.core";
7
- export class NavItemsComponent {
8
- constructor(navItems) {
9
- this.navItems = navItems;
10
- this.trackByFn = (_, element) => element.id;
11
- }
12
- }
13
- NavItemsComponentfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.0.4", ngImport: i0, type: NavItemsComponent, deps: [{ token: i1.NavItemsService }], target: i0.ɵɵFactoryTarget.Component });
14
- NavItemsComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "15.0.4", 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 *abpVisible=\"!item.visible || item.visible(item)\">\r\n <li class=\"nav-item d-flex align-items-center\" *abpPermission=\"item.requiredPolicy\">\r\n <ng-container \r\n \r\n *ngIf=\"item.component; else htmlTemplate\" \r\n [ngComponentOutlet]=\"item.component\"\r\n [ngComponentOutletInjector]=\"item | toInjector\"\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>", dependencies: [{ kind: "directive", type: i2.NgComponentOutlet, selector: "[ngComponentOutlet]", inputs: ["ngComponentOutlet", "ngComponentOutletInjector", "ngComponentOutletContent", "ngComponentOutletNgModule", "ngComponentOutletNgModuleFactory"] }, { kind: "directive", type: i2.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i2.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i3.PermissionDirective, selector: "[abpPermission]", inputs: ["abpPermission", "abpPermissionRunChangeDetection"] }, { kind: "directive", type: i1.AbpVisibleDirective, selector: "[abpVisible]", inputs: ["abpVisible"] }, { kind: "pipe", type: i2.AsyncPipe, name: "async" }, { kind: "pipe", type: i3.ToInjectorPipe, name: "toInjector" }] });
15
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.0.4", ngImport: i0, type: NavItemsComponent, decorators: [{
16
- type: Component,
17
- args: [{ selector: 'abp-nav-items', template: "<ul class=\"navbar-nav\">\r\n <ng-container *ngFor=\"let item of navItems.items$ | async; trackBy: trackByFn\">\r\n <ng-container *abpVisible=\"!item.visible || item.visible(item)\">\r\n <li class=\"nav-item d-flex align-items-center\" *abpPermission=\"item.requiredPolicy\">\r\n <ng-container \r\n \r\n *ngIf=\"item.component; else htmlTemplate\" \r\n [ngComponentOutlet]=\"item.component\"\r\n [ngComponentOutletInjector]=\"item | toInjector\"\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>" }]
18
- }], ctorParameters: function () { return [{ type: i1.NavItemsService }]; } });
19
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibmF2LWl0ZW1zLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uL3BhY2thZ2VzL3RoZW1lLWJhc2ljL3NyYy9saWIvY29tcG9uZW50cy9uYXYtaXRlbXMvbmF2LWl0ZW1zLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uLy4uLy4uL3BhY2thZ2VzL3RoZW1lLWJhc2ljL3NyYy9saWIvY29tcG9uZW50cy9uYXYtaXRlbXMvbmF2LWl0ZW1zLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBVyxlQUFlLEVBQUUsTUFBTSxzQkFBc0IsQ0FBQztBQUNoRSxPQUFPLEVBQUUsU0FBUyxFQUEwQixNQUFNLGVBQWUsQ0FBQzs7Ozs7QUFNbEUsTUFBTSxPQUFPLGlCQUFpQjtJQUc1QixZQUE0QixRQUF5QjtRQUF6QixhQUFRLEdBQVIsUUFBUSxDQUFpQjtRQUZyRCxjQUFTLEdBQTZCLENBQUMsQ0FBQyxFQUFFLE9BQU8sRUFBRSxFQUFFLENBQUMsT0FBTyxDQUFDLEVBQUUsQ0FBQztJQUVULENBQUM7OzhHQUg5QyxpQkFBaUI7a0dBQWpCLGlCQUFpQixxRENQOUIsaXdCQWlCSzsyRkRWUSxpQkFBaUI7a0JBSjdCLFNBQVM7K0JBQ0UsZUFBZSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IE5hdkl0ZW0sIE5hdkl0ZW1zU2VydmljZSB9IGZyb20gJ0BhYnAvbmcudGhlbWUuc2hhcmVkJztcclxuaW1wb3J0IHsgQ29tcG9uZW50LCBJbnB1dCwgVHJhY2tCeUZ1bmN0aW9uIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XHJcblxyXG5AQ29tcG9uZW50KHtcclxuICBzZWxlY3RvcjogJ2FicC1uYXYtaXRlbXMnLFxyXG4gIHRlbXBsYXRlVXJsOiAnbmF2LWl0ZW1zLmNvbXBvbmVudC5odG1sJyxcclxufSlcclxuZXhwb3J0IGNsYXNzIE5hdkl0ZW1zQ29tcG9uZW50IHtcclxuICB0cmFja0J5Rm46IFRyYWNrQnlGdW5jdGlvbjxOYXZJdGVtPiA9IChfLCBlbGVtZW50KSA9PiBlbGVtZW50LmlkO1xyXG5cclxuICBjb25zdHJ1Y3RvcihwdWJsaWMgcmVhZG9ubHkgbmF2SXRlbXM6IE5hdkl0ZW1zU2VydmljZSkge31cclxufVxyXG4iLCI8dWwgY2xhc3M9XCJuYXZiYXItbmF2XCI+XHJcbiAgPG5nLWNvbnRhaW5lciAqbmdGb3I9XCJsZXQgaXRlbSBvZiBuYXZJdGVtcy5pdGVtcyQgfCBhc3luYzsgdHJhY2tCeTogdHJhY2tCeUZuXCI+XHJcbiAgICA8bmctY29udGFpbmVyICAqYWJwVmlzaWJsZT1cIiFpdGVtLnZpc2libGUgfHwgaXRlbS52aXNpYmxlKGl0ZW0pXCI+XHJcbiAgICAgIDxsaSBjbGFzcz1cIm5hdi1pdGVtIGQtZmxleCBhbGlnbi1pdGVtcy1jZW50ZXJcIiAqYWJwUGVybWlzc2lvbj1cIml0ZW0ucmVxdWlyZWRQb2xpY3lcIj5cclxuICAgICAgICA8bmctY29udGFpbmVyIFxyXG4gICAgICAgIFxyXG4gICAgICAgICAgKm5nSWY9XCJpdGVtLmNvbXBvbmVudDsgZWxzZSBodG1sVGVtcGxhdGVcIiBcclxuICAgICAgICAgIFtuZ0NvbXBvbmVudE91dGxldF09XCJpdGVtLmNvbXBvbmVudFwiXHJcbiAgICAgICAgICBbbmdDb21wb25lbnRPdXRsZXRJbmplY3Rvcl09XCJpdGVtIHwgdG9JbmplY3RvclwiXHJcbiAgICAgICAgPjwvbmctY29udGFpbmVyPlxyXG4gICAgICAgIFxyXG4gICAgICAgIDxuZy10ZW1wbGF0ZSAjaHRtbFRlbXBsYXRlPlxyXG4gICAgICAgICAgPGRpdiBbaW5uZXJIVE1MXT1cIml0ZW0uaHRtbFwiIChjbGljayk9XCJpdGVtLmFjdGlvbiA/IGl0ZW0uYWN0aW9uKCkgOiBudWxsXCI+PC9kaXY+XHJcbiAgICAgICAgPC9uZy10ZW1wbGF0ZT5cclxuICAgICAgPC9saT5cclxuICAgIDwvbmctY29udGFpbmVyPlxyXG4gIDwvbmctY29udGFpbmVyPlxyXG48L3VsPiJdfQ==
1
+ import { NavItemsService } from '@abp/ng.theme.shared';
2
+ import { Component } from '@angular/core';
3
+ import * as i0 from "@angular/core";
4
+ import * as i1 from "@abp/ng.theme.shared";
5
+ import * as i2 from "@angular/common";
6
+ import * as i3 from "@abp/ng.core";
7
+ class NavItemsComponent {
8
+ constructor(navItems) {
9
+ this.navItems = navItems;
10
+ this.trackByFn = (_, element) => element.id;
11
+ }
12
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.0.1", ngImport: i0, type: NavItemsComponent, deps: [{ token: i1.NavItemsService }], target: i0.ɵɵFactoryTarget.Component }); }
13
+ static { thiscmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.0.1", 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 *abpVisible=\"!item.visible || item.visible(item)\">\r\n <li class=\"nav-item d-flex align-items-center\" *abpPermission=\"item.requiredPolicy\">\r\n <ng-container \r\n \r\n *ngIf=\"item.component; else htmlTemplate\" \r\n [ngComponentOutlet]=\"item.component\"\r\n [ngComponentOutletInjector]=\"item | toInjector\"\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>", dependencies: [{ kind: "directive", type: i2.NgComponentOutlet, selector: "[ngComponentOutlet]", inputs: ["ngComponentOutlet", "ngComponentOutletInjector", "ngComponentOutletContent", "ngComponentOutletNgModule", "ngComponentOutletNgModuleFactory"] }, { kind: "directive", type: i2.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i2.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i3.PermissionDirective, selector: "[abpPermission]", inputs: ["abpPermission", "abpPermissionRunChangeDetection"] }, { kind: "directive", type: i1.AbpVisibleDirective, selector: "[abpVisible]", inputs: ["abpVisible"] }, { kind: "pipe", type: i2.AsyncPipe, name: "async" }, { kind: "pipe", type: i3.ToInjectorPipe, name: "toInjector" }] }); }
14
+ }
15
+ export { NavItemsComponent };
16
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.0.1", ngImport: i0, type: NavItemsComponent, decorators: [{
17
+ type: Component,
18
+ args: [{ selector: 'abp-nav-items', template: "<ul class=\"navbar-nav\">\r\n <ng-container *ngFor=\"let item of navItems.items$ | async; trackBy: trackByFn\">\r\n <ng-container *abpVisible=\"!item.visible || item.visible(item)\">\r\n <li class=\"nav-item d-flex align-items-center\" *abpPermission=\"item.requiredPolicy\">\r\n <ng-container \r\n \r\n *ngIf=\"item.component; else htmlTemplate\" \r\n [ngComponentOutlet]=\"item.component\"\r\n [ngComponentOutletInjector]=\"item | toInjector\"\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>" }]
19
+ }], ctorParameters: function () { return [{ type: i1.NavItemsService }]; } });
20
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibmF2LWl0ZW1zLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uL3BhY2thZ2VzL3RoZW1lLWJhc2ljL3NyYy9saWIvY29tcG9uZW50cy9uYXYtaXRlbXMvbmF2LWl0ZW1zLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uLy4uLy4uL3BhY2thZ2VzL3RoZW1lLWJhc2ljL3NyYy9saWIvY29tcG9uZW50cy9uYXYtaXRlbXMvbmF2LWl0ZW1zLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBVyxlQUFlLEVBQUUsTUFBTSxzQkFBc0IsQ0FBQztBQUNoRSxPQUFPLEVBQUUsU0FBUyxFQUEwQixNQUFNLGVBQWUsQ0FBQzs7Ozs7QUFFbEUsTUFJYSxpQkFBaUI7SUFHNUIsWUFBNEIsUUFBeUI7UUFBekIsYUFBUSxHQUFSLFFBQVEsQ0FBaUI7UUFGckQsY0FBUyxHQUE2QixDQUFDLENBQUMsRUFBRSxPQUFPLEVBQUUsRUFBRSxDQUFDLE9BQU8sQ0FBQyxFQUFFLENBQUM7SUFFVCxDQUFDOzhHQUg5QyxpQkFBaUI7a0dBQWpCLGlCQUFpQixxRENQOUIsaXdCQWlCSzs7U0RWUSxpQkFBaUI7MkZBQWpCLGlCQUFpQjtrQkFKN0IsU0FBUzsrQkFDRSxlQUFlIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgTmF2SXRlbSwgTmF2SXRlbXNTZXJ2aWNlIH0gZnJvbSAnQGFicC9uZy50aGVtZS5zaGFyZWQnO1xyXG5pbXBvcnQgeyBDb21wb25lbnQsIElucHV0LCBUcmFja0J5RnVuY3Rpb24gfSBmcm9tICdAYW5ndWxhci9jb3JlJztcclxuXHJcbkBDb21wb25lbnQoe1xyXG4gIHNlbGVjdG9yOiAnYWJwLW5hdi1pdGVtcycsXHJcbiAgdGVtcGxhdGVVcmw6ICduYXYtaXRlbXMuY29tcG9uZW50Lmh0bWwnLFxyXG59KVxyXG5leHBvcnQgY2xhc3MgTmF2SXRlbXNDb21wb25lbnQge1xyXG4gIHRyYWNrQnlGbjogVHJhY2tCeUZ1bmN0aW9uPE5hdkl0ZW0+ID0gKF8sIGVsZW1lbnQpID0+IGVsZW1lbnQuaWQ7XHJcblxyXG4gIGNvbnN0cnVjdG9yKHB1YmxpYyByZWFkb25seSBuYXZJdGVtczogTmF2SXRlbXNTZXJ2aWNlKSB7fVxyXG59XHJcbiIsIjx1bCBjbGFzcz1cIm5hdmJhci1uYXZcIj5cclxuICA8bmctY29udGFpbmVyICpuZ0Zvcj1cImxldCBpdGVtIG9mIG5hdkl0ZW1zLml0ZW1zJCB8IGFzeW5jOyB0cmFja0J5OiB0cmFja0J5Rm5cIj5cclxuICAgIDxuZy1jb250YWluZXIgICphYnBWaXNpYmxlPVwiIWl0ZW0udmlzaWJsZSB8fCBpdGVtLnZpc2libGUoaXRlbSlcIj5cclxuICAgICAgPGxpIGNsYXNzPVwibmF2LWl0ZW0gZC1mbGV4IGFsaWduLWl0ZW1zLWNlbnRlclwiICphYnBQZXJtaXNzaW9uPVwiaXRlbS5yZXF1aXJlZFBvbGljeVwiPlxyXG4gICAgICAgIDxuZy1jb250YWluZXIgXHJcbiAgICAgICAgXHJcbiAgICAgICAgICAqbmdJZj1cIml0ZW0uY29tcG9uZW50OyBlbHNlIGh0bWxUZW1wbGF0ZVwiIFxyXG4gICAgICAgICAgW25nQ29tcG9uZW50T3V0bGV0XT1cIml0ZW0uY29tcG9uZW50XCJcclxuICAgICAgICAgIFtuZ0NvbXBvbmVudE91dGxldEluamVjdG9yXT1cIml0ZW0gfCB0b0luamVjdG9yXCJcclxuICAgICAgICA+PC9uZy1jb250YWluZXI+XHJcbiAgICAgICAgXHJcbiAgICAgICAgPG5nLXRlbXBsYXRlICNodG1sVGVtcGxhdGU+XHJcbiAgICAgICAgICA8ZGl2IFtpbm5lckhUTUxdPVwiaXRlbS5odG1sXCIgKGNsaWNrKT1cIml0ZW0uYWN0aW9uID8gaXRlbS5hY3Rpb24oKSA6IG51bGxcIj48L2Rpdj5cclxuICAgICAgICA8L25nLXRlbXBsYXRlPlxyXG4gICAgICA8L2xpPlxyXG4gICAgPC9uZy1jb250YWluZXI+XHJcbiAgPC9uZy1jb250YWluZXI+XHJcbjwvdWw+Il19