@abp/ng.theme.basic 5.0.1 → 5.1.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 (68) hide show
  1. package/{esm2015/abp-ng.theme.basic.js → esm2020/abp-ng.theme.basic.mjs} +0 -0
  2. package/esm2020/lib/components/account-layout/account-layout.component.mjs +32 -0
  3. package/esm2020/lib/components/account-layout/auth-wrapper/auth-wrapper.component.mjs +19 -0
  4. package/esm2020/lib/components/account-layout/tenant-box/tenant-box.component.mjs +20 -0
  5. package/esm2020/lib/components/application-layout/application-layout.component.mjs +31 -0
  6. package/{esm2015/lib/components/empty-layout/empty-layout.component.js → esm2020/lib/components/empty-layout/empty-layout.component.mjs} +5 -5
  7. package/{esm2015/lib/components/index.js → esm2020/lib/components/index.mjs} +2 -2
  8. package/{esm2015/lib/components/logo/logo.component.js → esm2020/lib/components/logo/logo.component.mjs} +5 -5
  9. package/esm2020/lib/components/nav-items/current-user.component.mjs +39 -0
  10. package/esm2020/lib/components/nav-items/languages.component.mjs +107 -0
  11. package/esm2020/lib/components/nav-items/nav-items.component.mjs +19 -0
  12. package/esm2020/lib/components/page-alert-container/page-alert-container.component.mjs +18 -0
  13. package/esm2020/lib/components/routes/routes.component.mjs +37 -0
  14. package/esm2020/lib/components/validation-error/validation-error.component.mjs +44 -0
  15. package/{esm2015/lib/constants/styles.js → esm2020/lib/constants/styles.mjs} +0 -0
  16. package/{esm2015/lib/enums/components.js → esm2020/lib/enums/components.mjs} +0 -0
  17. package/{esm2015/lib/enums/index.js → esm2020/lib/enums/index.mjs} +2 -1
  18. package/esm2020/lib/enums/user-menu-items.mjs +2 -0
  19. package/{esm2015/lib/handlers/index.js → esm2020/lib/handlers/index.mjs} +0 -0
  20. package/{esm2015/lib/handlers/lazy-style.handler.js → esm2020/lib/handlers/lazy-style.handler.mjs} +4 -4
  21. package/{esm2015/lib/models/index.js → esm2020/lib/models/index.mjs} +0 -0
  22. package/{esm2015/lib/models/layout.js → esm2020/lib/models/layout.mjs} +0 -0
  23. package/{esm2015/lib/providers/index.js → esm2020/lib/providers/index.mjs} +2 -1
  24. package/{esm2015/lib/providers/nav-item.provider.js → esm2020/lib/providers/nav-item.provider.mjs} +0 -0
  25. package/{esm2015/lib/providers/styles.provider.js → esm2020/lib/providers/styles.provider.mjs} +0 -0
  26. package/esm2020/lib/providers/user-menu.provider.mjs +41 -0
  27. package/{esm2015/lib/services/layout.service.js → esm2020/lib/services/layout.service.mjs} +4 -4
  28. package/esm2020/lib/theme-basic.module.mjs +128 -0
  29. package/{esm2015/lib/tokens/index.js → esm2020/lib/tokens/index.mjs} +0 -0
  30. package/{esm2015/lib/tokens/lazy-styles.token.js → esm2020/lib/tokens/lazy-styles.token.mjs} +0 -0
  31. package/{esm2015/public-api.js → esm2020/public-api.mjs} +0 -0
  32. package/{esm2015/testing/abp-ng.theme.basic-testing.js → esm2020/testing/abp-ng.theme.basic-testing.mjs} +0 -0
  33. package/{esm2015/testing/lib/theme-basic-testing.module.js → esm2020/testing/lib/theme-basic-testing.module.mjs} +5 -5
  34. package/{esm2015/testing/public-api.js → esm2020/testing/public-api.mjs} +0 -0
  35. package/fesm2015/{abp-ng.theme.basic-testing.js → abp-ng.theme.basic-testing.mjs} +5 -5
  36. package/fesm2015/abp-ng.theme.basic-testing.mjs.map +1 -0
  37. package/fesm2015/abp-ng.theme.basic.mjs +833 -0
  38. package/fesm2015/abp-ng.theme.basic.mjs.map +1 -0
  39. package/fesm2020/abp-ng.theme.basic-testing.mjs +45 -0
  40. package/fesm2020/abp-ng.theme.basic-testing.mjs.map +1 -0
  41. package/fesm2020/abp-ng.theme.basic.mjs +835 -0
  42. package/fesm2020/abp-ng.theme.basic.mjs.map +1 -0
  43. package/lib/components/index.d.ts +1 -1
  44. package/lib/components/nav-items/current-user.component.d.ts +6 -2
  45. package/lib/enums/index.d.ts +1 -0
  46. package/lib/enums/user-menu-items.d.ts +4 -0
  47. package/lib/providers/index.d.ts +1 -0
  48. package/lib/providers/user-menu.provider.d.ts +8 -0
  49. package/package.json +30 -9
  50. package/testing/package.json +5 -5
  51. package/bundles/abp-ng.theme.basic-testing.umd.js +0 -73
  52. package/bundles/abp-ng.theme.basic-testing.umd.js.map +0 -1
  53. package/bundles/abp-ng.theme.basic.umd.js +0 -989
  54. package/bundles/abp-ng.theme.basic.umd.js.map +0 -1
  55. package/esm2015/lib/components/account-layout/account-layout.component.js +0 -36
  56. package/esm2015/lib/components/account-layout/auth-wrapper/auth-wrapper.component.js +0 -23
  57. package/esm2015/lib/components/account-layout/tenant-box/tenant-box.component.js +0 -24
  58. package/esm2015/lib/components/application-layout/application-layout.component.js +0 -36
  59. package/esm2015/lib/components/nav-items/current-user.component.js +0 -38
  60. package/esm2015/lib/components/nav-items/languages.component.js +0 -107
  61. package/esm2015/lib/components/nav-items/nav-items.component.js +0 -22
  62. package/esm2015/lib/components/page-alert-container/page-alert-container.component.js +0 -22
  63. package/esm2015/lib/components/routes/routes.component.js +0 -40
  64. package/esm2015/lib/components/validation-error/validation-error.component.js +0 -40
  65. package/esm2015/lib/theme-basic.module.js +0 -127
  66. package/fesm2015/abp-ng.theme.basic-testing.js.map +0 -1
  67. package/fesm2015/abp-ng.theme.basic.js +0 -821
  68. package/fesm2015/abp-ng.theme.basic.js.map +0 -1
@@ -1 +0,0 @@
1
- {"version":3,"file":"abp-ng.theme.basic.umd.js","sources":["../../../../packages/theme-basic/src/lib/services/layout.service.ts","../../../../packages/theme-basic/src/lib/components/logo/logo.component.ts","../../../../packages/theme-basic/src/lib/components/routes/routes.component.ts","../../../../packages/theme-basic/src/lib/components/routes/routes.component.html","../../../../packages/theme-basic/src/lib/components/nav-items/nav-items.component.ts","../../../../packages/theme-basic/src/lib/components/nav-items/nav-items.component.html","../../../../packages/theme-basic/src/lib/components/page-alert-container/page-alert-container.component.ts","../../../../packages/theme-basic/src/lib/components/page-alert-container/page-alert-container.component.html","../../../../packages/theme-basic/src/lib/components/account-layout/tenant-box/tenant-box.component.ts","../../../../packages/theme-basic/src/lib/components/account-layout/tenant-box/tenant-box.component.html","../../../../packages/theme-basic/src/lib/components/account-layout/auth-wrapper/auth-wrapper.component.ts","../../../../packages/theme-basic/src/lib/components/account-layout/auth-wrapper/auth-wrapper.component.html","../../../../packages/theme-basic/src/lib/components/account-layout/account-layout.component.ts","../../../../packages/theme-basic/src/lib/components/account-layout/account-layout.component.html","../../../../packages/theme-basic/src/lib/components/application-layout/application-layout.component.ts","../../../../packages/theme-basic/src/lib/components/application-layout/application-layout.component.html","../../../../packages/theme-basic/src/lib/components/empty-layout/empty-layout.component.ts","../../../../packages/theme-basic/src/lib/components/nav-items/current-user.component.ts","../../../../packages/theme-basic/src/lib/components/nav-items/current-user.component.html","../../../../packages/theme-basic/src/lib/components/nav-items/languages.component.ts","../../../../node_modules/tslib/tslib.es6.js","../../../../packages/theme-basic/src/lib/components/validation-error/validation-error.component.ts","../../../../packages/theme-basic/src/lib/tokens/lazy-styles.token.ts","../../../../packages/theme-basic/src/lib/handlers/lazy-style.handler.ts","../../../../packages/theme-basic/src/lib/providers/nav-item.provider.ts","../../../../packages/theme-basic/src/lib/constants/styles.ts","../../../../packages/theme-basic/src/lib/providers/styles.provider.ts","../../../../packages/theme-basic/src/lib/theme-basic.module.ts","../../../../packages/theme-basic/src/public-api.ts","../../../../packages/theme-basic/src/abp-ng.theme.basic.ts"],"sourcesContent":["import { SubscriptionService } from '@abp/ng.core';\r\nimport { ChangeDetectorRef, Injectable } from '@angular/core';\r\nimport { fromEvent } from 'rxjs';\r\nimport { debounceTime } from 'rxjs/operators';\r\nimport { eThemeBasicComponents } from '../enums';\r\n\r\n@Injectable()\r\nexport class LayoutService {\r\n isCollapsed = true;\r\n\r\n smallScreen!: boolean; // do not set true or false\r\n\r\n logoComponentKey = eThemeBasicComponents.Logo;\r\n\r\n routesComponentKey = eThemeBasicComponents.Routes;\r\n\r\n navItemsComponentKey = eThemeBasicComponents.NavItems;\r\n\r\n constructor(private subscription: SubscriptionService, private cdRef: ChangeDetectorRef) {}\r\n\r\n private checkWindowWidth() {\r\n const isSmallScreen = window.innerWidth < 992;\r\n if (isSmallScreen && this.smallScreen === false) {\r\n this.isCollapsed = false;\r\n setTimeout(() => {\r\n this.isCollapsed = true;\r\n }, 100);\r\n }\r\n this.smallScreen = isSmallScreen;\r\n this.cdRef.detectChanges();\r\n }\r\n\r\n subscribeWindowSize() {\r\n this.checkWindowWidth();\r\n\r\n const resize$ = fromEvent(window, 'resize').pipe(debounceTime(150));\r\n this.subscription.addOne(resize$, () => this.checkWindowWidth());\r\n }\r\n}\r\n","import { ApplicationInfo, EnvironmentService } from '@abp/ng.core';\r\nimport { Component } from '@angular/core';\r\n\r\n@Component({\r\n selector: 'abp-logo',\r\n template: `\r\n <a class=\"navbar-brand\" routerLink=\"/\">\r\n <img\r\n *ngIf=\"appInfo.logoUrl; else appName\"\r\n [src]=\"appInfo.logoUrl\"\r\n [alt]=\"appInfo.name\"\r\n width=\"100%\"\r\n height=\"auto\"\r\n />\r\n </a>\r\n\r\n <ng-template #appName>\r\n {{ appInfo.name }}\r\n </ng-template>\r\n `,\r\n})\r\nexport class LogoComponent {\r\n get appInfo(): ApplicationInfo {\r\n return this.environment.getEnvironment().application;\r\n }\r\n\r\n constructor(private environment: EnvironmentService) {}\r\n}\r\n","import { ABP, RoutesService, TreeNode } from '@abp/ng.core';\r\nimport {\r\n Component,\r\n ElementRef,\r\n Input,\r\n QueryList,\r\n Renderer2,\r\n TrackByFunction,\r\n ViewChildren,\r\n} from '@angular/core';\r\n\r\n@Component({\r\n selector: 'abp-routes',\r\n templateUrl: 'routes.component.html',\r\n})\r\nexport class RoutesComponent {\r\n @Input() smallScreen?: boolean;\r\n\r\n @ViewChildren('childrenContainer') childrenContainers!: QueryList<ElementRef<HTMLDivElement>>;\r\n\r\n rootDropdownExpand = {} as { [key: string]: boolean };\r\n\r\n trackByFn: TrackByFunction<TreeNode<ABP.Route>> = (_, item) => item.name;\r\n\r\n constructor(public readonly routesService: RoutesService, protected renderer: Renderer2) {}\r\n\r\n isDropdown(node: TreeNode<ABP.Route>) {\r\n return !node?.isLeaf || this.routesService.hasChildren(node.name);\r\n }\r\n\r\n closeDropdown() {\r\n this.childrenContainers.forEach(({ nativeElement }) => {\r\n this.renderer.addClass(nativeElement, 'd-none');\r\n setTimeout(() => this.renderer.removeClass(nativeElement, 'd-none'), 0);\r\n });\r\n }\r\n}\r\n","<ul class=\"navbar-nav\">\r\n <ng-container\r\n *ngFor=\"let route of routesService.visible$ | async; trackBy: trackByFn\"\r\n [ngTemplateOutlet]=\"isDropdown(route) ? dropdownLink : defaultLink\"\r\n [ngTemplateOutletContext]=\"{ $implicit: route }\"\r\n >\r\n </ng-container>\r\n\r\n <ng-template #defaultLink let-route>\r\n <li class=\"nav-item\" *abpPermission=\"route.requiredPolicy\">\r\n <a class=\"nav-link\" [routerLink]=\"[route.path]\"\r\n ><i *ngIf=\"route.iconClass\" [ngClass]=\"route.iconClass\"></i>\r\n {{ route.name | abpLocalization }}</a\r\n >\r\n </li>\r\n </ng-template>\r\n\r\n <ng-template #dropdownLink let-route>\r\n <ng-container *ngIf=\"route.children?.length\">\r\n <li\r\n class=\"nav-item dropdown\"\r\n display=\"static\"\r\n *abpPermission=\"route.requiredPolicy\"\r\n (click)=\"\r\n rootDropdownExpand[route.name]\r\n ? (rootDropdownExpand[route.name] = false)\r\n : (rootDropdownExpand[route.name] = true)\r\n \"\r\n >\r\n <a\r\n class=\"nav-link dropdown-toggle\"\r\n data-toggle=\"dropdown\"\r\n aria-haspopup=\"true\"\r\n aria-expanded=\"false\"\r\n href=\"javascript:void(0)\"\r\n >\r\n <i *ngIf=\"route.iconClass\" [ngClass]=\"route.iconClass\"></i>\r\n {{ route.name | abpLocalization }}\r\n </a>\r\n <div\r\n #routeContainer\r\n class=\"dropdown-menu border-0 shadow-sm\"\r\n (click)=\"$event.preventDefault(); $event.stopPropagation()\"\r\n [class.d-block]=\"smallScreen && rootDropdownExpand[route.name]\"\r\n >\r\n <ng-container\r\n *ngTemplateOutlet=\"forTemplate; context: { $implicit: route }\"\r\n ></ng-container>\r\n </div>\r\n </li>\r\n </ng-container>\r\n </ng-template>\r\n\r\n <ng-template #forTemplate let-route>\r\n <ng-container *ngFor=\"let child of route.children\">\r\n <ng-template\r\n [ngTemplateOutlet]=\"child.children?.length ? dropdownChild : defaultChild\"\r\n [ngTemplateOutletContext]=\"{ $implicit: child }\"\r\n ></ng-template>\r\n </ng-container>\r\n </ng-template>\r\n\r\n <ng-template #defaultChild let-child>\r\n <ng-container *ngIf=\"child.path\">\r\n <div class=\"dropdown-submenu\" *abpPermission=\"child.requiredPolicy\">\r\n <a class=\"dropdown-item\" [routerLink]=\"[child.path]\" (click)=\"closeDropdown()\">\r\n <i *ngIf=\"child.iconClass\" [ngClass]=\"child.iconClass\"></i>\r\n {{ child.name | abpLocalization }}</a\r\n >\r\n </div>\r\n </ng-container>\r\n </ng-template>\r\n\r\n <ng-template #dropdownChild let-child>\r\n <div\r\n class=\"dropdown-submenu\"\r\n ngbDropdown\r\n #dropdownSubmenu=\"ngbDropdown\"\r\n placement=\"right-top\"\r\n [autoClose]=\"true\"\r\n *abpPermission=\"child.requiredPolicy\"\r\n >\r\n <div ngbDropdownToggle [class.dropdown-toggle]=\"false\">\r\n <a\r\n abpEllipsis=\"210px\"\r\n [abpEllipsisEnabled]=\"!smallScreen\"\r\n role=\"button\"\r\n class=\"btn d-block text-start dropdown-toggle\"\r\n >\r\n <i *ngIf=\"child.iconClass\" [ngClass]=\"child.iconClass\"></i>\r\n {{ child.name | abpLocalization }}\r\n </a>\r\n </div>\r\n <div\r\n #childrenContainer\r\n class=\"dropdown-menu dropdown-menu-start border-0 shadow-sm\"\r\n [class.d-block]=\"smallScreen && dropdownSubmenu.isOpen()\"\r\n >\r\n <ng-container *ngTemplateOutlet=\"forTemplate; context: { $implicit: child }\"></ng-container>\r\n </div>\r\n </div>\r\n </ng-template>\r\n</ul>\r\n","import { NavItem, NavItemsService } from '@abp/ng.theme.shared';\r\nimport { Component, Input, TrackByFunction } from '@angular/core';\r\n\r\n@Component({\r\n selector: 'abp-nav-items',\r\n templateUrl: 'nav-items.component.html',\r\n})\r\nexport class NavItemsComponent {\r\n trackByFn: TrackByFunction<NavItem> = (_, element) => element.id;\r\n\r\n constructor(public readonly navItems: NavItemsService) {}\r\n}\r\n","<ul class=\"navbar-nav\">\r\n <ng-container *ngFor=\"let item of navItems.items$ | async; trackBy: trackByFn\">\r\n <ng-container *ngIf=\"item.visible && item.visible()\">\r\n <li class=\"nav-item d-flex align-items-center\" *abpPermission=\"item.requiredPolicy\">\r\n <ng-container\r\n *ngIf=\"item.component; else htmlTemplate\"\r\n [ngComponentOutlet]=\"item.component\"\r\n ></ng-container>\r\n\r\n <ng-template #htmlTemplate>\r\n <div [innerHTML]=\"item.html\" (click)=\"item.action ? item.action() : null\"></div>\r\n </ng-template>\r\n </li>\r\n </ng-container>\r\n </ng-container>\r\n</ul>\r\n","import { Component, ViewEncapsulation } from '@angular/core';\r\nimport { PageAlertService } from '@abp/ng.theme.shared';\r\n\r\n@Component({\r\n selector: 'abp-page-alert-container',\r\n templateUrl: './page-alert-container.component.html',\r\n encapsulation: ViewEncapsulation.None,\r\n})\r\nexport class PageAlertContainerComponent {\r\n constructor(public service: PageAlertService) {}\r\n}\r\n","<ng-container *ngFor=\"let alert of service.alerts$ | async; let i = index\">\r\n <div\r\n class=\"alert alert-{{ alert.type }} fade show\"\r\n [ngClass]=\"{ 'alert-dismissible fade show': alert.dismissible }\"\r\n role=\"alert\"\r\n >\r\n <h4 class=\"alert-heading\" *ngIf=\"alert.title\">\r\n {{ alert.title | abpLocalization: alert.titleLocalizationParams }}\r\n </h4>\r\n {{ alert.message | abpLocalization: alert.messageLocalizationParams }}\r\n <button\r\n *ngIf=\"alert.dismissible\"\r\n type=\"button\"\r\n class=\"btn-close\"\r\n data-dismiss=\"alert\"\r\n aria-label=\"Close\"\r\n (click)=\"service.remove(i)\"\r\n ></button>\r\n </div>\r\n</ng-container>\r\n","import { TenantBoxService } from '@abp/ng.account.core';\r\nimport { Component } from '@angular/core';\r\n\r\n@Component({\r\n selector: 'abp-tenant-box',\r\n templateUrl: './tenant-box.component.html',\r\n providers: [TenantBoxService],\r\n})\r\nexport class TenantBoxComponent {\r\n constructor(public service: TenantBoxService) {}\r\n}\r\n","<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","import { AuthWrapperService } from '@abp/ng.account.core';\r\nimport { Component } from '@angular/core';\r\n\r\n@Component({\r\n selector: 'abp-auth-wrapper',\r\n templateUrl: './auth-wrapper.component.html',\r\n providers: [AuthWrapperService],\r\n})\r\nexport class AuthWrapperComponent {\r\n constructor(public service: AuthWrapperService) {}\r\n}\r\n","<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","import { AfterViewInit, Component } from '@angular/core';\r\nimport { eLayoutType, SubscriptionService } from '@abp/ng.core';\r\nimport { LayoutService } from '../../services/layout.service';\r\n\r\n@Component({\r\n selector: 'abp-layout-account',\r\n templateUrl: './account-layout.component.html',\r\n providers: [LayoutService, SubscriptionService],\r\n})\r\nexport class AccountLayoutComponent implements AfterViewInit {\r\n // required for dynamic component\r\n static type = eLayoutType.account;\r\n\r\n authWrapperKey = 'Account.AuthWrapperComponent';\r\n\r\n constructor(public service: LayoutService) {}\r\n\r\n ngAfterViewInit() {\r\n this.service.subscribeWindowSize();\r\n }\r\n}\r\n","<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","import { eLayoutType, SubscriptionService } from '@abp/ng.core';\r\nimport { collapseWithMargin, slideFromBottom } from '@abp/ng.theme.shared';\r\nimport { AfterViewInit, Component } from '@angular/core';\r\nimport { LayoutService } from '../../services/layout.service';\r\n\r\n@Component({\r\n selector: 'abp-layout-application',\r\n templateUrl: './application-layout.component.html',\r\n animations: [slideFromBottom, collapseWithMargin],\r\n providers: [LayoutService, SubscriptionService],\r\n})\r\nexport class ApplicationLayoutComponent implements AfterViewInit {\r\n // required for dynamic component\r\n static type = eLayoutType.application;\r\n\r\n constructor(public service: LayoutService) {}\r\n\r\n ngAfterViewInit() {\r\n this.service.subscribeWindowSize();\r\n }\r\n}\r\n","<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","import { Component } from '@angular/core';\r\nimport { eLayoutType } from '@abp/ng.core';\r\n\r\n@Component({\r\n selector: 'abp-layout-empty',\r\n template: `\r\n <router-outlet></router-outlet>\r\n <abp-confirmation></abp-confirmation>\r\n `,\r\n})\r\nexport class EmptyLayoutComponent {\r\n static type = eLayoutType.empty;\r\n}\r\n","import {\r\n AuthService,\r\n ConfigStateService,\r\n CurrentUserDto,\r\n NAVIGATE_TO_MANAGE_PROFILE,\r\n SessionStateService,\r\n} from '@abp/ng.core';\r\nimport { Component, Inject } from '@angular/core';\r\nimport { Observable } from 'rxjs';\r\n\r\n@Component({\r\n selector: 'abp-current-user',\r\n templateUrl: './current-user.component.html',\r\n})\r\nexport class CurrentUserComponent {\r\n currentUser$: Observable<CurrentUserDto> = this.configState.getOne$('currentUser');\r\n selectedTenant$ = this.sessionState.getTenant$();\r\n\r\n get smallScreen(): boolean {\r\n return window.innerWidth < 992;\r\n }\r\n\r\n constructor(\r\n @Inject(NAVIGATE_TO_MANAGE_PROFILE) public navigateToManageProfile: () => void,\r\n private authService: AuthService,\r\n private configState: ConfigStateService,\r\n private sessionState: SessionStateService,\r\n ) {}\r\n\r\n navigateToLogin() {\r\n this.authService.navigateToLogin();\r\n }\r\n\r\n logout() {\r\n this.authService.logout().subscribe();\r\n }\r\n}\r\n","<ng-template #loginBtn>\r\n <a role=\"button\" class=\"nav-link pointer\" (click)=\"navigateToLogin()\">{{\r\n 'AbpAccount::Login' | abpLocalization\r\n }}</a>\r\n</ng-template>\r\n<div\r\n *ngIf=\"(currentUser$ | async)?.isAuthenticated; else loginBtn\"\r\n ngbDropdown\r\n class=\"dropdown\"\r\n #currentUserDropdown=\"ngbDropdown\"\r\n display=\"static\"\r\n>\r\n <a\r\n ngbDropdownToggle\r\n class=\"nav-link\"\r\n href=\"javascript:void(0)\"\r\n role=\"button\"\r\n id=\"dropdownMenuLink\"\r\n data-toggle=\"dropdown\"\r\n aria-haspopup=\"true\"\r\n aria-expanded=\"false\"\r\n >\r\n <small *ngIf=\"(selectedTenant$ | async)?.name as tenantName\"\r\n ><i>{{ tenantName }}</i\r\n >\\</small\r\n >\r\n <strong>{{ (currentUser$ | async)?.userName }}</strong>\r\n </a>\r\n <div\r\n class=\"dropdown-menu dropdown-menu-end border-0 shadow-sm\"\r\n aria-labelledby=\"dropdownMenuLink\"\r\n [class.d-block]=\"smallScreen && currentUserDropdown.isOpen()\"\r\n >\r\n <a class=\"dropdown-item pointer\" (click)=\"navigateToManageProfile()\"\r\n ><i class=\"fa fa-cog me-1\"></i>{{ 'AbpAccount::MyAccount' | abpLocalization }}</a\r\n >\r\n <a class=\"dropdown-item\" href=\"javascript:void(0)\" (click)=\"logout()\"\r\n ><i class=\"fa fa-power-off me-1\"></i>{{ 'AbpUi::Logout' | abpLocalization }}</a\r\n >\r\n </div>\r\n</div>\r\n","import { ConfigStateService, LanguageInfo, SessionStateService } from '@abp/ng.core';\r\nimport { Component } from '@angular/core';\r\nimport { Observable } from 'rxjs';\r\nimport { map } from 'rxjs/operators';\r\n\r\n@Component({\r\n selector: 'abp-languages',\r\n template: `\r\n <div\r\n *ngIf=\"((dropdownLanguages$ | async)?.length || 0) > 0\"\r\n class=\"dropdown\"\r\n ngbDropdown\r\n #languageDropdown=\"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 {{ defaultLanguage$ | async }}\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 && languageDropdown.isOpen()\"\r\n >\r\n <a\r\n *ngFor=\"let lang of dropdownLanguages$ | async\"\r\n href=\"javascript:void(0)\"\r\n class=\"dropdown-item\"\r\n (click)=\"onChangeLang(lang.cultureName || '')\"\r\n >{{ lang?.displayName }}</a\r\n >\r\n </div>\r\n </div>\r\n `,\r\n})\r\nexport class LanguagesComponent {\r\n get smallScreen(): boolean {\r\n return window.innerWidth < 992;\r\n }\r\n\r\n languages$: Observable<LanguageInfo[]> = this.configState.getDeep$('localization.languages');\r\n\r\n get defaultLanguage$(): Observable<string> {\r\n return this.languages$.pipe(\r\n map(\r\n languages =>\r\n languages?.find(lang => lang.cultureName === this.selectedLangCulture)?.displayName || '',\r\n ),\r\n );\r\n }\r\n\r\n get dropdownLanguages$(): Observable<LanguageInfo[]> {\r\n return this.languages$.pipe(\r\n map(\r\n languages => languages?.filter(lang => lang.cultureName !== this.selectedLangCulture) || [],\r\n ),\r\n );\r\n }\r\n\r\n get selectedLangCulture(): string {\r\n return this.sessionState.getLanguage();\r\n }\r\n\r\n constructor(private sessionState: SessionStateService, private configState: ConfigStateService) {}\r\n\r\n onChangeLang(cultureName: string) {\r\n this.sessionState.setLanguage(cultureName);\r\n }\r\n}\r\n","/*! *****************************************************************************\r\nCopyright (c) Microsoft Corporation.\r\n\r\nPermission to use, copy, modify, and/or distribute this software for any\r\npurpose with or without fee is hereby granted.\r\n\r\nTHE SOFTWARE IS PROVIDED \"AS IS\" AND THE AUTHOR DISCLAIMS ALL WARRANTIES WITH\r\nREGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY\r\nAND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY SPECIAL, DIRECT,\r\nINDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM\r\nLOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR\r\nOTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR\r\nPERFORMANCE OF THIS SOFTWARE.\r\n***************************************************************************** */\r\n/* global Reflect, Promise */\r\n\r\nvar extendStatics = function(d, b) {\r\n extendStatics = Object.setPrototypeOf ||\r\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\r\n function (d, b) { for (var p in b) if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; };\r\n return extendStatics(d, b);\r\n};\r\n\r\nexport function __extends(d, b) {\r\n if (typeof b !== \"function\" && b !== null)\r\n throw new TypeError(\"Class extends value \" + String(b) + \" is not a constructor or null\");\r\n extendStatics(d, b);\r\n function __() { this.constructor = d; }\r\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\r\n}\r\n\r\nexport var __assign = function() {\r\n __assign = Object.assign || function __assign(t) {\r\n for (var s, i = 1, n = arguments.length; i < n; i++) {\r\n s = arguments[i];\r\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p)) t[p] = s[p];\r\n }\r\n return t;\r\n }\r\n return __assign.apply(this, arguments);\r\n}\r\n\r\nexport function __rest(s, e) {\r\n var t = {};\r\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0)\r\n t[p] = s[p];\r\n if (s != null && typeof Object.getOwnPropertySymbols === \"function\")\r\n for (var i = 0, p = Object.getOwnPropertySymbols(s); i < p.length; i++) {\r\n if (e.indexOf(p[i]) < 0 && Object.prototype.propertyIsEnumerable.call(s, p[i]))\r\n t[p[i]] = s[p[i]];\r\n }\r\n return t;\r\n}\r\n\r\nexport function __decorate(decorators, target, key, desc) {\r\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\r\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\r\n else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;\r\n return c > 3 && r && Object.defineProperty(target, key, r), r;\r\n}\r\n\r\nexport function __param(paramIndex, decorator) {\r\n return function (target, key) { decorator(target, key, paramIndex); }\r\n}\r\n\r\nexport function __metadata(metadataKey, metadataValue) {\r\n if (typeof Reflect === \"object\" && typeof Reflect.metadata === \"function\") return Reflect.metadata(metadataKey, metadataValue);\r\n}\r\n\r\nexport function __awaiter(thisArg, _arguments, P, generator) {\r\n function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }\r\n return new (P || (P = Promise))(function (resolve, reject) {\r\n function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }\r\n function rejected(value) { try { step(generator[\"throw\"](value)); } catch (e) { reject(e); } }\r\n function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }\r\n step((generator = generator.apply(thisArg, _arguments || [])).next());\r\n });\r\n}\r\n\r\nexport function __generator(thisArg, body) {\r\n var _ = { label: 0, sent: function() { if (t[0] & 1) throw t[1]; return t[1]; }, trys: [], ops: [] }, f, y, t, g;\r\n return g = { next: verb(0), \"throw\": verb(1), \"return\": verb(2) }, typeof Symbol === \"function\" && (g[Symbol.iterator] = function() { return this; }), g;\r\n function verb(n) { return function (v) { return step([n, v]); }; }\r\n function step(op) {\r\n if (f) throw new TypeError(\"Generator is already executing.\");\r\n while (_) try {\r\n if (f = 1, y && (t = op[0] & 2 ? y[\"return\"] : op[0] ? y[\"throw\"] || ((t = y[\"return\"]) && t.call(y), 0) : y.next) && !(t = t.call(y, op[1])).done) return t;\r\n if (y = 0, t) op = [op[0] & 2, t.value];\r\n switch (op[0]) {\r\n case 0: case 1: t = op; break;\r\n case 4: _.label++; return { value: op[1], done: false };\r\n case 5: _.label++; y = op[1]; op = [0]; continue;\r\n case 7: op = _.ops.pop(); _.trys.pop(); continue;\r\n default:\r\n if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) { _ = 0; continue; }\r\n if (op[0] === 3 && (!t || (op[1] > t[0] && op[1] < t[3]))) { _.label = op[1]; break; }\r\n if (op[0] === 6 && _.label < t[1]) { _.label = t[1]; t = op; break; }\r\n if (t && _.label < t[2]) { _.label = t[2]; _.ops.push(op); break; }\r\n if (t[2]) _.ops.pop();\r\n _.trys.pop(); continue;\r\n }\r\n op = body.call(thisArg, _);\r\n } catch (e) { op = [6, e]; y = 0; } finally { f = t = 0; }\r\n if (op[0] & 5) throw op[1]; return { value: op[0] ? op[1] : void 0, done: true };\r\n }\r\n}\r\n\r\nexport var __createBinding = Object.create ? (function(o, m, k, k2) {\r\n if (k2 === undefined) k2 = k;\r\n Object.defineProperty(o, k2, { enumerable: true, get: function() { return m[k]; } });\r\n}) : (function(o, m, k, k2) {\r\n if (k2 === undefined) k2 = k;\r\n o[k2] = m[k];\r\n});\r\n\r\nexport function __exportStar(m, o) {\r\n for (var p in m) if (p !== \"default\" && !Object.prototype.hasOwnProperty.call(o, p)) __createBinding(o, m, p);\r\n}\r\n\r\nexport function __values(o) {\r\n var s = typeof Symbol === \"function\" && Symbol.iterator, m = s && o[s], i = 0;\r\n if (m) return m.call(o);\r\n if (o && typeof o.length === \"number\") return {\r\n next: function () {\r\n if (o && i >= o.length) o = void 0;\r\n return { value: o && o[i++], done: !o };\r\n }\r\n };\r\n throw new TypeError(s ? \"Object is not iterable.\" : \"Symbol.iterator is not defined.\");\r\n}\r\n\r\nexport function __read(o, n) {\r\n var m = typeof Symbol === \"function\" && o[Symbol.iterator];\r\n if (!m) return o;\r\n var i = m.call(o), r, ar = [], e;\r\n try {\r\n while ((n === void 0 || n-- > 0) && !(r = i.next()).done) ar.push(r.value);\r\n }\r\n catch (error) { e = { error: error }; }\r\n finally {\r\n try {\r\n if (r && !r.done && (m = i[\"return\"])) m.call(i);\r\n }\r\n finally { if (e) throw e.error; }\r\n }\r\n return ar;\r\n}\r\n\r\n/** @deprecated */\r\nexport function __spread() {\r\n for (var ar = [], i = 0; i < arguments.length; i++)\r\n ar = ar.concat(__read(arguments[i]));\r\n return ar;\r\n}\r\n\r\n/** @deprecated */\r\nexport function __spreadArrays() {\r\n for (var s = 0, i = 0, il = arguments.length; i < il; i++) s += arguments[i].length;\r\n for (var r = Array(s), k = 0, i = 0; i < il; i++)\r\n for (var a = arguments[i], j = 0, jl = a.length; j < jl; j++, k++)\r\n r[k] = a[j];\r\n return r;\r\n}\r\n\r\nexport function __spreadArray(to, from, pack) {\r\n if (pack || arguments.length === 2) for (var i = 0, l = from.length, ar; i < l; i++) {\r\n if (ar || !(i in from)) {\r\n if (!ar) ar = Array.prototype.slice.call(from, 0, i);\r\n ar[i] = from[i];\r\n }\r\n }\r\n return to.concat(ar || Array.prototype.slice.call(from));\r\n}\r\n\r\nexport function __await(v) {\r\n return this instanceof __await ? (this.v = v, this) : new __await(v);\r\n}\r\n\r\nexport function __asyncGenerator(thisArg, _arguments, generator) {\r\n if (!Symbol.asyncIterator) throw new TypeError(\"Symbol.asyncIterator is not defined.\");\r\n var g = generator.apply(thisArg, _arguments || []), i, q = [];\r\n return i = {}, verb(\"next\"), verb(\"throw\"), verb(\"return\"), i[Symbol.asyncIterator] = function () { return this; }, i;\r\n function verb(n) { if (g[n]) i[n] = function (v) { return new Promise(function (a, b) { q.push([n, v, a, b]) > 1 || resume(n, v); }); }; }\r\n function resume(n, v) { try { step(g[n](v)); } catch (e) { settle(q[0][3], e); } }\r\n function step(r) { r.value instanceof __await ? Promise.resolve(r.value.v).then(fulfill, reject) : settle(q[0][2], r); }\r\n function fulfill(value) { resume(\"next\", value); }\r\n function reject(value) { resume(\"throw\", value); }\r\n function settle(f, v) { if (f(v), q.shift(), q.length) resume(q[0][0], q[0][1]); }\r\n}\r\n\r\nexport function __asyncDelegator(o) {\r\n var i, p;\r\n return i = {}, verb(\"next\"), verb(\"throw\", function (e) { throw e; }), verb(\"return\"), i[Symbol.iterator] = function () { return this; }, i;\r\n function verb(n, f) { i[n] = o[n] ? function (v) { return (p = !p) ? { value: __await(o[n](v)), done: n === \"return\" } : f ? f(v) : v; } : f; }\r\n}\r\n\r\nexport function __asyncValues(o) {\r\n if (!Symbol.asyncIterator) throw new TypeError(\"Symbol.asyncIterator is not defined.\");\r\n var m = o[Symbol.asyncIterator], i;\r\n return m ? m.call(o) : (o = typeof __values === \"function\" ? __values(o) : o[Symbol.iterator](), i = {}, verb(\"next\"), verb(\"throw\"), verb(\"return\"), i[Symbol.asyncIterator] = function () { return this; }, i);\r\n function verb(n) { i[n] = o[n] && function (v) { return new Promise(function (resolve, reject) { v = o[n](v), settle(resolve, reject, v.done, v.value); }); }; }\r\n function settle(resolve, reject, d, v) { Promise.resolve(v).then(function(v) { resolve({ value: v, done: d }); }, reject); }\r\n}\r\n\r\nexport function __makeTemplateObject(cooked, raw) {\r\n if (Object.defineProperty) { Object.defineProperty(cooked, \"raw\", { value: raw }); } else { cooked.raw = raw; }\r\n return cooked;\r\n};\r\n\r\nvar __setModuleDefault = Object.create ? (function(o, v) {\r\n Object.defineProperty(o, \"default\", { enumerable: true, value: v });\r\n}) : function(o, v) {\r\n o[\"default\"] = v;\r\n};\r\n\r\nexport function __importStar(mod) {\r\n if (mod && mod.__esModule) return mod;\r\n var result = {};\r\n if (mod != null) for (var k in mod) if (k !== \"default\" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);\r\n __setModuleDefault(result, mod);\r\n return result;\r\n}\r\n\r\nexport function __importDefault(mod) {\r\n return (mod && mod.__esModule) ? mod : { default: mod };\r\n}\r\n\r\nexport function __classPrivateFieldGet(receiver, state, kind, f) {\r\n if (kind === \"a\" && !f) throw new TypeError(\"Private accessor was defined without a getter\");\r\n if (typeof state === \"function\" ? receiver !== state || !f : !state.has(receiver)) throw new TypeError(\"Cannot read private member from an object whose class did not declare it\");\r\n return kind === \"m\" ? f : kind === \"a\" ? f.call(receiver) : f ? f.value : state.get(receiver);\r\n}\r\n\r\nexport function __classPrivateFieldSet(receiver, state, value, kind, f) {\r\n if (kind === \"m\") throw new TypeError(\"Private method is not writable\");\r\n if (kind === \"a\" && !f) throw new TypeError(\"Private accessor was defined without a setter\");\r\n if (typeof state === \"function\" ? receiver !== state || !f : !state.has(receiver)) throw new TypeError(\"Cannot write private member to an object whose class did not declare it\");\r\n return (kind === \"a\" ? f.call(receiver, value) : f ? f.value = value : state.set(receiver, value)), value;\r\n}\r\n","import { ChangeDetectionStrategy, Component, ViewEncapsulation } from '@angular/core';\r\nimport { Validation, ValidationErrorComponent as ErrorComponent } from '@ngx-validate/core';\r\n\r\n@Component({\r\n selector: 'abp-validation-error',\r\n template: `\r\n <div class=\"invalid-feedback\" *ngFor=\"let error of abpErrors; trackBy: trackByFn\">\r\n {{ error.message | abpLocalization: error.interpoliteParams }}\r\n </div>\r\n `,\r\n changeDetection: ChangeDetectionStrategy.OnPush,\r\n encapsulation: ViewEncapsulation.None,\r\n})\r\nexport class ValidationErrorComponent extends ErrorComponent {\r\n get abpErrors(): (Validation.Error & { interpoliteParams?: string[] })[] {\r\n if (!this.errors || !this.errors.length) return [];\r\n\r\n return this.errors.map(error => {\r\n if (!error.message) return error;\r\n\r\n const index = error.message.indexOf('[');\r\n\r\n if (index > -1) {\r\n return {\r\n ...error,\r\n message: error.message.slice(0, index),\r\n interpoliteParams: error.message.slice(index + 1, error.message.length - 1).split(','),\r\n };\r\n }\r\n\r\n return error;\r\n });\r\n }\r\n}\r\n","import { InjectionToken } from '@angular/core';\r\n\r\nexport const LAZY_STYLES = new InjectionToken<string[]>('LAZY_STYLES');\r\n","import { LazyLoadService, LOADING_STRATEGY } from '@abp/ng.core';\r\nimport { DocumentDirHandlerService, LocaleDirection } from '@abp/ng.theme.shared';\r\nimport { Injectable, Injector } from '@angular/core';\r\nimport { LAZY_STYLES } from '../tokens/lazy-styles.token';\r\nexport const BOOTSTRAP = 'bootstrap-{{dir}}.min.css';\r\n\r\n@Injectable()\r\nexport class LazyStyleHandler {\r\n private lazyLoad!: LazyLoadService;\r\n private styles!: string[];\r\n private _dir: LocaleDirection = 'ltr';\r\n\r\n readonly loaded = new Map<string, HTMLLinkElement>();\r\n\r\n set dir(dir: LocaleDirection) {\r\n if (dir === this._dir) return;\r\n\r\n this.switchCSS(dir);\r\n this._dir = dir;\r\n }\r\n\r\n get dir(): LocaleDirection {\r\n return this._dir;\r\n }\r\n\r\n constructor(injector: Injector) {\r\n this.setStyles(injector);\r\n this.setLazyLoad(injector);\r\n this.listenToDirectionChanges(injector);\r\n }\r\n\r\n private getHrefFromLink(link: HTMLLinkElement | null | undefined): string {\r\n if (!link) return '';\r\n\r\n const a = document.createElement('a');\r\n a.href = link.href;\r\n return a.pathname.replace(/^\\//, '');\r\n }\r\n\r\n private getLoadedBootstrap(): LoadedStyle {\r\n const href = createLazyStyleHref(BOOTSTRAP, this.dir);\r\n const selector = `[href*=\"${href.replace(/\\.css$/, '')}\"]`;\r\n const link = document.querySelector<HTMLLinkElement>(selector);\r\n return { href, link };\r\n }\r\n\r\n private listenToDirectionChanges(injector: Injector) {\r\n const docDirHandler = injector.get(DocumentDirHandlerService);\r\n\r\n // will always listen, no need to unsubscribe\r\n docDirHandler.dir$.subscribe(dir => {\r\n this.dir = dir;\r\n });\r\n }\r\n\r\n private setLazyLoad(injector: Injector) {\r\n this.lazyLoad = injector.get(LazyLoadService);\r\n const { href, link } = this.getLoadedBootstrap();\r\n this.lazyLoad.loaded.set(href, link);\r\n }\r\n\r\n private setStyles(injector: Injector) {\r\n this.styles = injector.get(LAZY_STYLES, [BOOTSTRAP]);\r\n }\r\n\r\n private switchCSS(dir: LocaleDirection) {\r\n this.styles.forEach(style => {\r\n const oldHref = createLazyStyleHref(style, this.dir);\r\n const newHref = createLazyStyleHref(style, dir);\r\n const link = this.loaded.get(newHref);\r\n const href = this.getHrefFromLink(link) || newHref;\r\n\r\n const strategy = LOADING_STRATEGY.PrependAnonymousStyleToHead(href);\r\n this.lazyLoad.load(strategy).subscribe(() => {\r\n const oldLink = this.lazyLoad.loaded.get(oldHref) as HTMLLinkElement;\r\n this.loaded.delete(newHref);\r\n this.loaded.set(oldHref, oldLink);\r\n const newLink = this.lazyLoad.loaded.get(href) as HTMLLinkElement;\r\n this.lazyLoad.loaded.delete(href);\r\n this.lazyLoad.loaded.set(newHref, newLink);\r\n this.lazyLoad.remove(oldHref);\r\n });\r\n });\r\n }\r\n}\r\n\r\nexport function createLazyStyleHref(style: string, dir: string): string {\r\n return style.replace(/{{\\s*dir\\s*}}/g, dir);\r\n}\r\n\r\nexport function initLazyStyleHandler(injector: Injector) {\r\n return () => new LazyStyleHandler(injector);\r\n}\r\n\r\ninterface LoadedStyle {\r\n href: string;\r\n link: HTMLLinkElement | null;\r\n}\r\n","import { NavItemsService } from '@abp/ng.theme.shared';\r\nimport { APP_INITIALIZER } from '@angular/core';\r\nimport { CurrentUserComponent } from '../components/nav-items/current-user.component';\r\nimport { LanguagesComponent } from '../components/nav-items/languages.component';\r\nimport { eThemeBasicComponents } from '../enums/components';\r\n\r\nexport const BASIC_THEME_NAV_ITEM_PROVIDERS = [\r\n {\r\n provide: APP_INITIALIZER,\r\n useFactory: configureNavItems,\r\n deps: [NavItemsService],\r\n multi: true,\r\n },\r\n];\r\n\r\nexport function configureNavItems(navItems: NavItemsService) {\r\n return () => {\r\n navItems.addItems([\r\n {\r\n id: eThemeBasicComponents.Languages,\r\n order: 100,\r\n component: LanguagesComponent,\r\n },\r\n {\r\n id: eThemeBasicComponents.CurrentUser,\r\n order: 100,\r\n component: CurrentUserComponent,\r\n },\r\n ]);\r\n };\r\n}\r\n","export default `\r\n.content-header-title {\r\n font-size: 24px;\r\n}\r\n.entry-row {\r\n margin-bottom: 15px;\r\n}\r\n#main-navbar-tools a.dropdown-toggle {\r\n text-decoration: none;\r\n color: #fff;\r\n}\r\n.navbar .dropdown-submenu {\r\n position: relative;\r\n}\r\n.navbar .dropdown-menu {\r\n margin: 0;\r\n padding: 0;\r\n}\r\n.navbar .dropdown-menu a {\r\n font-size: .9em;\r\n padding: 10px 15px;\r\n display: block;\r\n min-width: 210px;\r\n text-align: left;\r\n border-radius: 0.25rem;\r\n min-height: 44px;\r\n}\r\n[dir=rtl] .navbar .dropdown-menu a {\r\n text-align: right!important;\r\n}\r\n.navbar .dropdown-submenu a::after {\r\n transform: rotate(-90deg);\r\n position: absolute;\r\n right: 16px;\r\n top: 18px;\r\n}\r\n[dir=rtl] .navbar .dropdown-submenu a::after {\r\n transform: rotate(90deg);\r\n left: 16px;\r\n right: auto;\r\n top: 20px;\r\n}\r\n.navbar .dropdown-submenu .dropdown-menu {\r\n top: 0;\r\n left: 100%;\r\n}\r\n/* work around for rtl. Track https://github.com/ng-bootstrap/ng-bootstrap/issues/4100 issue */\r\n[dir=rtl] .navbar .dropdown-submenu .dropdown-menu {\r\n top: 0;\r\n right: 100%;\r\n}\r\n.card-header .btn {\r\n padding: 2px 6px;\r\n}\r\n.card-header h5 {\r\n margin: 0;\r\n}\r\n.container > .card {\r\n box-shadow: 0 0.125rem 0.25rem rgba(0, 0, 0, 0.075) !important;\r\n}\r\n@media screen and (min-width: 992px) {\r\n .navbar .dropdown:hover > .dropdown-menu {\r\n display: block;\r\n }\r\n\r\n .navbar .dropdown-submenu:hover > .dropdown-menu {\r\n display: block;\r\n }\r\n}\r\n.input-validation-error {\r\n border-color: #dc3545;\r\n}\r\n.field-validation-error {\r\n font-size: 0.8em;\r\n}\r\n.ui-table .ui-table-tbody > tr.empty-row > div.empty-row-content {\r\n border: 1px solid #c8c8c8;\r\n }\r\n.abp-loading {\r\n background: rgba(0, 0, 0, 0.05);\r\n}\r\n.modal-backdrop {\r\nbackground-color: rgba(0, 0, 0, 0.6);\r\n}\r\n\r\n.confirmation .confirmation-backdrop {\r\n\t background: rgba(0, 0, 0, 0.7) !important;\r\n}\r\n .confirmation .confirmation-dialog {\r\n\t border: none;\r\n\t border-radius: 10px;\r\n\t background-color: #fff;\r\n\t box-shadow: 0 0 10px -5px rgba(0, 0, 0, 0.5);\r\n}\r\n .confirmation .confirmation-dialog .icon-container .icon {\r\n\t stroke: #fff;\r\n\t color: #fff;\r\n}\r\n .confirmation .confirmation-dialog .icon-container.info .icon {\r\n\t stroke: #2f96b4;\r\n\t color: #2f96b4;\r\n}\r\n .confirmation .confirmation-dialog .icon-container.success .icon {\r\n\t stroke: #51a351;\r\n\t color: #51a351;\r\n}\r\n .confirmation .confirmation-dialog .icon-container.warning .icon {\r\n\t stroke: #f89406;\r\n\t color: #f89406;\r\n}\r\n .confirmation .confirmation-dialog .icon-container.error .icon {\r\n\t stroke: #bd362f;\r\n\t color: #bd362f;\r\n}\r\n .confirmation .confirmation-dialog .content .title {\r\n\t color: #222;\r\n}\r\n .confirmation .confirmation-dialog .content .message {\r\n\t color: #777;\r\n}\r\n .confirmation .confirmation-dialog .footer {\r\n\t background: transparent;\r\n}\r\n .confirmation .confirmation-dialog .footer .confirmation-button {\r\n\t background-color: #eee;\r\n\t color: #777;\r\n}\r\n .confirmation .confirmation-dialog .footer .confirmation-button:hover, .confirmation .confirmation-dialog .footer .confirmation-button:focus, .confirmation .confirmation-dialog .footer .confirmation-button:active {\r\n\t background-color: #bbb;\r\n}\r\n .confirmation .confirmation-dialog .footer .confirmation-button--confirm {\r\n\t background-color: #2f96b4;\r\n\t color: #fff;\r\n}\r\n .confirmation .confirmation-dialog .footer .confirmation-button--confirm:hover {\r\n\t background-color: #2e819b;\r\n}\r\n.ui-table .pagination-wrapper {\r\n background-color: #f4f4f4;\r\n border: 1px solid #c8c8c8;\r\n}\r\n.bordered .datatable-body-row {\r\n border-top: 1px solid #eee;\r\n margin-top: -1px;\r\n}\r\n.breadcrumb {\r\n background-color: transparent;\r\n padding: 0.27rem;\r\n}\r\n`;\r\n","import { CONTENT_STRATEGY, DomInsertionService, ReplaceableComponentsService } from '@abp/ng.core';\r\nimport { APP_INITIALIZER } from '@angular/core';\r\nimport { AccountLayoutComponent } from '../components/account-layout/account-layout.component';\r\nimport { ApplicationLayoutComponent } from '../components/application-layout/application-layout.component';\r\nimport { EmptyLayoutComponent } from '../components/empty-layout/empty-layout.component';\r\nimport styles from '../constants/styles';\r\nimport { eThemeBasicComponents } from '../enums/components';\r\n\r\nexport const BASIC_THEME_STYLES_PROVIDERS = [\r\n {\r\n provide: APP_INITIALIZER,\r\n useFactory: configureStyles,\r\n deps: [DomInsertionService, ReplaceableComponentsService],\r\n multi: true,\r\n },\r\n];\r\n\r\nexport function configureStyles(\r\n domInsertion: DomInsertionService,\r\n replaceableComponents: ReplaceableComponentsService,\r\n) {\r\n return () => {\r\n domInsertion.insertContent(CONTENT_STRATEGY.AppendStyleToHead(styles));\r\n\r\n initLayouts(replaceableComponents);\r\n };\r\n}\r\n\r\nfunction initLayouts(replaceableComponents: ReplaceableComponentsService) {\r\n replaceableComponents.add({\r\n key: eThemeBasicComponents.ApplicationLayout,\r\n component: ApplicationLayoutComponent,\r\n });\r\n replaceableComponents.add({\r\n key: eThemeBasicComponents.AccountLayout,\r\n component: AccountLayoutComponent,\r\n });\r\n replaceableComponents.add({\r\n key: eThemeBasicComponents.EmptyLayout,\r\n component: EmptyLayoutComponent,\r\n });\r\n}\r\n","import { CoreModule, noop } from '@abp/ng.core';\r\nimport { ThemeSharedModule } from '@abp/ng.theme.shared';\r\nimport { APP_INITIALIZER, ModuleWithProviders, NgModule } from '@angular/core';\r\nimport { NgbCollapseModule, NgbDropdownModule } from '@ng-bootstrap/ng-bootstrap';\r\nimport {\r\n NgxValidateCoreModule,\r\n VALIDATION_ERROR_TEMPLATE,\r\n VALIDATION_INVALID_CLASSES,\r\n VALIDATION_TARGET_SELECTOR,\r\n} from '@ngx-validate/core';\r\nimport { AccountLayoutComponent } from './components/account-layout/account-layout.component';\r\nimport { AuthWrapperComponent } from './components/account-layout/auth-wrapper/auth-wrapper.component';\r\nimport { TenantBoxComponent } from './components/account-layout/tenant-box/tenant-box.component';\r\nimport { ApplicationLayoutComponent } from './components/application-layout/application-layout.component';\r\nimport { EmptyLayoutComponent } from './components/empty-layout/empty-layout.component';\r\nimport { LogoComponent } from './components/logo/logo.component';\r\nimport { CurrentUserComponent } from './components/nav-items/current-user.component';\r\nimport { LanguagesComponent } from './components/nav-items/languages.component';\r\nimport { NavItemsComponent } from './components/nav-items/nav-items.component';\r\nimport { PageAlertContainerComponent } from './components/page-alert-container/page-alert-container.component';\r\nimport { RoutesComponent } from './components/routes/routes.component';\r\nimport { ValidationErrorComponent } from './components/validation-error/validation-error.component';\r\nimport { LazyStyleHandler } from './handlers/lazy-style.handler';\r\nimport { BASIC_THEME_NAV_ITEM_PROVIDERS } from './providers/nav-item.provider';\r\nimport { BASIC_THEME_STYLES_PROVIDERS } from './providers/styles.provider';\r\n\r\nexport const LAYOUTS = [ApplicationLayoutComponent, AccountLayoutComponent, EmptyLayoutComponent];\r\n\r\n@NgModule({\r\n declarations: [\r\n ...LAYOUTS,\r\n ValidationErrorComponent,\r\n LogoComponent,\r\n NavItemsComponent,\r\n RoutesComponent,\r\n CurrentUserComponent,\r\n LanguagesComponent,\r\n PageAlertContainerComponent,\r\n TenantBoxComponent,\r\n AuthWrapperComponent,\r\n ],\r\n exports: [\r\n ...LAYOUTS,\r\n ValidationErrorComponent,\r\n LogoComponent,\r\n NavItemsComponent,\r\n RoutesComponent,\r\n CurrentUserComponent,\r\n LanguagesComponent,\r\n PageAlertContainerComponent,\r\n ],\r\n imports: [\r\n CoreModule,\r\n ThemeSharedModule,\r\n NgbCollapseModule,\r\n NgbDropdownModule,\r\n NgxValidateCoreModule,\r\n ],\r\n entryComponents: [...LAYOUTS, ValidationErrorComponent, CurrentUserComponent, LanguagesComponent],\r\n})\r\nexport class BaseThemeBasicModule {}\r\n\r\n@NgModule({\r\n exports: [BaseThemeBasicModule],\r\n imports: [BaseThemeBasicModule],\r\n})\r\nexport class ThemeBasicModule {\r\n static forRoot(): ModuleWithProviders<ThemeBasicModule> {\r\n return {\r\n ngModule: ThemeBasicModule,\r\n providers: [\r\n BASIC_THEME_NAV_ITEM_PROVIDERS,\r\n BASIC_THEME_STYLES_PROVIDERS,\r\n {\r\n provide: VALIDATION_ERROR_TEMPLATE,\r\n useValue: ValidationErrorComponent,\r\n },\r\n {\r\n provide: VALIDATION_TARGET_SELECTOR,\r\n useValue: '.form-group',\r\n },\r\n {\r\n provide: VALIDATION_INVALID_CLASSES,\r\n useValue: 'is-invalid',\r\n },\r\n LazyStyleHandler,\r\n {\r\n provide: APP_INITIALIZER,\r\n useFactory: noop,\r\n multi: true,\r\n deps: [LazyStyleHandler],\r\n },\r\n ],\r\n };\r\n }\r\n}\r\n","/*\r\n * Public API Surface of theme-basic\r\n */\r\n\r\nexport * from './lib/components';\r\nexport * from './lib/enums';\r\nexport * from './lib/handlers';\r\nexport * from './lib/models';\r\nexport * from './lib/providers';\r\nexport * from './lib/theme-basic.module';\r\nexport * from './lib/tokens';\r\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public-api';\n"],"names":["fromEvent","debounceTime","Injectable","Component","Input","ViewChildren","ViewEncapsulation","TenantBoxService","AuthWrapperService","SubscriptionService","slideFromBottom","collapseWithMargin","NAVIGATE_TO_MANAGE_PROFILE","Inject","map","ErrorComponent","ChangeDetectionStrategy","InjectionToken","DocumentDirHandlerService","LazyLoadService","LOADING_STRATEGY","APP_INITIALIZER","NavItemsService","DomInsertionService","ReplaceableComponentsService","CONTENT_STRATEGY","CoreModule","ThemeSharedModule","NgbCollapseModule","NgbDropdownModule","NgxValidateCoreModule","NgModule","VALIDATION_ERROR_TEMPLATE","VALIDATION_TARGET_SELECTOR","VALIDATION_INVALID_CLASSES","noop"],"mappings":"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"}
@@ -1,36 +0,0 @@
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 "../logo/logo.component";
7
- import * as i3 from "../routes/routes.component";
8
- import * as i4 from "../nav-items/nav-items.component";
9
- import * as i5 from "../page-alert-container/page-alert-container.component";
10
- import * as i6 from "./auth-wrapper/auth-wrapper.component";
11
- import * as i7 from "@ng-bootstrap/ng-bootstrap";
12
- import * as i8 from "@abp/ng.core";
13
- import * as i9 from "@angular/common";
14
- import * as i10 from "@angular/router";
15
- export class AccountLayoutComponent {
16
- constructor(service) {
17
- this.service = service;
18
- this.authWrapperKey = 'Account.AuthWrapperComponent';
19
- }
20
- ngAfterViewInit() {
21
- this.service.subscribeWindowSize();
22
- }
23
- }
24
- // required for dynamic component
25
- AccountLayoutComponent.type = "account" /* account */;
26
- AccountLayoutComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "12.2.13", ngImport: i0, type: AccountLayoutComponent, deps: [{ token: i1.LayoutService }], target: i0.ɵɵFactoryTarget.Component });
27
- AccountLayoutComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "12.2.13", type: AccountLayoutComponent, selector: "abp-layout-account", providers: [LayoutService, SubscriptionService], ngImport: i0, template: "<nav\r\n class=\"navbar navbar-expand-lg navbar-dark bg-dark shadow-sm flex-column flex-md-row mb-4\"\r\n id=\"main-navbar\"\r\n style=\"min-height: 4rem\"\r\n>\r\n <div class=\"container\">\r\n <abp-logo *abpReplaceableTemplate=\"{ componentKey: service.logoComponentKey }\"></abp-logo>\r\n <button\r\n class=\"navbar-toggler\"\r\n type=\"button\"\r\n [attr.aria-expanded]=\"!service.isCollapsed\"\r\n (click)=\"service.isCollapsed = !service.isCollapsed\"\r\n >\r\n <span class=\"navbar-toggler-icon\"></span>\r\n </button>\r\n <div\r\n class=\"navbar-collapse\"\r\n [class.overflow-hidden]=\"service.smallScreen\"\r\n id=\"main-navbar-collapse\"\r\n >\r\n <ng-container *ngTemplateOutlet=\"!service.smallScreen ? navigations : null\"></ng-container>\r\n\r\n <div\r\n *ngIf=\"service.smallScreen\"\r\n [@collapseWithMargin]=\"service.isCollapsed ? 'collapsed' : 'expanded'\"\r\n >\r\n <ng-container *ngTemplateOutlet=\"navigations\"></ng-container>\r\n </div>\r\n\r\n <ng-template #navigations>\r\n <abp-routes\r\n *abpReplaceableTemplate=\"{\r\n componentKey: service.routesComponentKey,\r\n inputs: {\r\n smallScreen: { value: service.smallScreen }\r\n }\r\n }\"\r\n class=\"mx-auto\"\r\n [smallScreen]=\"service.smallScreen\"\r\n ></abp-routes>\r\n\r\n <abp-nav-items\r\n *abpReplaceableTemplate=\"{\r\n componentKey: service.navItemsComponentKey\r\n }\"\r\n ></abp-nav-items>\r\n </ng-template>\r\n </div>\r\n </div>\r\n</nav>\r\n\r\n<!-- [@slideFromBottom]=\"outlet.isActivated && outlet.activatedRoute?.routeConfig?.path\" TODO: throws ExpressionChangedAfterItHasBeenCheck when animation is active. It should be fixed -->\r\n<div class=\"container\">\r\n <abp-page-alert-container></abp-page-alert-container>\r\n <abp-auth-wrapper\r\n *abpReplaceableTemplate=\"{\r\n componentKey: authWrapperKey\r\n }\"\r\n >\r\n <router-outlet #outlet=\"outlet\"></router-outlet>\r\n </abp-auth-wrapper>\r\n</div>\r\n", components: [{ type: i2.LogoComponent, selector: "abp-logo" }, { type: i3.RoutesComponent, selector: "abp-routes", inputs: ["smallScreen"] }, { type: i4.NavItemsComponent, selector: "abp-nav-items" }, { type: i5.PageAlertContainerComponent, selector: "abp-page-alert-container" }, { type: i6.AuthWrapperComponent, selector: "abp-auth-wrapper" }], directives: [{ type: i7.NgbNavbar, selector: ".navbar" }, { type: i8.ReplaceableTemplateDirective, selector: "[abpReplaceableTemplate]", inputs: ["abpReplaceableTemplate"] }, { type: i9.NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet"] }, { type: i9.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { type: i10.RouterOutlet, selector: "router-outlet", outputs: ["activate", "deactivate"], exportAs: ["outlet"] }] });
28
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.13", ngImport: i0, type: AccountLayoutComponent, decorators: [{
29
- type: Component,
30
- args: [{
31
- selector: 'abp-layout-account',
32
- templateUrl: './account-layout.component.html',
33
- providers: [LayoutService, SubscriptionService],
34
- }]
35
- }], ctorParameters: function () { return [{ type: i1.LayoutService }]; } });
36
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYWNjb3VudC1sYXlvdXQuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vcGFja2FnZXMvdGhlbWUtYmFzaWMvc3JjL2xpYi9jb21wb25lbnRzL2FjY291bnQtbGF5b3V0L2FjY291bnQtbGF5b3V0LmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uLy4uLy4uL3BhY2thZ2VzL3RoZW1lLWJhc2ljL3NyYy9saWIvY29tcG9uZW50cy9hY2NvdW50LWxheW91dC9hY2NvdW50LWxheW91dC5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQWlCLFNBQVMsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUN6RCxPQUFPLEVBQWUsbUJBQW1CLEVBQUUsTUFBTSxjQUFjLENBQUM7QUFDaEUsT0FBTyxFQUFFLGFBQWEsRUFBRSxNQUFNLCtCQUErQixDQUFDOzs7Ozs7Ozs7Ozs7QUFPOUQsTUFBTSxPQUFPLHNCQUFzQjtJQU1qQyxZQUFtQixPQUFzQjtRQUF0QixZQUFPLEdBQVAsT0FBTyxDQUFlO1FBRnpDLG1CQUFjLEdBQUcsOEJBQThCLENBQUM7SUFFSixDQUFDO0lBRTdDLGVBQWU7UUFDYixJQUFJLENBQUMsT0FBTyxDQUFDLG1CQUFtQixFQUFFLENBQUM7SUFDckMsQ0FBQzs7QUFURCxpQ0FBaUM7QUFDMUIsMkJBQUksMkJBQXVCO29IQUZ2QixzQkFBc0I7d0dBQXRCLHNCQUFzQiw2Q0FGdEIsQ0FBQyxhQUFhLEVBQUUsbUJBQW1CLENBQUMsMEJDUGpELDBvRUE4REE7NEZEckRhLHNCQUFzQjtrQkFMbEMsU0FBUzttQkFBQztvQkFDVCxRQUFRLEVBQUUsb0JBQW9CO29CQUM5QixXQUFXLEVBQUUsaUNBQWlDO29CQUM5QyxTQUFTLEVBQUUsQ0FBQyxhQUFhLEVBQUUsbUJBQW1CLENBQUM7aUJBQ2hEIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQWZ0ZXJWaWV3SW5pdCwgQ29tcG9uZW50IH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XHJcbmltcG9ydCB7IGVMYXlvdXRUeXBlLCBTdWJzY3JpcHRpb25TZXJ2aWNlIH0gZnJvbSAnQGFicC9uZy5jb3JlJztcclxuaW1wb3J0IHsgTGF5b3V0U2VydmljZSB9IGZyb20gJy4uLy4uL3NlcnZpY2VzL2xheW91dC5zZXJ2aWNlJztcclxuXHJcbkBDb21wb25lbnQoe1xyXG4gIHNlbGVjdG9yOiAnYWJwLWxheW91dC1hY2NvdW50JyxcclxuICB0ZW1wbGF0ZVVybDogJy4vYWNjb3VudC1sYXlvdXQuY29tcG9uZW50Lmh0bWwnLFxyXG4gIHByb3ZpZGVyczogW0xheW91dFNlcnZpY2UsIFN1YnNjcmlwdGlvblNlcnZpY2VdLFxyXG59KVxyXG5leHBvcnQgY2xhc3MgQWNjb3VudExheW91dENvbXBvbmVudCBpbXBsZW1lbnRzIEFmdGVyVmlld0luaXQge1xyXG4gIC8vIHJlcXVpcmVkIGZvciBkeW5hbWljIGNvbXBvbmVudFxyXG4gIHN0YXRpYyB0eXBlID0gZUxheW91dFR5cGUuYWNjb3VudDtcclxuXHJcbiAgYXV0aFdyYXBwZXJLZXkgPSAnQWNjb3VudC5BdXRoV3JhcHBlckNvbXBvbmVudCc7XHJcblxyXG4gIGNvbnN0cnVjdG9yKHB1YmxpYyBzZXJ2aWNlOiBMYXlvdXRTZXJ2aWNlKSB7fVxyXG5cclxuICBuZ0FmdGVyVmlld0luaXQoKSB7XHJcbiAgICB0aGlzLnNlcnZpY2Uuc3Vic2NyaWJlV2luZG93U2l6ZSgpO1xyXG4gIH1cclxufVxyXG4iLCI8bmF2XHJcbiAgY2xhc3M9XCJuYXZiYXIgbmF2YmFyLWV4cGFuZC1sZyBuYXZiYXItZGFyayBiZy1kYXJrIHNoYWRvdy1zbSBmbGV4LWNvbHVtbiBmbGV4LW1kLXJvdyBtYi00XCJcclxuICBpZD1cIm1haW4tbmF2YmFyXCJcclxuICBzdHlsZT1cIm1pbi1oZWlnaHQ6IDRyZW1cIlxyXG4+XHJcbiAgPGRpdiBjbGFzcz1cImNvbnRhaW5lclwiPlxyXG4gICAgPGFicC1sb2dvICphYnBSZXBsYWNlYWJsZVRlbXBsYXRlPVwieyBjb21wb25lbnRLZXk6IHNlcnZpY2UubG9nb0NvbXBvbmVudEtleSB9XCI+PC9hYnAtbG9nbz5cclxuICAgIDxidXR0b25cclxuICAgICAgY2xhc3M9XCJuYXZiYXItdG9nZ2xlclwiXHJcbiAgICAgIHR5cGU9XCJidXR0b25cIlxyXG4gICAgICBbYXR0ci5hcmlhLWV4cGFuZGVkXT1cIiFzZXJ2aWNlLmlzQ29sbGFwc2VkXCJcclxuICAgICAgKGNsaWNrKT1cInNlcnZpY2UuaXNDb2xsYXBzZWQgPSAhc2VydmljZS5pc0NvbGxhcHNlZFwiXHJcbiAgICA+XHJcbiAgICAgIDxzcGFuIGNsYXNzPVwibmF2YmFyLXRvZ2dsZXItaWNvblwiPjwvc3Bhbj5cclxuICAgIDwvYnV0dG9uPlxyXG4gICAgPGRpdlxyXG4gICAgICBjbGFzcz1cIm5hdmJhci1jb2xsYXBzZVwiXHJcbiAgICAgIFtjbGFzcy5vdmVyZmxvdy1oaWRkZW5dPVwic2VydmljZS5zbWFsbFNjcmVlblwiXHJcbiAgICAgIGlkPVwibWFpbi1uYXZiYXItY29sbGFwc2VcIlxyXG4gICAgPlxyXG4gICAgICA8bmctY29udGFpbmVyICpuZ1RlbXBsYXRlT3V0bGV0PVwiIXNlcnZpY2Uuc21hbGxTY3JlZW4gPyBuYXZpZ2F0aW9ucyA6IG51bGxcIj48L25nLWNvbnRhaW5lcj5cclxuXHJcbiAgICAgIDxkaXZcclxuICAgICAgICAqbmdJZj1cInNlcnZpY2Uuc21hbGxTY3JlZW5cIlxyXG4gICAgICAgIFtAY29sbGFwc2VXaXRoTWFyZ2luXT1cInNlcnZpY2UuaXNDb2xsYXBzZWQgPyAnY29sbGFwc2VkJyA6ICdleHBhbmRlZCdcIlxyXG4gICAgICA+XHJcbiAgICAgICAgPG5nLWNvbnRhaW5lciAqbmdUZW1wbGF0ZU91dGxldD1cIm5hdmlnYXRpb25zXCI+PC9uZy1jb250YWluZXI+XHJcbiAgICAgIDwvZGl2PlxyXG5cclxuICAgICAgPG5nLXRlbXBsYXRlICNuYXZpZ2F0aW9ucz5cclxuICAgICAgICA8YWJwLXJvdXRlc1xyXG4gICAgICAgICAgKmFicFJlcGxhY2VhYmxlVGVtcGxhdGU9XCJ7XHJcbiAgICAgICAgICAgIGNvbXBvbmVudEtleTogc2VydmljZS5yb3V0ZXNDb21wb25lbnRLZXksXHJcbiAgICAgICAgICAgIGlucHV0czoge1xyXG4gICAgICAgICAgICAgIHNtYWxsU2NyZWVuOiB7IHZhbHVlOiBzZXJ2aWNlLnNtYWxsU2NyZWVuIH1cclxuICAgICAgICAgICAgfVxyXG4gICAgICAgICAgfVwiXHJcbiAgICAgICAgICBjbGFzcz1cIm14LWF1dG9cIlxyXG4gICAgICAgICAgW3NtYWxsU2NyZWVuXT1cInNlcnZpY2Uuc21hbGxTY3JlZW5cIlxyXG4gICAgICAgID48L2FicC1yb3V0ZXM+XHJcblxyXG4gICAgICAgIDxhYnAtbmF2LWl0ZW1zXHJcbiAgICAgICAgICAqYWJwUmVwbGFjZWFibGVUZW1wbGF0ZT1cIntcclxuICAgICAgICAgICAgY29tcG9uZW50S2V5OiBzZXJ2aWNlLm5hdkl0ZW1zQ29tcG9uZW50S2V5XHJcbiAgICAgICAgICB9XCJcclxuICAgICAgICA+PC9hYnAtbmF2LWl0ZW1zPlxyXG4gICAgICA8L25nLXRlbXBsYXRlPlxyXG4gICAgPC9kaXY+XHJcbiAgPC9kaXY+XHJcbjwvbmF2PlxyXG5cclxuPCEtLSBbQHNsaWRlRnJvbUJvdHRvbV09XCJvdXRsZXQuaXNBY3RpdmF0ZWQgJiYgb3V0bGV0LmFjdGl2YXRlZFJvdXRlPy5yb3V0ZUNvbmZpZz8ucGF0aFwiIFRPRE86IHRocm93cyBFeHByZXNzaW9uQ2hhbmdlZEFmdGVySXRIYXNCZWVuQ2hlY2sgd2hlbiBhbmltYXRpb24gaXMgYWN0aXZlLiBJdCBzaG91bGQgYmUgZml4ZWQgLS0+XHJcbjxkaXYgY2xhc3M9XCJjb250YWluZXJcIj5cclxuICA8YWJwLXBhZ2UtYWxlcnQtY29udGFpbmVyPjwvYWJwLXBhZ2UtYWxlcnQtY29udGFpbmVyPlxyXG4gIDxhYnAtYXV0aC13cmFwcGVyXHJcbiAgICAqYWJwUmVwbGFjZWFibGVUZW1wbGF0ZT1cIntcclxuICAgICAgY29tcG9uZW50S2V5OiBhdXRoV3JhcHBlcktleVxyXG4gICAgfVwiXHJcbiAgPlxyXG4gICAgPHJvdXRlci1vdXRsZXQgI291dGxldD1cIm91dGxldFwiPjwvcm91dGVyLW91dGxldD5cclxuICA8L2FicC1hdXRoLXdyYXBwZXI+XHJcbjwvZGl2PlxyXG4iXX0=
@@ -1,23 +0,0 @@
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 "../tenant-box/tenant-box.component";
6
- import * as i3 from "@angular/common";
7
- import * as i4 from "@abp/ng.core";
8
- export class AuthWrapperComponent {
9
- constructor(service) {
10
- this.service = service;
11
- }
12
- }
13
- AuthWrapperComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "12.2.13", ngImport: i0, type: AuthWrapperComponent, deps: [{ token: i1.AuthWrapperService }], target: i0.ɵɵFactoryTarget.Component });
14
- AuthWrapperComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "12.2.13", type: AuthWrapperComponent, selector: "abp-auth-wrapper", providers: [AuthWrapperService], ngImport: i0, template: "<div class=\"row\">\r\n <div class=\"mx-auto col col-md-5\">\r\n <ng-container *ngIf=\"(service.isMultiTenancyEnabled$ | async) && service.isTenantBoxVisible\">\r\n <abp-tenant-box\r\n *abpReplaceableTemplate=\"{ componentKey: service.tenantBoxKey }\"\r\n ></abp-tenant-box>\r\n </ng-container>\r\n\r\n <div class=\"abp-account-container\">\r\n <div\r\n *ngIf=\"service.enableLocalLogin$ | async; else disableLocalLoginTemplate\"\r\n class=\"card mt-3 shadow-sm rounded\"\r\n >\r\n <div class=\"card-body p-5\">\r\n <ng-content></ng-content>\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n</div>\r\n\r\n<ng-template #disableLocalLoginTemplate>\r\n <div class=\"alert alert-warning\">\r\n <strong>{{ 'AbpAccount::InvalidLoginRequest' | abpLocalization }}</strong>\r\n {{ 'AbpAccount::ThereAreNoLoginSchemesConfiguredForThisClient' | abpLocalization }}\r\n </div>\r\n</ng-template>\r\n", components: [{ type: i2.TenantBoxComponent, selector: "abp-tenant-box" }], directives: [{ type: i3.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { type: i4.ReplaceableTemplateDirective, selector: "[abpReplaceableTemplate]", inputs: ["abpReplaceableTemplate"] }], pipes: { "async": i3.AsyncPipe, "abpLocalization": i4.LocalizationPipe } });
15
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.13", ngImport: i0, type: AuthWrapperComponent, decorators: [{
16
- type: Component,
17
- args: [{
18
- selector: 'abp-auth-wrapper',
19
- templateUrl: './auth-wrapper.component.html',
20
- providers: [AuthWrapperService],
21
- }]
22
- }], ctorParameters: function () { return [{ type: i1.AuthWrapperService }]; } });
23
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYXV0aC13cmFwcGVyLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL3BhY2thZ2VzL3RoZW1lLWJhc2ljL3NyYy9saWIvY29tcG9uZW50cy9hY2NvdW50LWxheW91dC9hdXRoLXdyYXBwZXIvYXV0aC13cmFwcGVyLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL3BhY2thZ2VzL3RoZW1lLWJhc2ljL3NyYy9saWIvY29tcG9uZW50cy9hY2NvdW50LWxheW91dC9hdXRoLXdyYXBwZXIvYXV0aC13cmFwcGVyLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxrQkFBa0IsRUFBRSxNQUFNLHNCQUFzQixDQUFDO0FBQzFELE9BQU8sRUFBRSxTQUFTLEVBQUUsTUFBTSxlQUFlLENBQUM7Ozs7OztBQU8xQyxNQUFNLE9BQU8sb0JBQW9CO0lBQy9CLFlBQW1CLE9BQTJCO1FBQTNCLFlBQU8sR0FBUCxPQUFPLENBQW9CO0lBQUcsQ0FBQzs7a0hBRHZDLG9CQUFvQjtzR0FBcEIsb0JBQW9CLDJDQUZwQixDQUFDLGtCQUFrQixDQUFDLDBCQ05qQyxnOUJBMkJBOzRGRG5CYSxvQkFBb0I7a0JBTGhDLFNBQVM7bUJBQUM7b0JBQ1QsUUFBUSxFQUFFLGtCQUFrQjtvQkFDNUIsV0FBVyxFQUFFLCtCQUErQjtvQkFDNUMsU0FBUyxFQUFFLENBQUMsa0JBQWtCLENBQUM7aUJBQ2hDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQXV0aFdyYXBwZXJTZXJ2aWNlIH0gZnJvbSAnQGFicC9uZy5hY2NvdW50LmNvcmUnO1xyXG5pbXBvcnQgeyBDb21wb25lbnQgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcclxuXHJcbkBDb21wb25lbnQoe1xyXG4gIHNlbGVjdG9yOiAnYWJwLWF1dGgtd3JhcHBlcicsXHJcbiAgdGVtcGxhdGVVcmw6ICcuL2F1dGgtd3JhcHBlci5jb21wb25lbnQuaHRtbCcsXHJcbiAgcHJvdmlkZXJzOiBbQXV0aFdyYXBwZXJTZXJ2aWNlXSxcclxufSlcclxuZXhwb3J0IGNsYXNzIEF1dGhXcmFwcGVyQ29tcG9uZW50IHtcclxuICBjb25zdHJ1Y3RvcihwdWJsaWMgc2VydmljZTogQXV0aFdyYXBwZXJTZXJ2aWNlKSB7fVxyXG59XHJcbiIsIjxkaXYgY2xhc3M9XCJyb3dcIj5cclxuICA8ZGl2IGNsYXNzPVwibXgtYXV0byBjb2wgY29sLW1kLTVcIj5cclxuICAgIDxuZy1jb250YWluZXIgKm5nSWY9XCIoc2VydmljZS5pc011bHRpVGVuYW5jeUVuYWJsZWQkIHwgYXN5bmMpICYmIHNlcnZpY2UuaXNUZW5hbnRCb3hWaXNpYmxlXCI+XHJcbiAgICAgIDxhYnAtdGVuYW50LWJveFxyXG4gICAgICAgICphYnBSZXBsYWNlYWJsZVRlbXBsYXRlPVwieyBjb21wb25lbnRLZXk6IHNlcnZpY2UudGVuYW50Qm94S2V5IH1cIlxyXG4gICAgICA+PC9hYnAtdGVuYW50LWJveD5cclxuICAgIDwvbmctY29udGFpbmVyPlxyXG5cclxuICAgIDxkaXYgY2xhc3M9XCJhYnAtYWNjb3VudC1jb250YWluZXJcIj5cclxuICAgICAgPGRpdlxyXG4gICAgICAgICpuZ0lmPVwic2VydmljZS5lbmFibGVMb2NhbExvZ2luJCB8IGFzeW5jOyBlbHNlIGRpc2FibGVMb2NhbExvZ2luVGVtcGxhdGVcIlxyXG4gICAgICAgIGNsYXNzPVwiY2FyZCBtdC0zIHNoYWRvdy1zbSByb3VuZGVkXCJcclxuICAgICAgPlxyXG4gICAgICAgIDxkaXYgY2xhc3M9XCJjYXJkLWJvZHkgcC01XCI+XHJcbiAgICAgICAgICA8bmctY29udGVudD48L25nLWNvbnRlbnQ+XHJcbiAgICAgICAgPC9kaXY+XHJcbiAgICAgIDwvZGl2PlxyXG4gICAgPC9kaXY+XHJcbiAgPC9kaXY+XHJcbjwvZGl2PlxyXG5cclxuPG5nLXRlbXBsYXRlICNkaXNhYmxlTG9jYWxMb2dpblRlbXBsYXRlPlxyXG4gIDxkaXYgY2xhc3M9XCJhbGVydCBhbGVydC13YXJuaW5nXCI+XHJcbiAgICA8c3Ryb25nPnt7ICdBYnBBY2NvdW50OjpJbnZhbGlkTG9naW5SZXF1ZXN0JyB8IGFicExvY2FsaXphdGlvbiB9fTwvc3Ryb25nPlxyXG4gICAge3sgJ0FicEFjY291bnQ6OlRoZXJlQXJlTm9Mb2dpblNjaGVtZXNDb25maWd1cmVkRm9yVGhpc0NsaWVudCcgfCBhYnBMb2NhbGl6YXRpb24gfX1cclxuICA8L2Rpdj5cclxuPC9uZy10ZW1wbGF0ZT5cclxuIl19
@@ -1,24 +0,0 @@
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 "@abp/ng.theme.shared";
6
- import * as i3 from "@angular/common";
7
- import * as i4 from "@angular/forms";
8
- import * as i5 from "@abp/ng.core";
9
- export class TenantBoxComponent {
10
- constructor(service) {
11
- this.service = service;
12
- }
13
- }
14
- TenantBoxComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "12.2.13", ngImport: i0, type: TenantBoxComponent, deps: [{ token: i1.TenantBoxService }], target: i0.ɵɵFactoryTarget.Component });
15
- TenantBoxComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "12.2.13", type: TenantBoxComponent, selector: "abp-tenant-box", providers: [TenantBoxService], ngImport: i0, template: "<ng-container *ngIf=\"(service.currentTenant$ | async) || { name: '' } as currentTenant\">\r\n <div class=\"card shadow-sm rounded mb-3\">\r\n <div class=\"card-body px-5\">\r\n <div class=\"row\">\r\n <div class=\"col\">\r\n <span style=\"font-size: 0.8em\" class=\"text-uppercase text-muted\">{{\r\n 'AbpUiMultiTenancy::Tenant' | abpLocalization\r\n }}</span\r\n ><br />\r\n <h6 class=\"m-0 d-inline-block\">\r\n <i>{{ currentTenant.name || ('AbpUiMultiTenancy::NotSelected' | abpLocalization) }}</i>\r\n </h6>\r\n </div>\r\n <div class=\"col-auto\">\r\n <a\r\n id=\"AbpTenantSwitchLink\"\r\n href=\"javascript:void(0);\"\r\n class=\"btn btn-sm mt-3 btn-outline-primary\"\r\n (click)=\"service.onSwitch()\"\r\n >{{ 'AbpUiMultiTenancy::Switch' | abpLocalization }}</a\r\n >\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n\r\n <abp-modal [(visible)]=\"service.isModalVisible\" [busy]=\"service.modalBusy\">\r\n <ng-template #abpHeader>\r\n <h5>Switch Tenant</h5>\r\n </ng-template>\r\n <ng-template #abpBody>\r\n <form (ngSubmit)=\"service.save()\">\r\n <div class=\"mt-2\">\r\n <div class=\"mb-3 form-group\">\r\n <label for=\"name\" class=\"form-label\">{{\r\n 'AbpUiMultiTenancy::Name' | abpLocalization\r\n }}</label>\r\n <input\r\n [(ngModel)]=\"service.name\"\r\n type=\"text\"\r\n id=\"name\"\r\n name=\"tenant\"\r\n class=\"form-control\"\r\n autofocus\r\n />\r\n </div>\r\n <p>{{ 'AbpUiMultiTenancy::SwitchTenantHint' | abpLocalization }}</p>\r\n </div>\r\n </form>\r\n </ng-template>\r\n <ng-template #abpFooter>\r\n <button abpClose type=\"button\" class=\"btn btn-secondary\">\r\n {{ 'AbpTenantManagement::Cancel' | abpLocalization }}\r\n </button>\r\n <abp-button\r\n type=\"abp-button\"\r\n iconClass=\"fa fa-check\"\r\n (click)=\"service.save()\"\r\n [disabled]=\"currentTenant?.name === service.name\"\r\n >\r\n <span>{{ 'AbpTenantManagement::Save' | abpLocalization }}</span>\r\n </abp-button>\r\n </ng-template>\r\n </abp-modal>\r\n</ng-container>\r\n", components: [{ type: i2.ModalComponent, selector: "abp-modal", inputs: ["visible", "busy", "options", "suppressUnsavedChangesWarning"], outputs: ["visibleChange", "init", "appear", "disappear"] }, { type: i2.ButtonComponent, selector: "abp-button", inputs: ["buttonId", "buttonClass", "buttonType", "iconClass", "loading", "disabled", "attributes"], outputs: ["click", "focus", "blur", "abpClick", "abpFocus", "abpBlur"] }], directives: [{ type: i3.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { type: i4.ɵNgNoValidate, selector: "form:not([ngNoForm]):not([ngNativeValidate])" }, { type: i4.NgControlStatusGroup, selector: "[formGroupName],[formArrayName],[ngModelGroup],[formGroup],form:not([ngNoForm]),[ngForm]" }, { type: i4.NgForm, selector: "form:not([ngNoForm]):not([formGroup]),ng-form,[ngForm]", inputs: ["ngFormOptions"], outputs: ["ngSubmit"], exportAs: ["ngForm"] }, { type: i4.DefaultValueAccessor, selector: "input:not([type=checkbox])[formControlName],textarea[formControlName],input:not([type=checkbox])[formControl],textarea[formControl],input:not([type=checkbox])[ngModel],textarea[ngModel],[ngDefaultControl]" }, { type: i5.AutofocusDirective, selector: "[autofocus]", inputs: ["autofocus"] }, { type: i4.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { type: i4.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }, { type: i2.ModalCloseDirective, selector: "[abpClose]" }], pipes: { "async": i3.AsyncPipe, "abpLocalization": i5.LocalizationPipe } });
16
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.13", ngImport: i0, type: TenantBoxComponent, decorators: [{
17
- type: Component,
18
- args: [{
19
- selector: 'abp-tenant-box',
20
- templateUrl: './tenant-box.component.html',
21
- providers: [TenantBoxService],
22
- }]
23
- }], ctorParameters: function () { return [{ type: i1.TenantBoxService }]; } });
24
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidGVuYW50LWJveC5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9wYWNrYWdlcy90aGVtZS1iYXNpYy9zcmMvbGliL2NvbXBvbmVudHMvYWNjb3VudC1sYXlvdXQvdGVuYW50LWJveC90ZW5hbnQtYm94LmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL3BhY2thZ2VzL3RoZW1lLWJhc2ljL3NyYy9saWIvY29tcG9uZW50cy9hY2NvdW50LWxheW91dC90ZW5hbnQtYm94L3RlbmFudC1ib3guY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLGdCQUFnQixFQUFFLE1BQU0sc0JBQXNCLENBQUM7QUFDeEQsT0FBTyxFQUFFLFNBQVMsRUFBRSxNQUFNLGVBQWUsQ0FBQzs7Ozs7OztBQU8xQyxNQUFNLE9BQU8sa0JBQWtCO0lBQzdCLFlBQW1CLE9BQXlCO1FBQXpCLFlBQU8sR0FBUCxPQUFPLENBQWtCO0lBQUcsQ0FBQzs7Z0hBRHJDLGtCQUFrQjtvR0FBbEIsa0JBQWtCLHlDQUZsQixDQUFDLGdCQUFnQixDQUFDLDBCQ04vQixtNEVBaUVBOzRGRHpEYSxrQkFBa0I7a0JBTDlCLFNBQVM7bUJBQUM7b0JBQ1QsUUFBUSxFQUFFLGdCQUFnQjtvQkFDMUIsV0FBVyxFQUFFLDZCQUE2QjtvQkFDMUMsU0FBUyxFQUFFLENBQUMsZ0JBQWdCLENBQUM7aUJBQzlCIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgVGVuYW50Qm94U2VydmljZSB9IGZyb20gJ0BhYnAvbmcuYWNjb3VudC5jb3JlJztcclxuaW1wb3J0IHsgQ29tcG9uZW50IH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XHJcblxyXG5AQ29tcG9uZW50KHtcclxuICBzZWxlY3RvcjogJ2FicC10ZW5hbnQtYm94JyxcclxuICB0ZW1wbGF0ZVVybDogJy4vdGVuYW50LWJveC5jb21wb25lbnQuaHRtbCcsXHJcbiAgcHJvdmlkZXJzOiBbVGVuYW50Qm94U2VydmljZV0sXHJcbn0pXHJcbmV4cG9ydCBjbGFzcyBUZW5hbnRCb3hDb21wb25lbnQge1xyXG4gIGNvbnN0cnVjdG9yKHB1YmxpYyBzZXJ2aWNlOiBUZW5hbnRCb3hTZXJ2aWNlKSB7fVxyXG59XHJcbiIsIjxuZy1jb250YWluZXIgKm5nSWY9XCIoc2VydmljZS5jdXJyZW50VGVuYW50JCB8IGFzeW5jKSB8fCB7IG5hbWU6ICcnIH0gYXMgY3VycmVudFRlbmFudFwiPlxyXG4gIDxkaXYgY2xhc3M9XCJjYXJkIHNoYWRvdy1zbSByb3VuZGVkIG1iLTNcIj5cclxuICAgIDxkaXYgY2xhc3M9XCJjYXJkLWJvZHkgcHgtNVwiPlxyXG4gICAgICA8ZGl2IGNsYXNzPVwicm93XCI+XHJcbiAgICAgICAgPGRpdiBjbGFzcz1cImNvbFwiPlxyXG4gICAgICAgICAgPHNwYW4gc3R5bGU9XCJmb250LXNpemU6IDAuOGVtXCIgY2xhc3M9XCJ0ZXh0LXVwcGVyY2FzZSB0ZXh0LW11dGVkXCI+e3tcclxuICAgICAgICAgICAgJ0FicFVpTXVsdGlUZW5hbmN5OjpUZW5hbnQnIHwgYWJwTG9jYWxpemF0aW9uXHJcbiAgICAgICAgICB9fTwvc3BhblxyXG4gICAgICAgICAgPjxiciAvPlxyXG4gICAgICAgICAgPGg2IGNsYXNzPVwibS0wIGQtaW5saW5lLWJsb2NrXCI+XHJcbiAgICAgICAgICAgIDxpPnt7IGN1cnJlbnRUZW5hbnQubmFtZSB8fCAoJ0FicFVpTXVsdGlUZW5hbmN5OjpOb3RTZWxlY3RlZCcgfCBhYnBMb2NhbGl6YXRpb24pIH19PC9pPlxyXG4gICAgICAgICAgPC9oNj5cclxuICAgICAgICA8L2Rpdj5cclxuICAgICAgICA8ZGl2IGNsYXNzPVwiY29sLWF1dG9cIj5cclxuICAgICAgICAgIDxhXHJcbiAgICAgICAgICAgIGlkPVwiQWJwVGVuYW50U3dpdGNoTGlua1wiXHJcbiAgICAgICAgICAgIGhyZWY9XCJqYXZhc2NyaXB0OnZvaWQoMCk7XCJcclxuICAgICAgICAgICAgY2xhc3M9XCJidG4gYnRuLXNtIG10LTMgYnRuLW91dGxpbmUtcHJpbWFyeVwiXHJcbiAgICAgICAgICAgIChjbGljayk9XCJzZXJ2aWNlLm9uU3dpdGNoKClcIlxyXG4gICAgICAgICAgICA+e3sgJ0FicFVpTXVsdGlUZW5hbmN5OjpTd2l0Y2gnIHwgYWJwTG9jYWxpemF0aW9uIH19PC9hXHJcbiAgICAgICAgICA+XHJcbiAgICAgICAgPC9kaXY+XHJcbiAgICAgIDwvZGl2PlxyXG4gICAgPC9kaXY+XHJcbiAgPC9kaXY+XHJcblxyXG4gIDxhYnAtbW9kYWwgWyh2aXNpYmxlKV09XCJzZXJ2aWNlLmlzTW9kYWxWaXNpYmxlXCIgW2J1c3ldPVwic2VydmljZS5tb2RhbEJ1c3lcIj5cclxuICAgIDxuZy10ZW1wbGF0ZSAjYWJwSGVhZGVyPlxyXG4gICAgICA8aDU+U3dpdGNoIFRlbmFudDwvaDU+XHJcbiAgICA8L25nLXRlbXBsYXRlPlxyXG4gICAgPG5nLXRlbXBsYXRlICNhYnBCb2R5PlxyXG4gICAgICA8Zm9ybSAobmdTdWJtaXQpPVwic2VydmljZS5zYXZlKClcIj5cclxuICAgICAgICA8ZGl2IGNsYXNzPVwibXQtMlwiPlxyXG4gICAgICAgICAgPGRpdiBjbGFzcz1cIm1iLTMgZm9ybS1ncm91cFwiPlxyXG4gICAgICAgICAgICA8bGFiZWwgZm9yPVwibmFtZVwiIGNsYXNzPVwiZm9ybS1sYWJlbFwiPnt7XHJcbiAgICAgICAgICAgICAgJ0FicFVpTXVsdGlUZW5hbmN5OjpOYW1lJyB8IGFicExvY2FsaXphdGlvblxyXG4gICAgICAgICAgICB9fTwvbGFiZWw+XHJcbiAgICAgICAgICAgIDxpbnB1dFxyXG4gICAgICAgICAgICAgIFsobmdNb2RlbCldPVwic2VydmljZS5uYW1lXCJcclxuICAgICAgICAgICAgICB0eXBlPVwidGV4dFwiXHJcbiAgICAgICAgICAgICAgaWQ9XCJuYW1lXCJcclxuICAgICAgICAgICAgICBuYW1lPVwidGVuYW50XCJcclxuICAgICAgICAgICAgICBjbGFzcz1cImZvcm0tY29udHJvbFwiXHJcbiAgICAgICAgICAgICAgYXV0b2ZvY3VzXHJcbiAgICAgICAgICAgIC8+XHJcbiAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgIDxwPnt7ICdBYnBVaU11bHRpVGVuYW5jeTo6U3dpdGNoVGVuYW50SGludCcgfCBhYnBMb2NhbGl6YXRpb24gfX08L3A+XHJcbiAgICAgICAgPC9kaXY+XHJcbiAgICAgIDwvZm9ybT5cclxuICAgIDwvbmctdGVtcGxhdGU+XHJcbiAgICA8bmctdGVtcGxhdGUgI2FicEZvb3Rlcj5cclxuICAgICAgPGJ1dHRvbiBhYnBDbG9zZSB0eXBlPVwiYnV0dG9uXCIgY2xhc3M9XCJidG4gYnRuLXNlY29uZGFyeVwiPlxyXG4gICAgICAgIHt7ICdBYnBUZW5hbnRNYW5hZ2VtZW50OjpDYW5jZWwnIHwgYWJwTG9jYWxpemF0aW9uIH19XHJcbiAgICAgIDwvYnV0dG9uPlxyXG4gICAgICA8YWJwLWJ1dHRvblxyXG4gICAgICAgIHR5cGU9XCJhYnAtYnV0dG9uXCJcclxuICAgICAgICBpY29uQ2xhc3M9XCJmYSBmYS1jaGVja1wiXHJcbiAgICAgICAgKGNsaWNrKT1cInNlcnZpY2Uuc2F2ZSgpXCJcclxuICAgICAgICBbZGlzYWJsZWRdPVwiY3VycmVudFRlbmFudD8ubmFtZSA9PT0gc2VydmljZS5uYW1lXCJcclxuICAgICAgPlxyXG4gICAgICAgIDxzcGFuPnt7ICdBYnBUZW5hbnRNYW5hZ2VtZW50OjpTYXZlJyB8IGFicExvY2FsaXphdGlvbiB9fTwvc3Bhbj5cclxuICAgICAgPC9hYnAtYnV0dG9uPlxyXG4gICAgPC9uZy10ZW1wbGF0ZT5cclxuICA8L2FicC1tb2RhbD5cclxuPC9uZy1jb250YWluZXI+XHJcbiJdfQ==
@@ -1,36 +0,0 @@
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 "../logo/logo.component";
8
- import * as i3 from "../routes/routes.component";
9
- import * as i4 from "../nav-items/nav-items.component";
10
- import * as i5 from "../page-alert-container/page-alert-container.component";
11
- import * as i6 from "@ng-bootstrap/ng-bootstrap";
12
- import * as i7 from "@abp/ng.core";
13
- import * as i8 from "@angular/common";
14
- import * as i9 from "@angular/router";
15
- export class ApplicationLayoutComponent {
16
- constructor(service) {
17
- this.service = service;
18
- }
19
- ngAfterViewInit() {
20
- this.service.subscribeWindowSize();
21
- }
22
- }
23
- // required for dynamic component
24
- ApplicationLayoutComponent.type = "application" /* application */;
25
- ApplicationLayoutComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "12.2.13", ngImport: i0, type: ApplicationLayoutComponent, deps: [{ token: i1.LayoutService }], target: i0.ɵɵFactoryTarget.Component });
26
- ApplicationLayoutComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "12.2.13", type: ApplicationLayoutComponent, selector: "abp-layout-application", providers: [LayoutService, SubscriptionService], ngImport: i0, template: "<nav\r\n class=\"navbar navbar-expand-lg navbar-dark bg-dark shadow-sm flex-column flex-md-row mb-4\"\r\n id=\"main-navbar\"\r\n style=\"min-height: 4rem\"\r\n>\r\n <div class=\"container\">\r\n <abp-logo *abpReplaceableTemplate=\"{ componentKey: service.logoComponentKey }\"></abp-logo>\r\n <button\r\n class=\"navbar-toggler\"\r\n type=\"button\"\r\n [attr.aria-expanded]=\"!service.isCollapsed\"\r\n (click)=\"service.isCollapsed = !service.isCollapsed\"\r\n >\r\n <span class=\"navbar-toggler-icon\"></span>\r\n </button>\r\n <div class=\"navbar-collapse\" [class.overflow-hidden]=\"service.smallScreen\" id=\"main-navbar-collapse\">\r\n <ng-container *ngTemplateOutlet=\"!service.smallScreen ? navigations : null\"></ng-container>\r\n\r\n <div *ngIf=\"service.smallScreen\" [@collapseWithMargin]=\"service.isCollapsed ? 'collapsed' : 'expanded'\">\r\n <ng-container *ngTemplateOutlet=\"navigations\"></ng-container>\r\n </div>\r\n\r\n <ng-template #navigations>\r\n <abp-routes\r\n *abpReplaceableTemplate=\"{\r\n componentKey: service.routesComponentKey,\r\n inputs: {\r\n smallScreen: { value: service.smallScreen }\r\n }\r\n }\"\r\n class=\"mx-auto\"\r\n [smallScreen]=\"service.smallScreen\"\r\n ></abp-routes>\r\n\r\n <abp-nav-items\r\n *abpReplaceableTemplate=\"{\r\n componentKey: service.navItemsComponentKey\r\n }\"\r\n ></abp-nav-items>\r\n </ng-template>\r\n </div>\r\n </div>\r\n</nav>\r\n\r\n<!-- [@slideFromBottom]=\"outlet.isActivated && outlet.activatedRoute?.routeConfig?.path\" TODO: throws ExpressionChangedAfterItHasBeenCheck when animation is active. It should be fixed -->\r\n<div class=\"container\">\r\n <abp-page-alert-container></abp-page-alert-container>\r\n\r\n <router-outlet #outlet=\"outlet\"></router-outlet>\r\n</div>\r\n", components: [{ type: i2.LogoComponent, selector: "abp-logo" }, { type: i3.RoutesComponent, selector: "abp-routes", inputs: ["smallScreen"] }, { type: i4.NavItemsComponent, selector: "abp-nav-items" }, { type: i5.PageAlertContainerComponent, selector: "abp-page-alert-container" }], directives: [{ type: i6.NgbNavbar, selector: ".navbar" }, { type: i7.ReplaceableTemplateDirective, selector: "[abpReplaceableTemplate]", inputs: ["abpReplaceableTemplate"] }, { type: i8.NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet"] }, { type: i8.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { type: i9.RouterOutlet, selector: "router-outlet", outputs: ["activate", "deactivate"], exportAs: ["outlet"] }], animations: [slideFromBottom, collapseWithMargin] });
27
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.13", ngImport: i0, type: ApplicationLayoutComponent, decorators: [{
28
- type: Component,
29
- args: [{
30
- selector: 'abp-layout-application',
31
- templateUrl: './application-layout.component.html',
32
- animations: [slideFromBottom, collapseWithMargin],
33
- providers: [LayoutService, SubscriptionService],
34
- }]
35
- }], ctorParameters: function () { return [{ type: i1.LayoutService }]; } });
36
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYXBwbGljYXRpb24tbGF5b3V0LmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uL3BhY2thZ2VzL3RoZW1lLWJhc2ljL3NyYy9saWIvY29tcG9uZW50cy9hcHBsaWNhdGlvbi1sYXlvdXQvYXBwbGljYXRpb24tbGF5b3V0LmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uLy4uLy4uL3BhY2thZ2VzL3RoZW1lLWJhc2ljL3NyYy9saWIvY29tcG9uZW50cy9hcHBsaWNhdGlvbi1sYXlvdXQvYXBwbGljYXRpb24tbGF5b3V0LmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBZSxtQkFBbUIsRUFBRSxNQUFNLGNBQWMsQ0FBQztBQUNoRSxPQUFPLEVBQUUsa0JBQWtCLEVBQUUsZUFBZSxFQUFFLE1BQU0sc0JBQXNCLENBQUM7QUFDM0UsT0FBTyxFQUFpQixTQUFTLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDekQsT0FBTyxFQUFFLGFBQWEsRUFBRSxNQUFNLCtCQUErQixDQUFDOzs7Ozs7Ozs7OztBQVE5RCxNQUFNLE9BQU8sMEJBQTBCO0lBSXJDLFlBQW1CLE9BQXNCO1FBQXRCLFlBQU8sR0FBUCxPQUFPLENBQWU7SUFBRyxDQUFDO0lBRTdDLGVBQWU7UUFDYixJQUFJLENBQUMsT0FBTyxDQUFDLG1CQUFtQixFQUFFLENBQUM7SUFDckMsQ0FBQzs7QUFQRCxpQ0FBaUM7QUFDMUIsK0JBQUksbUNBQTJCO3dIQUYzQiwwQkFBMEI7NEdBQTFCLDBCQUEwQixpREFGMUIsQ0FBQyxhQUFhLEVBQUUsbUJBQW1CLENBQUMsMEJDVGpELDg3REFrREEsa3hCRDFDYyxDQUFDLGVBQWUsRUFBRSxrQkFBa0IsQ0FBQzs0RkFHdEMsMEJBQTBCO2tCQU50QyxTQUFTO21CQUFDO29CQUNULFFBQVEsRUFBRSx3QkFBd0I7b0JBQ2xDLFdBQVcsRUFBRSxxQ0FBcUM7b0JBQ2xELFVBQVUsRUFBRSxDQUFDLGVBQWUsRUFBRSxrQkFBa0IsQ0FBQztvQkFDakQsU0FBUyxFQUFFLENBQUMsYUFBYSxFQUFFLG1CQUFtQixDQUFDO2lCQUNoRCIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IGVMYXlvdXRUeXBlLCBTdWJzY3JpcHRpb25TZXJ2aWNlIH0gZnJvbSAnQGFicC9uZy5jb3JlJztcclxuaW1wb3J0IHsgY29sbGFwc2VXaXRoTWFyZ2luLCBzbGlkZUZyb21Cb3R0b20gfSBmcm9tICdAYWJwL25nLnRoZW1lLnNoYXJlZCc7XHJcbmltcG9ydCB7IEFmdGVyVmlld0luaXQsIENvbXBvbmVudCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xyXG5pbXBvcnQgeyBMYXlvdXRTZXJ2aWNlIH0gZnJvbSAnLi4vLi4vc2VydmljZXMvbGF5b3V0LnNlcnZpY2UnO1xyXG5cclxuQENvbXBvbmVudCh7XHJcbiAgc2VsZWN0b3I6ICdhYnAtbGF5b3V0LWFwcGxpY2F0aW9uJyxcclxuICB0ZW1wbGF0ZVVybDogJy4vYXBwbGljYXRpb24tbGF5b3V0LmNvbXBvbmVudC5odG1sJyxcclxuICBhbmltYXRpb25zOiBbc2xpZGVGcm9tQm90dG9tLCBjb2xsYXBzZVdpdGhNYXJnaW5dLFxyXG4gIHByb3ZpZGVyczogW0xheW91dFNlcnZpY2UsIFN1YnNjcmlwdGlvblNlcnZpY2VdLFxyXG59KVxyXG5leHBvcnQgY2xhc3MgQXBwbGljYXRpb25MYXlvdXRDb21wb25lbnQgaW1wbGVtZW50cyBBZnRlclZpZXdJbml0IHtcclxuICAvLyByZXF1aXJlZCBmb3IgZHluYW1pYyBjb21wb25lbnRcclxuICBzdGF0aWMgdHlwZSA9IGVMYXlvdXRUeXBlLmFwcGxpY2F0aW9uO1xyXG5cclxuICBjb25zdHJ1Y3RvcihwdWJsaWMgc2VydmljZTogTGF5b3V0U2VydmljZSkge31cclxuXHJcbiAgbmdBZnRlclZpZXdJbml0KCkge1xyXG4gICAgdGhpcy5zZXJ2aWNlLnN1YnNjcmliZVdpbmRvd1NpemUoKTtcclxuICB9XHJcbn1cclxuIiwiPG5hdlxyXG4gIGNsYXNzPVwibmF2YmFyIG5hdmJhci1leHBhbmQtbGcgbmF2YmFyLWRhcmsgYmctZGFyayBzaGFkb3ctc20gZmxleC1jb2x1bW4gZmxleC1tZC1yb3cgbWItNFwiXHJcbiAgaWQ9XCJtYWluLW5hdmJhclwiXHJcbiAgc3R5bGU9XCJtaW4taGVpZ2h0OiA0cmVtXCJcclxuPlxyXG4gIDxkaXYgY2xhc3M9XCJjb250YWluZXJcIj5cclxuICAgIDxhYnAtbG9nbyAqYWJwUmVwbGFjZWFibGVUZW1wbGF0ZT1cInsgY29tcG9uZW50S2V5OiBzZXJ2aWNlLmxvZ29Db21wb25lbnRLZXkgfVwiPjwvYWJwLWxvZ28+XHJcbiAgICA8YnV0dG9uXHJcbiAgICAgIGNsYXNzPVwibmF2YmFyLXRvZ2dsZXJcIlxyXG4gICAgICB0eXBlPVwiYnV0dG9uXCJcclxuICAgICAgW2F0dHIuYXJpYS1leHBhbmRlZF09XCIhc2VydmljZS5pc0NvbGxhcHNlZFwiXHJcbiAgICAgIChjbGljayk9XCJzZXJ2aWNlLmlzQ29sbGFwc2VkID0gIXNlcnZpY2UuaXNDb2xsYXBzZWRcIlxyXG4gICAgPlxyXG4gICAgICA8c3BhbiBjbGFzcz1cIm5hdmJhci10b2dnbGVyLWljb25cIj48L3NwYW4+XHJcbiAgICA8L2J1dHRvbj5cclxuICAgIDxkaXYgY2xhc3M9XCJuYXZiYXItY29sbGFwc2VcIiBbY2xhc3Mub3ZlcmZsb3ctaGlkZGVuXT1cInNlcnZpY2Uuc21hbGxTY3JlZW5cIiBpZD1cIm1haW4tbmF2YmFyLWNvbGxhcHNlXCI+XHJcbiAgICAgIDxuZy1jb250YWluZXIgKm5nVGVtcGxhdGVPdXRsZXQ9XCIhc2VydmljZS5zbWFsbFNjcmVlbiA/IG5hdmlnYXRpb25zIDogbnVsbFwiPjwvbmctY29udGFpbmVyPlxyXG5cclxuICAgICAgPGRpdiAqbmdJZj1cInNlcnZpY2Uuc21hbGxTY3JlZW5cIiBbQGNvbGxhcHNlV2l0aE1hcmdpbl09XCJzZXJ2aWNlLmlzQ29sbGFwc2VkID8gJ2NvbGxhcHNlZCcgOiAnZXhwYW5kZWQnXCI+XHJcbiAgICAgICAgPG5nLWNvbnRhaW5lciAqbmdUZW1wbGF0ZU91dGxldD1cIm5hdmlnYXRpb25zXCI+PC9uZy1jb250YWluZXI+XHJcbiAgICAgIDwvZGl2PlxyXG5cclxuICAgICAgPG5nLXRlbXBsYXRlICNuYXZpZ2F0aW9ucz5cclxuICAgICAgICA8YWJwLXJvdXRlc1xyXG4gICAgICAgICAgKmFicFJlcGxhY2VhYmxlVGVtcGxhdGU9XCJ7XHJcbiAgICAgICAgICAgIGNvbXBvbmVudEtleTogc2VydmljZS5yb3V0ZXNDb21wb25lbnRLZXksXHJcbiAgICAgICAgICAgIGlucHV0czoge1xyXG4gICAgICAgICAgICAgIHNtYWxsU2NyZWVuOiB7IHZhbHVlOiBzZXJ2aWNlLnNtYWxsU2NyZWVuIH1cclxuICAgICAgICAgICAgfVxyXG4gICAgICAgICAgfVwiXHJcbiAgICAgICAgICBjbGFzcz1cIm14LWF1dG9cIlxyXG4gICAgICAgICAgW3NtYWxsU2NyZWVuXT1cInNlcnZpY2Uuc21hbGxTY3JlZW5cIlxyXG4gICAgICAgID48L2FicC1yb3V0ZXM+XHJcblxyXG4gICAgICAgIDxhYnAtbmF2LWl0ZW1zXHJcbiAgICAgICAgICAqYWJwUmVwbGFjZWFibGVUZW1wbGF0ZT1cIntcclxuICAgICAgICAgICAgY29tcG9uZW50S2V5OiBzZXJ2aWNlLm5hdkl0ZW1zQ29tcG9uZW50S2V5XHJcbiAgICAgICAgICB9XCJcclxuICAgICAgICA+PC9hYnAtbmF2LWl0ZW1zPlxyXG4gICAgICA8L25nLXRlbXBsYXRlPlxyXG4gICAgPC9kaXY+XHJcbiAgPC9kaXY+XHJcbjwvbmF2PlxyXG5cclxuPCEtLSBbQHNsaWRlRnJvbUJvdHRvbV09XCJvdXRsZXQuaXNBY3RpdmF0ZWQgJiYgb3V0bGV0LmFjdGl2YXRlZFJvdXRlPy5yb3V0ZUNvbmZpZz8ucGF0aFwiIFRPRE86IHRocm93cyBFeHByZXNzaW9uQ2hhbmdlZEFmdGVySXRIYXNCZWVuQ2hlY2sgd2hlbiBhbmltYXRpb24gaXMgYWN0aXZlLiBJdCBzaG91bGQgYmUgZml4ZWQgLS0+XHJcbjxkaXYgY2xhc3M9XCJjb250YWluZXJcIj5cclxuICA8YWJwLXBhZ2UtYWxlcnQtY29udGFpbmVyPjwvYWJwLXBhZ2UtYWxlcnQtY29udGFpbmVyPlxyXG5cclxuICA8cm91dGVyLW91dGxldCAjb3V0bGV0PVwib3V0bGV0XCI+PC9yb3V0ZXItb3V0bGV0PlxyXG48L2Rpdj5cclxuIl19
@@ -1,38 +0,0 @@
1
- import { AuthService, ConfigStateService, NAVIGATE_TO_MANAGE_PROFILE, SessionStateService, } from '@abp/ng.core';
2
- import { Component, Inject } 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 "@ng-bootstrap/ng-bootstrap";
7
- export class CurrentUserComponent {
8
- constructor(navigateToManageProfile, authService, configState, sessionState) {
9
- this.navigateToManageProfile = navigateToManageProfile;
10
- this.authService = authService;
11
- this.configState = configState;
12
- this.sessionState = sessionState;
13
- this.currentUser$ = this.configState.getOne$('currentUser');
14
- this.selectedTenant$ = this.sessionState.getTenant$();
15
- }
16
- get smallScreen() {
17
- return window.innerWidth < 992;
18
- }
19
- navigateToLogin() {
20
- this.authService.navigateToLogin();
21
- }
22
- logout() {
23
- this.authService.logout().subscribe();
24
- }
25
- }
26
- CurrentUserComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "12.2.13", ngImport: i0, type: CurrentUserComponent, deps: [{ token: NAVIGATE_TO_MANAGE_PROFILE }, { token: i1.AuthService }, { token: i1.ConfigStateService }, { token: i1.SessionStateService }], target: i0.ɵɵFactoryTarget.Component });
27
- CurrentUserComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "12.2.13", type: CurrentUserComponent, selector: "abp-current-user", ngImport: i0, template: "<ng-template #loginBtn>\r\n <a role=\"button\" class=\"nav-link pointer\" (click)=\"navigateToLogin()\">{{\r\n 'AbpAccount::Login' | abpLocalization\r\n }}</a>\r\n</ng-template>\r\n<div\r\n *ngIf=\"(currentUser$ | async)?.isAuthenticated; else loginBtn\"\r\n ngbDropdown\r\n class=\"dropdown\"\r\n #currentUserDropdown=\"ngbDropdown\"\r\n display=\"static\"\r\n>\r\n <a\r\n ngbDropdownToggle\r\n class=\"nav-link\"\r\n href=\"javascript:void(0)\"\r\n role=\"button\"\r\n id=\"dropdownMenuLink\"\r\n data-toggle=\"dropdown\"\r\n aria-haspopup=\"true\"\r\n aria-expanded=\"false\"\r\n >\r\n <small *ngIf=\"(selectedTenant$ | async)?.name as tenantName\"\r\n ><i>{{ tenantName }}</i\r\n >\\</small\r\n >\r\n <strong>{{ (currentUser$ | async)?.userName }}</strong>\r\n </a>\r\n <div\r\n class=\"dropdown-menu dropdown-menu-end border-0 shadow-sm\"\r\n aria-labelledby=\"dropdownMenuLink\"\r\n [class.d-block]=\"smallScreen && currentUserDropdown.isOpen()\"\r\n >\r\n <a class=\"dropdown-item pointer\" (click)=\"navigateToManageProfile()\"\r\n ><i class=\"fa fa-cog me-1\"></i>{{ 'AbpAccount::MyAccount' | abpLocalization }}</a\r\n >\r\n <a class=\"dropdown-item\" href=\"javascript:void(0)\" (click)=\"logout()\"\r\n ><i class=\"fa fa-power-off me-1\"></i>{{ 'AbpUi::Logout' | abpLocalization }}</a\r\n >\r\n </div>\r\n</div>\r\n", directives: [{ type: i2.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { type: i3.NgbDropdown, selector: "[ngbDropdown]", inputs: ["open", "placement", "container", "autoClose", "display", "dropdownClass"], outputs: ["openChange"], exportAs: ["ngbDropdown"] }, { type: i3.NgbDropdownToggle, selector: "[ngbDropdownToggle]" }], pipes: { "abpLocalization": i1.LocalizationPipe, "async": i2.AsyncPipe } });
28
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.13", ngImport: i0, type: CurrentUserComponent, decorators: [{
29
- type: Component,
30
- args: [{
31
- selector: 'abp-current-user',
32
- templateUrl: './current-user.component.html',
33
- }]
34
- }], ctorParameters: function () { return [{ type: undefined, decorators: [{
35
- type: Inject,
36
- args: [NAVIGATE_TO_MANAGE_PROFILE]
37
- }] }, { type: i1.AuthService }, { type: i1.ConfigStateService }, { type: i1.SessionStateService }]; } });
38
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY3VycmVudC11c2VyLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uL3BhY2thZ2VzL3RoZW1lLWJhc2ljL3NyYy9saWIvY29tcG9uZW50cy9uYXYtaXRlbXMvY3VycmVudC11c2VyLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uLy4uLy4uL3BhY2thZ2VzL3RoZW1lLWJhc2ljL3NyYy9saWIvY29tcG9uZW50cy9uYXYtaXRlbXMvY3VycmVudC11c2VyLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFDTCxXQUFXLEVBQ1gsa0JBQWtCLEVBRWxCLDBCQUEwQixFQUMxQixtQkFBbUIsR0FDcEIsTUFBTSxjQUFjLENBQUM7QUFDdEIsT0FBTyxFQUFFLFNBQVMsRUFBRSxNQUFNLEVBQUUsTUFBTSxlQUFlLENBQUM7Ozs7O0FBT2xELE1BQU0sT0FBTyxvQkFBb0I7SUFRL0IsWUFDNkMsdUJBQW1DLEVBQ3RFLFdBQXdCLEVBQ3hCLFdBQStCLEVBQy9CLFlBQWlDO1FBSEUsNEJBQXVCLEdBQXZCLHVCQUF1QixDQUFZO1FBQ3RFLGdCQUFXLEdBQVgsV0FBVyxDQUFhO1FBQ3hCLGdCQUFXLEdBQVgsV0FBVyxDQUFvQjtRQUMvQixpQkFBWSxHQUFaLFlBQVksQ0FBcUI7UUFYM0MsaUJBQVksR0FBK0IsSUFBSSxDQUFDLFdBQVcsQ0FBQyxPQUFPLENBQUMsYUFBYSxDQUFDLENBQUM7UUFDbkYsb0JBQWUsR0FBRyxJQUFJLENBQUMsWUFBWSxDQUFDLFVBQVUsRUFBRSxDQUFDO0lBVzlDLENBQUM7SUFUSixJQUFJLFdBQVc7UUFDYixPQUFPLE1BQU0sQ0FBQyxVQUFVLEdBQUcsR0FBRyxDQUFDO0lBQ2pDLENBQUM7SUFTRCxlQUFlO1FBQ2IsSUFBSSxDQUFDLFdBQVcsQ0FBQyxlQUFlLEVBQUUsQ0FBQztJQUNyQyxDQUFDO0lBRUQsTUFBTTtRQUNKLElBQUksQ0FBQyxXQUFXLENBQUMsTUFBTSxFQUFFLENBQUMsU0FBUyxFQUFFLENBQUM7SUFDeEMsQ0FBQzs7a0hBckJVLG9CQUFvQixrQkFTckIsMEJBQTBCO3NHQVR6QixvQkFBb0Isd0RDZGpDLDA0Q0F5Q0E7NEZEM0JhLG9CQUFvQjtrQkFKaEMsU0FBUzttQkFBQztvQkFDVCxRQUFRLEVBQUUsa0JBQWtCO29CQUM1QixXQUFXLEVBQUUsK0JBQStCO2lCQUM3Qzs7MEJBVUksTUFBTTsyQkFBQywwQkFBMEIiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge1xyXG4gIEF1dGhTZXJ2aWNlLFxyXG4gIENvbmZpZ1N0YXRlU2VydmljZSxcclxuICBDdXJyZW50VXNlckR0byxcclxuICBOQVZJR0FURV9UT19NQU5BR0VfUFJPRklMRSxcclxuICBTZXNzaW9uU3RhdGVTZXJ2aWNlLFxyXG59IGZyb20gJ0BhYnAvbmcuY29yZSc7XHJcbmltcG9ydCB7IENvbXBvbmVudCwgSW5qZWN0IH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XHJcbmltcG9ydCB7IE9ic2VydmFibGUgfSBmcm9tICdyeGpzJztcclxuXHJcbkBDb21wb25lbnQoe1xyXG4gIHNlbGVjdG9yOiAnYWJwLWN1cnJlbnQtdXNlcicsXHJcbiAgdGVtcGxhdGVVcmw6ICcuL2N1cnJlbnQtdXNlci5jb21wb25lbnQuaHRtbCcsXHJcbn0pXHJcbmV4cG9ydCBjbGFzcyBDdXJyZW50VXNlckNvbXBvbmVudCB7XHJcbiAgY3VycmVudFVzZXIkOiBPYnNlcnZhYmxlPEN1cnJlbnRVc2VyRHRvPiA9IHRoaXMuY29uZmlnU3RhdGUuZ2V0T25lJCgnY3VycmVudFVzZXInKTtcclxuICBzZWxlY3RlZFRlbmFudCQgPSB0aGlzLnNlc3Npb25TdGF0ZS5nZXRUZW5hbnQkKCk7XHJcblxyXG4gIGdldCBzbWFsbFNjcmVlbigpOiBib29sZWFuIHtcclxuICAgIHJldHVybiB3aW5kb3cuaW5uZXJXaWR0aCA8IDk5MjtcclxuICB9XHJcblxyXG4gIGNvbnN0cnVjdG9yKFxyXG4gICAgQEluamVjdChOQVZJR0FURV9UT19NQU5BR0VfUFJPRklMRSkgcHVibGljIG5hdmlnYXRlVG9NYW5hZ2VQcm9maWxlOiAoKSA9PiB2b2lkLFxyXG4gICAgcHJpdmF0ZSBhdXRoU2VydmljZTogQXV0aFNlcnZpY2UsXHJcbiAgICBwcml2YXRlIGNvbmZpZ1N0YXRlOiBDb25maWdTdGF0ZVNlcnZpY2UsXHJcbiAgICBwcml2YXRlIHNlc3Npb25TdGF0ZTogU2Vzc2lvblN0YXRlU2VydmljZSxcclxuICApIHt9XHJcblxyXG4gIG5hdmlnYXRlVG9Mb2dpbigpIHtcclxuICAgIHRoaXMuYXV0aFNlcnZpY2UubmF2aWdhdGVUb0xvZ2luKCk7XHJcbiAgfVxyXG5cclxuICBsb2dvdXQoKSB7XHJcbiAgICB0aGlzLmF1dGhTZXJ2aWNlLmxvZ291dCgpLnN1YnNjcmliZSgpO1xyXG4gIH1cclxufVxyXG4iLCI8bmctdGVtcGxhdGUgI2xvZ2luQnRuPlxyXG4gIDxhIHJvbGU9XCJidXR0b25cIiBjbGFzcz1cIm5hdi1saW5rIHBvaW50ZXJcIiAoY2xpY2spPVwibmF2aWdhdGVUb0xvZ2luKClcIj57e1xyXG4gICAgJ0FicEFjY291bnQ6OkxvZ2luJyB8IGFicExvY2FsaXphdGlvblxyXG4gIH19PC9hPlxyXG48L25nLXRlbXBsYXRlPlxyXG48ZGl2XHJcbiAgKm5nSWY9XCIoY3VycmVudFVzZXIkIHwgYXN5bmMpPy5pc0F1dGhlbnRpY2F0ZWQ7IGVsc2UgbG9naW5CdG5cIlxyXG4gIG5nYkRyb3Bkb3duXHJcbiAgY2xhc3M9XCJkcm9wZG93blwiXHJcbiAgI2N1cnJlbnRVc2VyRHJvcGRvd249XCJuZ2JEcm9wZG93blwiXHJcbiAgZGlzcGxheT1cInN0YXRpY1wiXHJcbj5cclxuICA8YVxyXG4gICAgbmdiRHJvcGRvd25Ub2dnbGVcclxuICAgIGNsYXNzPVwibmF2LWxpbmtcIlxyXG4gICAgaHJlZj1cImphdmFzY3JpcHQ6dm9pZCgwKVwiXHJcbiAgICByb2xlPVwiYnV0dG9uXCJcclxuICAgIGlkPVwiZHJvcGRvd25NZW51TGlua1wiXHJcbiAgICBkYXRhLXRvZ2dsZT1cImRyb3Bkb3duXCJcclxuICAgIGFyaWEtaGFzcG9wdXA9XCJ0cnVlXCJcclxuICAgIGFyaWEtZXhwYW5kZWQ9XCJmYWxzZVwiXHJcbiAgPlxyXG4gICAgPHNtYWxsICpuZ0lmPVwiKHNlbGVjdGVkVGVuYW50JCB8IGFzeW5jKT8ubmFtZSBhcyB0ZW5hbnROYW1lXCJcclxuICAgICAgPjxpPnt7IHRlbmFudE5hbWUgfX08L2lcclxuICAgICAgPlxcPC9zbWFsbFxyXG4gICAgPlxyXG4gICAgPHN0cm9uZz57eyAoY3VycmVudFVzZXIkIHwgYXN5bmMpPy51c2VyTmFtZSB9fTwvc3Ryb25nPlxyXG4gIDwvYT5cclxuICA8ZGl2XHJcbiAgICBjbGFzcz1cImRyb3Bkb3duLW1lbnUgZHJvcGRvd24tbWVudS1lbmQgYm9yZGVyLTAgc2hhZG93LXNtXCJcclxuICAgIGFyaWEtbGFiZWxsZWRieT1cImRyb3Bkb3duTWVudUxpbmtcIlxyXG4gICAgW2NsYXNzLmQtYmxvY2tdPVwic21hbGxTY3JlZW4gJiYgY3VycmVudFVzZXJEcm9wZG93bi5pc09wZW4oKVwiXHJcbiAgPlxyXG4gICAgPGEgY2xhc3M9XCJkcm9wZG93bi1pdGVtIHBvaW50ZXJcIiAoY2xpY2spPVwibmF2aWdhdGVUb01hbmFnZVByb2ZpbGUoKVwiXHJcbiAgICAgID48aSBjbGFzcz1cImZhIGZhLWNvZyBtZS0xXCI+PC9pPnt7ICdBYnBBY2NvdW50OjpNeUFjY291bnQnIHwgYWJwTG9jYWxpemF0aW9uIH19PC9hXHJcbiAgICA+XHJcbiAgICA8YSBjbGFzcz1cImRyb3Bkb3duLWl0ZW1cIiBocmVmPVwiamF2YXNjcmlwdDp2b2lkKDApXCIgKGNsaWNrKT1cImxvZ291dCgpXCJcclxuICAgICAgPjxpIGNsYXNzPVwiZmEgZmEtcG93ZXItb2ZmIG1lLTFcIj48L2k+e3sgJ0FicFVpOjpMb2dvdXQnIHwgYWJwTG9jYWxpemF0aW9uIH19PC9hXHJcbiAgICA+XHJcbiAgPC9kaXY+XHJcbjwvZGl2PlxyXG4iXX0=
@@ -1,107 +0,0 @@
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
- export class LanguagesComponent {
9
- constructor(sessionState, configState) {
10
- this.sessionState = sessionState;
11
- this.configState = configState;
12
- this.languages$ = this.configState.getDeep$('localization.languages');
13
- }
14
- get smallScreen() {
15
- return window.innerWidth < 992;
16
- }
17
- get defaultLanguage$() {
18
- return this.languages$.pipe(map(languages => { var _a; return ((_a = languages === null || languages === void 0 ? void 0 : languages.find(lang => lang.cultureName === this.selectedLangCulture)) === null || _a === void 0 ? void 0 : _a.displayName) || ''; }));
19
- }
20
- get dropdownLanguages$() {
21
- return this.languages$.pipe(map(languages => (languages === null || languages === void 0 ? void 0 : languages.filter(lang => lang.cultureName !== this.selectedLangCulture)) || []));
22
- }
23
- get selectedLangCulture() {
24
- return this.sessionState.getLanguage();
25
- }
26
- onChangeLang(cultureName) {
27
- this.sessionState.setLanguage(cultureName);
28
- }
29
- }
30
- LanguagesComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "12.2.13", ngImport: i0, type: LanguagesComponent, deps: [{ token: i1.SessionStateService }, { token: i1.ConfigStateService }], target: i0.ɵɵFactoryTarget.Component });
31
- LanguagesComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "12.2.13", type: LanguagesComponent, selector: "abp-languages", ngImport: i0, template: `
32
- <div
33
- *ngIf="((dropdownLanguages$ | async)?.length || 0) > 0"
34
- class="dropdown"
35
- ngbDropdown
36
- #languageDropdown="ngbDropdown"
37
- display="static"
38
- >
39
- <a
40
- ngbDropdownToggle
41
- class="nav-link"
42
- href="javascript:void(0)"
43
- role="button"
44
- id="dropdownMenuLink"
45
- data-toggle="dropdown"
46
- aria-haspopup="true"
47
- aria-expanded="false"
48
- >
49
- {{ defaultLanguage$ | async }}
50
- </a>
51
- <div
52
- class="dropdown-menu dropdown-menu-end border-0 shadow-sm"
53
- aria-labelledby="dropdownMenuLink"
54
- [class.d-block]="smallScreen && languageDropdown.isOpen()"
55
- >
56
- <a
57
- *ngFor="let lang of dropdownLanguages$ | async"
58
- href="javascript:void(0)"
59
- class="dropdown-item"
60
- (click)="onChangeLang(lang.cultureName || '')"
61
- >{{ lang?.displayName }}</a
62
- >
63
- </div>
64
- </div>
65
- `, isInline: true, directives: [{ type: i2.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { type: i3.NgbDropdown, selector: "[ngbDropdown]", inputs: ["open", "placement", "container", "autoClose", "display", "dropdownClass"], outputs: ["openChange"], exportAs: ["ngbDropdown"] }, { type: i3.NgbDropdownToggle, selector: "[ngbDropdownToggle]" }, { type: i2.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }], pipes: { "async": i2.AsyncPipe } });
66
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.13", ngImport: i0, type: LanguagesComponent, decorators: [{
67
- type: Component,
68
- args: [{
69
- selector: 'abp-languages',
70
- template: `
71
- <div
72
- *ngIf="((dropdownLanguages$ | async)?.length || 0) > 0"
73
- class="dropdown"
74
- ngbDropdown
75
- #languageDropdown="ngbDropdown"
76
- display="static"
77
- >
78
- <a
79
- ngbDropdownToggle
80
- class="nav-link"
81
- href="javascript:void(0)"
82
- role="button"
83
- id="dropdownMenuLink"
84
- data-toggle="dropdown"
85
- aria-haspopup="true"
86
- aria-expanded="false"
87
- >
88
- {{ defaultLanguage$ | async }}
89
- </a>
90
- <div
91
- class="dropdown-menu dropdown-menu-end border-0 shadow-sm"
92
- aria-labelledby="dropdownMenuLink"
93
- [class.d-block]="smallScreen && languageDropdown.isOpen()"
94
- >
95
- <a
96
- *ngFor="let lang of dropdownLanguages$ | async"
97
- href="javascript:void(0)"
98
- class="dropdown-item"
99
- (click)="onChangeLang(lang.cultureName || '')"
100
- >{{ lang?.displayName }}</a
101
- >
102
- </div>
103
- </div>
104
- `,
105
- }]
106
- }], ctorParameters: function () { return [{ type: i1.SessionStateService }, { type: i1.ConfigStateService }]; } });
107
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibGFuZ3VhZ2VzLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uL3BhY2thZ2VzL3RoZW1lLWJhc2ljL3NyYy9saWIvY29tcG9uZW50cy9uYXYtaXRlbXMvbGFuZ3VhZ2VzLmNvbXBvbmVudC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsa0JBQWtCLEVBQWdCLG1CQUFtQixFQUFFLE1BQU0sY0FBYyxDQUFDO0FBQ3JGLE9BQU8sRUFBRSxTQUFTLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFFMUMsT0FBTyxFQUFFLEdBQUcsRUFBRSxNQUFNLGdCQUFnQixDQUFDOzs7OztBQXdDckMsTUFBTSxPQUFPLGtCQUFrQjtJQTRCN0IsWUFBb0IsWUFBaUMsRUFBVSxXQUErQjtRQUExRSxpQkFBWSxHQUFaLFlBQVksQ0FBcUI7UUFBVSxnQkFBVyxHQUFYLFdBQVcsQ0FBb0I7UUF2QjlGLGVBQVUsR0FBK0IsSUFBSSxDQUFDLFdBQVcsQ0FBQyxRQUFRLENBQUMsd0JBQXdCLENBQUMsQ0FBQztJQXVCSSxDQUFDO0lBM0JsRyxJQUFJLFdBQVc7UUFDYixPQUFPLE1BQU0sQ0FBQyxVQUFVLEdBQUcsR0FBRyxDQUFDO0lBQ2pDLENBQUM7SUFJRCxJQUFJLGdCQUFnQjtRQUNsQixPQUFPLElBQUksQ0FBQyxVQUFVLENBQUMsSUFBSSxDQUN6QixHQUFHLENBQ0QsU0FBUyxDQUFDLEVBQUUsV0FDVixPQUFBLENBQUEsTUFBQSxTQUFTLGFBQVQsU0FBUyx1QkFBVCxTQUFTLENBQUUsSUFBSSxDQUFDLElBQUksQ0FBQyxFQUFFLENBQUMsSUFBSSxDQUFDLFdBQVcsS0FBSyxJQUFJLENBQUMsbUJBQW1CLENBQUMsMENBQUUsV0FBVyxLQUFJLEVBQUUsQ0FBQSxFQUFBLENBQzVGLENBQ0YsQ0FBQztJQUNKLENBQUM7SUFFRCxJQUFJLGtCQUFrQjtRQUNwQixPQUFPLElBQUksQ0FBQyxVQUFVLENBQUMsSUFBSSxDQUN6QixHQUFHLENBQ0QsU0FBUyxDQUFDLEVBQUUsQ0FBQyxDQUFBLFNBQVMsYUFBVCxTQUFTLHVCQUFULFNBQVMsQ0FBRSxNQUFNLENBQUMsSUFBSSxDQUFDLEVBQUUsQ0FBQyxJQUFJLENBQUMsV0FBVyxLQUFLLElBQUksQ0FBQyxtQkFBbUIsQ0FBQyxLQUFJLEVBQUUsQ0FDNUYsQ0FDRixDQUFDO0lBQ0osQ0FBQztJQUVELElBQUksbUJBQW1CO1FBQ3JCLE9BQU8sSUFBSSxDQUFDLFlBQVksQ0FBQyxXQUFXLEVBQUUsQ0FBQztJQUN6QyxDQUFDO0lBSUQsWUFBWSxDQUFDLFdBQW1CO1FBQzlCLElBQUksQ0FBQyxZQUFZLENBQUMsV0FBVyxDQUFDLFdBQVcsQ0FBQyxDQUFDO0lBQzdDLENBQUM7O2dIQWhDVSxrQkFBa0I7b0dBQWxCLGtCQUFrQixxREFwQ25COzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O0dBa0NUOzRGQUVVLGtCQUFrQjtrQkF0QzlCLFNBQVM7bUJBQUM7b0JBQ1QsUUFBUSxFQUFFLGVBQWU7b0JBQ3pCLFFBQVEsRUFBRTs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztHQWtDVDtpQkFDRiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENvbmZpZ1N0YXRlU2VydmljZSwgTGFuZ3VhZ2VJbmZvLCBTZXNzaW9uU3RhdGVTZXJ2aWNlIH0gZnJvbSAnQGFicC9uZy5jb3JlJztcclxuaW1wb3J0IHsgQ29tcG9uZW50IH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XHJcbmltcG9ydCB7IE9ic2VydmFibGUgfSBmcm9tICdyeGpzJztcclxuaW1wb3J0IHsgbWFwIH0gZnJvbSAncnhqcy9vcGVyYXRvcnMnO1xyXG5cclxuQENvbXBvbmVudCh7XHJcbiAgc2VsZWN0b3I6ICdhYnAtbGFuZ3VhZ2VzJyxcclxuICB0ZW1wbGF0ZTogYFxyXG4gICAgPGRpdlxyXG4gICAgICAqbmdJZj1cIigoZHJvcGRvd25MYW5ndWFnZXMkIHwgYXN5bmMpPy5sZW5ndGggfHwgMCkgPiAwXCJcclxuICAgICAgY2xhc3M9XCJkcm9wZG93blwiXHJcbiAgICAgIG5nYkRyb3Bkb3duXHJcbiAgICAgICNsYW5ndWFnZURyb3Bkb3duPVwibmdiRHJvcGRvd25cIlxyXG4gICAgICBkaXNwbGF5PVwic3RhdGljXCJcclxuICAgID5cclxuICAgICAgPGFcclxuICAgICAgICBuZ2JEcm9wZG93blRvZ2dsZVxyXG4gICAgICAgIGNsYXNzPVwibmF2LWxpbmtcIlxyXG4gICAgICAgIGhyZWY9XCJqYXZhc2NyaXB0OnZvaWQoMClcIlxyXG4gICAgICAgIHJvbGU9XCJidXR0b25cIlxyXG4gICAgICAgIGlkPVwiZHJvcGRvd25NZW51TGlua1wiXHJcbiAgICAgICAgZGF0YS10b2dnbGU9XCJkcm9wZG93blwiXHJcbiAgICAgICAgYXJpYS1oYXNwb3B1cD1cInRydWVcIlxyXG4gICAgICAgIGFyaWEtZXhwYW5kZWQ9XCJmYWxzZVwiXHJcbiAgICAgID5cclxuICAgICAgICB7eyBkZWZhdWx0TGFuZ3VhZ2UkIHwgYXN5bmMgfX1cclxuICAgICAgPC9hPlxyXG4gICAgICA8ZGl2XHJcbiAgICAgICAgY2xhc3M9XCJkcm9wZG93bi1tZW51IGRyb3Bkb3duLW1lbnUtZW5kIGJvcmRlci0wIHNoYWRvdy1zbVwiXHJcbiAgICAgICAgYXJpYS1sYWJlbGxlZGJ5PVwiZHJvcGRvd25NZW51TGlua1wiXHJcbiAgICAgICAgW2NsYXNzLmQtYmxvY2tdPVwic21hbGxTY3JlZW4gJiYgbGFuZ3VhZ2VEcm9wZG93bi5pc09wZW4oKVwiXHJcbiAgICAgID5cclxuICAgICAgICA8YVxyXG4gICAgICAgICAgKm5nRm9yPVwibGV0IGxhbmcgb2YgZHJvcGRvd25MYW5ndWFnZXMkIHwgYXN5bmNcIlxyXG4gICAgICAgICAgaHJlZj1cImphdmFzY3JpcHQ6dm9pZCgwKVwiXHJcbiAgICAgICAgICBjbGFzcz1cImRyb3Bkb3duLWl0ZW1cIlxyXG4gICAgICAgICAgKGNsaWNrKT1cIm9uQ2hhbmdlTGFuZyhsYW5nLmN1bHR1cmVOYW1lIHx8ICcnKVwiXHJcbiAgICAgICAgICA+e3sgbGFuZz8uZGlzcGxheU5hbWUgfX08L2FcclxuICAgICAgICA+XHJcbiAgICAgIDwvZGl2PlxyXG4gICAgPC9kaXY+XHJcbiAgYCxcclxufSlcclxuZXhwb3J0IGNsYXNzIExhbmd1YWdlc0NvbXBvbmVudCB7XHJcbiAgZ2V0IHNtYWxsU2NyZWVuKCk6IGJvb2xlYW4ge1xyXG4gICAgcmV0dXJuIHdpbmRvdy5pbm5lcldpZHRoIDwgOTkyO1xyXG4gIH1cclxuXHJcbiAgbGFuZ3VhZ2VzJDogT2JzZXJ2YWJsZTxMYW5ndWFnZUluZm9bXT4gPSB0aGlzLmNvbmZpZ1N0YXRlLmdldERlZXAkKCdsb2NhbGl6YXRpb24ubGFuZ3VhZ2VzJyk7XHJcblxyXG4gIGdldCBkZWZhdWx0TGFuZ3VhZ2UkKCk6IE9ic2VydmFibGU8c3RyaW5nPiB7XHJcbiAgICByZXR1cm4gdGhpcy5sYW5ndWFnZXMkLnBpcGUoXHJcbiAgICAgIG1hcChcclxuICAgICAgICBsYW5ndWFnZXMgPT5cclxuICAgICAgICAgIGxhbmd1YWdlcz8uZmluZChsYW5nID0+IGxhbmcuY3VsdHVyZU5hbWUgPT09IHRoaXMuc2VsZWN0ZWRMYW5nQ3VsdHVyZSk/LmRpc3BsYXlOYW1lIHx8ICcnLFxyXG4gICAgICApLFxyXG4gICAgKTtcclxuICB9XHJcblxyXG4gIGdldCBkcm9wZG93bkxhbmd1YWdlcyQoKTogT2JzZXJ2YWJsZTxMYW5ndWFnZUluZm9bXT4ge1xyXG4gICAgcmV0dXJuIHRoaXMubGFuZ3VhZ2VzJC5waXBlKFxyXG4gICAgICBtYXAoXHJcbiAgICAgICAgbGFuZ3VhZ2VzID0+IGxhbmd1YWdlcz8uZmlsdGVyKGxhbmcgPT4gbGFuZy5jdWx0dXJlTmFtZSAhPT0gdGhpcy5zZWxlY3RlZExhbmdDdWx0dXJlKSB8fCBbXSxcclxuICAgICAgKSxcclxuICAgICk7XHJcbiAgfVxyXG5cclxuICBnZXQgc2VsZWN0ZWRMYW5nQ3VsdHVyZSgpOiBzdHJpbmcge1xyXG4gICAgcmV0dXJuIHRoaXMuc2Vzc2lvblN0YXRlLmdldExhbmd1YWdlKCk7XHJcbiAgfVxyXG5cclxuICBjb25zdHJ1Y3Rvcihwcml2YXRlIHNlc3Npb25TdGF0ZTogU2Vzc2lvblN0YXRlU2VydmljZSwgcHJpdmF0ZSBjb25maWdTdGF0ZTogQ29uZmlnU3RhdGVTZXJ2aWNlKSB7fVxyXG5cclxuICBvbkNoYW5nZUxhbmcoY3VsdHVyZU5hbWU6IHN0cmluZykge1xyXG4gICAgdGhpcy5zZXNzaW9uU3RhdGUuc2V0TGFuZ3VhZ2UoY3VsdHVyZU5hbWUpO1xyXG4gIH1cclxufVxyXG4iXX0=