{"version":3,"file":"volo-abp.ng.theme.lepton.mjs","sources":["../../../../packages/theme-lepton/src/lib/components/page-alert-container/page-alert-container.component.ts","../../../../packages/theme-lepton/src/lib/components/page-alert-container/page-alert-container.component.html","../../../../packages/theme-lepton/src/lib/components/account-layout/account-logo/account-logo.component.ts","../../../../packages/theme-lepton/src/lib/components/account-layout/tenant-box/tenant-box.component.ts","../../../../packages/theme-lepton/src/lib/components/account-layout/tenant-box/tenant-box.component.html","../../../../packages/theme-lepton/src/lib/components/account-layout/auth-wrapper/auth-wrapper.component.ts","../../../../packages/theme-lepton/src/lib/components/account-layout/auth-wrapper/auth-wrapper.component.html","../../../../packages/theme-lepton/src/lib/components/account-layout/account-layout.component.ts","../../../../packages/theme-lepton/src/lib/components/account-layout/account-layout.component.html","../../../../packages/theme-lepton/src/lib/models/layout.ts","../../../../packages/theme-lepton/src/lib/services/layout-state.service.ts","../../../../packages/theme-lepton/src/lib/services/layout.service.ts","../../../../packages/theme-lepton/src/lib/components/logo/logo.component.ts","../../../../packages/theme-lepton/src/lib/components/navbar-mobile/navbar-mobile.component.ts","../../../../packages/theme-lepton/src/lib/components/navbar-mobile/navbar-mobile.component.html","../../../../packages/theme-lepton/src/lib/components/nav-items/nav-items.component.ts","../../../../packages/theme-lepton/src/lib/components/nav-items/nav-items.component.html","../../../../packages/theme-lepton/src/lib/components/navbar/navbar.component.ts","../../../../packages/theme-lepton/src/lib/components/navbar/navbar.component.html","../../../../packages/theme-lepton/src/lib/tokens/routes-content.token.ts","../../../../packages/theme-lepton/src/lib/components/routes/routes.component.ts","../../../../packages/theme-lepton/src/lib/components/routes/routes.component.html","../../../../packages/theme-lepton/src/lib/components/sidebar/sidebar.component.ts","../../../../packages/theme-lepton/src/lib/components/sidebar/sidebar.component.html","../../../../packages/theme-lepton/src/lib/components/header/header.component.ts","../../../../packages/theme-lepton/src/lib/components/header/header.component.html","../../../../packages/theme-lepton/src/lib/components/footer/footer.component.ts","../../../../packages/theme-lepton/src/lib/components/footer/footer.component.html","../../../../packages/theme-lepton/src/lib/components/application-layout/application-layout.component.ts","../../../../packages/theme-lepton/src/lib/components/application-layout/application-layout.component.html","../../../../packages/theme-lepton/src/lib/components/current-user-image/current-user-image.component.ts","../../../../packages/theme-lepton/src/lib/components/empty-layout/empty-layout.component.ts","../../../../packages/theme-lepton/src/lib/components/http-error/http-error.component.ts","../../../../packages/theme-lepton/src/lib/components/http-error/http-error.component.html","../../../../packages/theme-lepton/src/lib/components/nav-items/current-user.component.ts","../../../../packages/theme-lepton/src/lib/components/nav-items/current-user.component.html","../../../../packages/theme-lepton/src/lib/components/nav-items/full-screen.component.ts","../../../../packages/theme-lepton/src/lib/components/nav-items/languages.component.ts","../../../../packages/theme-lepton/src/lib/tokens/custom-style.token.ts","../../../../packages/theme-lepton/src/lib/components/settings/settings.component.ts","../../../../packages/theme-lepton/src/lib/components/settings/settings.component.html","../../../../packages/theme-lepton/src/lib/components/validation-error/validation-error.component.ts","../../../../packages/theme-lepton/src/lib/constants/lepton-constants.ts","../../../../packages/theme-lepton/src/lib/providers/nav-item.provider.ts","../../../../packages/theme-lepton/src/lib/providers/setting-tab.provider.ts","../../../../packages/theme-lepton/src/lib/constants/styles.ts","../../../../packages/theme-lepton/src/lib/providers/styles.provider.ts","../../../../packages/theme-lepton/src/lib/tokens/features.token.ts","../../../../packages/theme-lepton/src/lib/providers/user-menu.provider.ts","../../../../packages/theme-lepton/src/lib/providers/theme-lepton.provider.ts","../../../../packages/theme-lepton/src/lib/theme-lepton.module.ts","../../../../packages/theme-lepton/src/volo-abp.ng.theme.lepton.ts"],"sourcesContent":["import { Component, inject, ViewEncapsulation } from '@angular/core';\r\nimport { PageAlertService } from '@abp/ng.theme.shared';\r\nimport { AsyncPipe } from '@angular/common';\r\nimport { LocalizationPipe } from '@abp/ng.core';\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  imports: [AsyncPipe, LocalizationPipe],\r\n})\r\nexport class PageAlertContainerComponent {\r\n  public service = inject(PageAlertService);\r\n}\r\n","@for (alert of service.alerts$ | async; let i = $index; track i) {\r\n<div class=\"alert alert-{{ alert.type }} fade show\" [class.alert-dismissible]=\"alert.dismissible\" role=\"alert\">\r\n  @if (alert.title) {\r\n  <h4 class=\"alert-heading\">\r\n    {{ alert.title | abpLocalization: alert.titleLocalizationParams }}\r\n  </h4>\r\n  }\r\n  {{ alert.message | abpLocalization: alert.messageLocalizationParams }}\r\n  @if (alert.dismissible) {\r\n  <button type=\"button\" class=\"close\" data-dismiss=\"alert\" aria-label=\"Close\" (click)=\"service.remove(i)\">\r\n    <span aria-hidden=\"true\">&times;</span>\r\n  </button>\r\n  }\r\n</div>\r\n}","import { Component } from '@angular/core';\r\nimport { RouterLink } from '@angular/router';\r\n\r\n@Component({\r\n  selector: 'abp-account-logo',\r\n  template: `\r\n    <div class=\"account-brand p-4 text-center mb-1\">\r\n      <a class=\"navbar-brand\" routerLink=\"/\" alt=\"Logo\"></a>\r\n    </div>\r\n  `,\r\n  imports: [RouterLink],\r\n})\r\nexport class AccountLogoComponent {}\r\n","import { Component, inject } from '@angular/core';\r\nimport { AsyncPipe } from '@angular/common';\r\nimport { FormsModule } from '@angular/forms';\r\nimport { AutofocusDirective, LocalizationPipe } from '@abp/ng.core';\r\nimport { ButtonComponent, ModalCloseDirective, ModalComponent } from '@abp/ng.theme.shared';\r\nimport { TenantBoxService } from '@volo/abp.ng.account.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  imports: [\r\n    FormsModule,\r\n    AutofocusDirective,\r\n    ModalCloseDirective,\r\n    AsyncPipe,\r\n    LocalizationPipe,\r\n    ButtonComponent,\r\n    ModalComponent,\r\n  ],\r\n})\r\nexport class TenantBoxComponent {\r\n  public service = inject(TenantBoxService);\r\n}\r\n","@if ((service.currentTenant$ | async) || {}; as currentTenant) {\r\n  <div class=\"card-header bg-light\">\r\n    <div class=\"tenant-switch-box\">\r\n      <div class=\"row\">\r\n        <div class=\"col pe-1\">\r\n          <h6 class=\"m-0\">\r\n            {{ 'AbpUiMultiTenancy::Tenant' | abpLocalization }}\r\n          </h6>\r\n          <i>{{ currentTenant.name || ('AbpUiMultiTenancy::NotSelected' | abpLocalization) }}</i>\r\n        </div>\r\n\r\n        <div class=\"col-auto ps-1\">\r\n          <a\r\n            id=\"abp-tenant-switch-link\"\r\n            class=\"btn btn-sm btn-outline-primary float-end pointer\"\r\n            (click)=\"service.onSwitch()\"\r\n            href=\"javascript:void(0)\"\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\">\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-outline-primary\">\r\n        {{ 'AbpAccount::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        {{ 'AbpAccount::Save' | abpLocalization }}\r\n      </abp-button>\r\n    </ng-template>\r\n  </abp-modal>\r\n}\r\n","import { Component, inject } from '@angular/core';\r\nimport { AsyncPipe } from '@angular/common';\r\nimport { NgbDropdown, NgbDropdownToggle, NgbDropdownMenu } from '@ng-bootstrap/ng-bootstrap';\r\nimport { SubscriptionService, ReplaceableTemplateDirective, LocalizationPipe } from '@abp/ng.core';\r\nimport { AuthWrapperService } from '@volo/abp.ng.account.core';\r\nimport { ENABLE_FLAG_ICON } from '@volo/abp.commercial.ng.ui/config';\r\nimport { AccountLogoComponent } from '../account-logo/account-logo.component';\r\nimport { TenantBoxComponent } from '../tenant-box/tenant-box.component';\r\n\r\n@Component({\r\n  selector: 'abp-auth-wrapper',\r\n  templateUrl: './auth-wrapper.component.html',\r\n  providers: [AuthWrapperService, SubscriptionService],\r\n  imports: [\r\n    ReplaceableTemplateDirective,\r\n    AccountLogoComponent,\r\n    NgbDropdown,\r\n    NgbDropdownToggle,\r\n    NgbDropdownMenu,\r\n    TenantBoxComponent,\r\n    AsyncPipe,\r\n    LocalizationPipe,\r\n  ],\r\n})\r\nexport class AuthWrapperComponent {\r\n  public service = inject(AuthWrapperService);\r\n  public isFlagIconEnabled = inject<boolean>(ENABLE_FLAG_ICON);\r\n}\r\n","<div class=\"row\">\r\n  <div class=\"col mx-auto\" style=\"max-width: 400px\">\r\n    <abp-account-logo\r\n      *abpReplaceableTemplate=\"{ componentKey: service.logoKey }\"\r\n    ></abp-account-logo>\r\n    <div class=\"card\">\r\n      <div class=\"card-header\">\r\n        <h2 class=\"card-title d-inline-block\">{{ service.pageLabel | abpLocalization }}</h2>\r\n        <nav class=\"navbar navbar-expand p-0 pt-1 float-end\">\r\n          <ul class=\"navbar-nav ms-auto toolbar-nav\">\r\n            <li class=\"nav-item\">\r\n              <div class=\"dropdown\" ngbDropdown>\r\n                @if (service.defaultLanguage$ | async; as defaultLang) {\r\n                  <a\r\n                    class=\"pointer\"\r\n                    role=\"button\"\r\n                    id=\"dropdownMenuLink\"\r\n                    ngbDropdownToggle\r\n                    [class.dropdown-toggle]=\"false\"\r\n                  >\r\n                    @if (isFlagIconEnabled) {\r\n                      <span class=\"fi fis fi-{{ defaultLang.flagIcon }}\"></span>\r\n                    } @else {\r\n                      <span>{{ defaultLang?.displayName }}</span>\r\n                    }\r\n                  </a>\r\n                }\r\n                @if ((service.dropdownLanguages$ | async).length > 0) {\r\n                  <div ngbDropdownMenu class=\"dropdown-menu dropdown-menu-end\">\r\n                    @for (lang of service.dropdownLanguages$ | async; track $index) {\r\n                      <a\r\n                        class=\"dropdown-item pointer\"\r\n                        (click)=\"service.onChangeLang(lang.cultureName)\"\r\n                      >\r\n                        @if (isFlagIconEnabled) {\r\n                          <span class=\"fi fi-{{ lang.flagIcon }} fis me-2\"></span>\r\n                        }\r\n                        {{ lang?.displayName }}\r\n                      </a>\r\n                    }\r\n                  </div>\r\n                }\r\n              </div>\r\n            </li>\r\n          </ul>\r\n        </nav>\r\n      </div>\r\n      @if ((service.isMultiTenancyEnabled$ | async) && service.isTenantBoxVisible) {\r\n        <abp-tenant-box\r\n          *abpReplaceableTemplate=\"{ componentKey: service.tenantBoxKey }\"\r\n        ></abp-tenant-box>\r\n      }\r\n      @if (service.enableLocalLogin$ | async) {\r\n        <div class=\"card-body\">\r\n          <ng-content></ng-content>\r\n        </div>\r\n      } @else {\r\n        <div class=\"alert alert-warning\">\r\n          <strong>{{ 'AbpAccount::InvalidLoginRequest' | abpLocalization }}</strong>\r\n          {{ 'AbpAccount::ThereAreNoLoginSchemesConfiguredForThisClient' | abpLocalization }}\r\n        </div>\r\n      }\r\n    </div>\r\n  </div>\r\n</div>\r\n","import {\r\n  AfterViewInit,\r\n  Component,\r\n  inject,\r\n  OnDestroy,\r\n  Renderer2,\r\n  ViewEncapsulation,\r\n  PLATFORM_ID,\r\n  DOCUMENT,\r\n} from '@angular/core';\r\nimport { isPlatformBrowser } from '@angular/common';\r\nimport { RouterOutlet } from '@angular/router';\r\nimport { eLayoutType, ReplaceableTemplateDirective } from '@abp/ng.core';\r\nimport { slideFromBottom } from '@abp/ng.theme.shared';\r\nimport { PageAlertContainerComponent } from '../page-alert-container/page-alert-container.component';\r\nimport { AuthWrapperComponent } from './auth-wrapper/auth-wrapper.component';\r\n\r\n@Component({\r\n  selector: 'abp-layout-account',\r\n  templateUrl: './account-layout.component.html',\r\n  animations: [slideFromBottom],\r\n  encapsulation: ViewEncapsulation.None,\r\n  imports: [\r\n    PageAlertContainerComponent,\r\n    ReplaceableTemplateDirective,\r\n    AuthWrapperComponent,\r\n    RouterOutlet,\r\n  ],\r\n})\r\nexport class AccountLayoutComponent implements AfterViewInit, OnDestroy {\r\n  private renderer = inject(Renderer2);\r\n  private platformId = inject(PLATFORM_ID);\r\n  private document = inject(DOCUMENT);\r\n  // required for dynamic component\r\n  static type = eLayoutType.account;\r\n\r\n  authWrapperKey = 'Account.AuthWrapper';\r\n\r\n  isCollapsed = false;\r\n\r\n  ngAfterViewInit(): void {\r\n    if (isPlatformBrowser(this.platformId)) {\r\n      this.renderer.addClass(this.document.body, 'abp-account-layout');\r\n    }\r\n  }\r\n\r\n  ngOnDestroy(): void {\r\n    if (isPlatformBrowser(this.platformId)) {\r\n      this.renderer.removeClass(this.document.body, 'abp-account-layout');\r\n    }\r\n  }\r\n}\r\n","<div class=\"account-header fixed-top p-3\"></div>\r\n<div class=\"d-flex align-items-center\" style=\"min-height: 100vh\">\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></router-outlet>\r\n    </abp-auth-wrapper>\r\n  </div>\r\n</div>\r\n","import { TemplateRef } from '@angular/core';\r\n\r\nexport namespace Layout {\r\n  export enum MenuStatus {\r\n    AlwaysOpened,\r\n    OpenOnHover,\r\n  }\r\n\r\n  export enum MenuPlacement {\r\n    Left,\r\n    Top,\r\n  }\r\n\r\n  export type LogoColor = 'dark' | 'light';\r\n\r\n  export interface NavigationElement {\r\n    name: string;\r\n    element: TemplateRef<any>;\r\n    order?: number;\r\n  }\r\n\r\n  export interface State {\r\n    isMenuExpanded: boolean;\r\n    isNavbarExpanded: boolean;\r\n    smallScreen: boolean;\r\n    isSidebarCollapsed: boolean;\r\n    isMenuPlacementTop: boolean;\r\n    mouseOnSidebar: boolean;\r\n    style: number;\r\n    styleElement: HTMLLinkElement;\r\n    menuPlacement: MenuPlacement;\r\n    boxedLayout: boolean;\r\n    menuStatus: MenuStatus;\r\n  }\r\n\r\n  export type StateKeys = keyof State;\r\n}\r\n","import { InternalStore } from '@abp/ng.core';\r\nimport { DOCUMENT, inject, Injectable } from '@angular/core';\r\nimport { Observable } from 'rxjs';\r\nimport { distinctUntilChanged, map } from 'rxjs/operators';\r\nimport { Layout } from '../models';\r\n\r\n@Injectable({\r\n  providedIn: 'root',\r\n})\r\nexport class LayoutStateService {\r\n  private store = new InternalStore({} as Layout.State);\r\n  state$ = this.store.sliceState(state => state);\r\n  private document = inject(DOCUMENT);\r\n\r\n  getPrimaryLogoColor(): Layout.LogoColor {\r\n    return this.getLogoColor('--logo');\r\n  }\r\n\r\n  getPrimaryLogoColor$(): Observable<Layout.LogoColor> {\r\n    return this.getLogoColor$('--logo');\r\n  }\r\n\r\n  getSecondaryLogoColor(): Layout.LogoColor {\r\n    return this.getLogoColor('--logo-reverse');\r\n  }\r\n\r\n  getSecondaryLogoColor$(): Observable<Layout.LogoColor> {\r\n    return this.getLogoColor$('--logo-reverse');\r\n  }\r\n\r\n  get<T extends Layout.StateKeys>(key: T) {\r\n    return this.store.state[key] as Layout.State[T];\r\n  }\r\n\r\n  get$<T extends Layout.StateKeys>(key: T) {\r\n    return this.store.sliceState(state => state[key]);\r\n  }\r\n\r\n  update$<T extends Layout.StateKeys>(key: T) {\r\n    return this.store.sliceUpdate(state => state[key]);\r\n  }\r\n\r\n  patch(state: Partial<Layout.State>) {\r\n    this.store.patch(state);\r\n  }\r\n\r\n  private getLogoColor(propertyName: string): Layout.LogoColor {\r\n    const styles = getComputedStyle(this.document.documentElement);\r\n    const logo = styles.getPropertyValue(propertyName);\r\n\r\n    return logo.indexOf('dark') > -1 ? 'dark' : 'light';\r\n  }\r\n\r\n  private getLogoColor$(propertyName: string): Observable<Layout.LogoColor> {\r\n    return this.store\r\n      .sliceState(state => state)\r\n      .pipe(\r\n        map(() => this.getLogoColor(propertyName)),\r\n        distinctUntilChanged(),\r\n      );\r\n  }\r\n}\r\n","import { ConfigStateService } from '@abp/ng.core';\r\nimport {\r\n  DOCUMENT,\r\n  inject,\r\n  Injectable,\r\n  Injector,\r\n  PLATFORM_ID,\r\n  Renderer2,\r\n  RendererFactory2,\r\n} from '@angular/core';\r\nimport {\r\n  LeptonThemeSettingsService,\r\n  UpdateLeptonThemeSettingsDto,\r\n} from '@volo/abp.ng.theme.lepton/proxy';\r\nimport { tap } from 'rxjs/operators';\r\nimport { Layout } from '../models';\r\nimport { LayoutStateService } from './layout-state.service';\r\nimport { isPlatformBrowser } from '@angular/common';\r\n\r\n@Injectable({\r\n  providedIn: 'root',\r\n})\r\nexport class LayoutService {\r\n  private renderer: Renderer2;\r\n  private rendererFactory: RendererFactory2;\r\n  private themeSettingsService: LeptonThemeSettingsService;\r\n  private layoutState: LayoutStateService;\r\n  private configState: ConfigStateService;\r\n  protected injector = inject(Injector);\r\n  protected readonly document = inject(DOCUMENT);\r\n  protected readonly platformId = inject(PLATFORM_ID);\r\n\r\n  layoutConfigKey = 'Volo.Abp.LeptonTheme.Layout';\r\n\r\n  constructor() {\r\n    this.rendererFactory = this.injector.get(RendererFactory2);\r\n    this.themeSettingsService = this.injector.get(LeptonThemeSettingsService);\r\n    this.layoutState = this.injector.get(LayoutStateService);\r\n    if (isPlatformBrowser(this.platformId)) {\r\n      this.renderer = this.rendererFactory.createRenderer(this.document.body, null);\r\n    }\r\n    this.configState = this.injector.get(ConfigStateService);\r\n    this.listenToLeptonSettings();\r\n  }\r\n\r\n  listenToLeptonSettings() {\r\n    const leptonSettings$ = this.configState.getSettings$(this.layoutConfigKey);\r\n    leptonSettings$.subscribe(settings => {\r\n      if (Object.keys(settings).length > 0) {\r\n        // Call order is very important here. Do not change it without testing it first!!\r\n        this.setLayoutBoxed(settings[`${this.layoutConfigKey}.Boxed`] === 'True');\r\n        this.setMenuPlacement(\r\n          Layout.MenuPlacement[settings[`${this.layoutConfigKey}.MenuPlacement`]] ||\r\n            Layout.MenuPlacement.Left,\r\n        );\r\n        this.setMenuStatus(\r\n          Layout.MenuStatus[settings[`${this.layoutConfigKey}.MenuStatus`]] ||\r\n            Layout.MenuStatus.AlwaysOpened,\r\n        );\r\n      } else {\r\n        this.setMenuStatus(Layout.MenuStatus.AlwaysOpened);\r\n      }\r\n    });\r\n  }\r\n\r\n  fetchThemeSettings() {\r\n    return this.themeSettingsService.get();\r\n  }\r\n\r\n  updateThemeSettings(themeSettings: UpdateLeptonThemeSettingsDto) {\r\n    return this.themeSettingsService\r\n      .update(themeSettings)\r\n      .pipe(tap(_ => this.configState.refreshAppState().subscribe()));\r\n  }\r\n\r\n  setLayoutBoxed(boxedLayout: boolean) {\r\n    if (this.layoutState.get('boxedLayout') === boxedLayout) {\r\n      return;\r\n    }\r\n    if (isPlatformBrowser(this.platformId)) {\r\n      const body = this.document.body;\r\n      if (boxedLayout) {\r\n        this.renderer.addClass(body, 'lp-boxed');\r\n      } else {\r\n        this.renderer.removeClass(body, 'lp-boxed');\r\n      }\r\n    }\r\n    this.layoutState.patch({ boxedLayout });\r\n  }\r\n\r\n  setMenuStatus(menuStatus: Layout.MenuStatus) {\r\n    if (\r\n      this.layoutState.get('menuStatus') === menuStatus &&\r\n      this.layoutState.get('menuPlacement') !== Layout.MenuPlacement.Left\r\n    ) {\r\n      return;\r\n    }\r\n    this.addMenuStatusClasses(menuStatus);\r\n    this.layoutState.patch({\r\n      menuStatus,\r\n      isSidebarCollapsed: menuStatus === Layout.MenuStatus.OpenOnHover,\r\n    });\r\n  }\r\n\r\n  setMenuPlacement(menuPlacement: Layout.MenuPlacement) {\r\n    if (this.layoutState.get('menuPlacement') === menuPlacement) {\r\n      return;\r\n    }\r\n    this.addMenuPlacementClasses(menuPlacement);\r\n    this.layoutState.patch({\r\n      menuPlacement,\r\n      isMenuPlacementTop: menuPlacement === Layout.MenuPlacement.Top,\r\n    });\r\n  }\r\n\r\n  onClickMenuIcon(value: boolean) {\r\n    this.layoutState.patch({ isSidebarCollapsed: !value });\r\n    if (value) {\r\n      this.setMenuStatus(Layout.MenuStatus.AlwaysOpened);\r\n    } else {\r\n      this.setMenuStatus(Layout.MenuStatus.OpenOnHover);\r\n    }\r\n  }\r\n\r\n  addMenuPlacementClasses(menuPlacement: Layout.MenuPlacement) {\r\n    if (isPlatformBrowser(this.platformId)) {\r\n      const body = this.document.body;\r\n      if (menuPlacement === Layout.MenuPlacement.Top) {\r\n        ['lp-opened-sidebar', 'lp-body-fixed', 'lp-closed'].forEach(lpClass =>\r\n          this.renderer.removeClass(body, lpClass),\r\n        );\r\n        this.renderer.addClass(body, 'lp-topmenu');\r\n      } else {\r\n        this.renderer.removeClass(body, 'lp-topmenu');\r\n        this.renderer.addClass(body, 'lp-opened-sidebar');\r\n      }\r\n    }\r\n  }\r\n\r\n  addMenuStatusClasses(menuStatus: Layout.MenuStatus) {\r\n    if (isPlatformBrowser(this.platformId)) {\r\n      const body = this.document.body;\r\n      if (menuStatus) {\r\n        this.renderer.removeClass(body, 'lp-body-fixed');\r\n        this.renderer.removeClass(body, 'lp-opened-sidebar');\r\n        this.renderer.addClass(body, 'lp-closed');\r\n      } else {\r\n        this.renderer.addClass(body, 'lp-body-fixed');\r\n        this.renderer.addClass(body, 'lp-opened-sidebar');\r\n        this.renderer.removeClass(body, 'lp-closed');\r\n      }\r\n    }\r\n  }\r\n\r\n  addSidebarClasses(mouseOnSidebar) {\r\n    if (isPlatformBrowser(this.platformId)) {\r\n      const body = this.document.body;\r\n      if (mouseOnSidebar) {\r\n        if (body.classList.contains('lp-closed')) {\r\n          this.renderer.addClass(body, 'lp-extended');\r\n        }\r\n      } else {\r\n        this.renderer.removeClass(body, 'lp-extended');\r\n      }\r\n    }\r\n  }\r\n\r\n  changeMenuPlacementByScreenSize() {\r\n    const isMenuPlacementTop = this.layoutState.get('isMenuPlacementTop');\r\n    const smallScreen = window.innerWidth < 992;\r\n    if (smallScreen) {\r\n      this.addMenuPlacementClasses(Layout.MenuPlacement.Left);\r\n    } else if (!smallScreen && isMenuPlacementTop) {\r\n      this.addMenuPlacementClasses(Layout.MenuPlacement.Top);\r\n    }\r\n    this.layoutState.patch({ smallScreen });\r\n  }\r\n}\r\n","import { EnvironmentService } from '@abp/ng.core';\r\nimport { RouterLink } from '@angular/router';\r\nimport { Component, inject } from '@angular/core';\r\nimport { LOGO_APP_NAME_TOKEN, LOGO_URL_TOKEN } from '@abp/ng.theme.shared';\r\n\r\n@Component({\r\n    selector: 'abp-logo',\r\n    template: `\r\n        <a class=\"navbar-brand\" routerLink=\"/\">\r\n            @if (logoUrl) {\r\n                <img [src]=\"logoUrl\" [alt]=\"appName\" width=\"100%\" height=\"auto\" />\r\n            } @else {\r\n                {{ appName }}\r\n            }\r\n        </a>\r\n    `,\r\n    standalone: true,\r\n    imports: [RouterLink],\r\n})\r\nexport class LogoComponent {\r\n    private environment = inject(EnvironmentService);\r\n\r\n    private readonly providedLogoUrl = inject(LOGO_URL_TOKEN, { optional: true });\r\n    private readonly providedAppName = inject(LOGO_APP_NAME_TOKEN, { optional: true });\r\n\r\n    get logoUrl() {\r\n        return (\r\n            this.providedLogoUrl ?? this.environment.getEnvironment().application?.logoUrl\r\n        ) || '';\r\n    }\r\n\r\n    get appName() {\r\n        return (\r\n            this.providedAppName ?? this.environment.getEnvironment().application?.name\r\n        ) || '';\r\n    }\r\n}\r\n","import { Component, input, output } from '@angular/core';\r\n\r\n@Component({\r\n  selector: 'abp-navbar-mobile',\r\n  templateUrl: './navbar-mobile.component.html',\r\n})\r\nexport class NavbarMobileComponent {\r\n  readonly isNavbarExpanded = input<boolean>(undefined);\r\n  readonly isMenuExpanded = input<boolean>(undefined);\r\n\r\n  readonly navbarIconClick = output<boolean>();\r\n  readonly menuIconClick = output<boolean>();\r\n}\r\n","<nav class=\"navbar navbar-expand-xl navbar-dark d-flex justify-content-end nav-mobile\">\r\n  <button\r\n    class=\"navbar-toggler border-0\"\r\n    type=\"button\"\r\n    data-toggle=\"collapse\"\r\n    data-target=\"#navbarToolbar\"\r\n    aria-controls=\"navbarText\"\r\n    aria-label=\"Toggle navigation\"\r\n    [attr.aria-expanded]=\"isNavbarExpanded()\"\r\n    (click)=\"navbarIconClick.emit(!isNavbarExpanded())\"\r\n  >\r\n    <i class=\"fa fa-user\" aria-hidden=\"true\"></i>\r\n  </button>\r\n  <button\r\n    class=\"navbar-toggler border-0\"\r\n    [class.collapsed]=\"!isMenuExpanded()\"\r\n    type=\"button\"\r\n    data-toggle=\"collapse\"\r\n    data-target=\"#navbarSidebar\"\r\n    aria-controls=\"navbarText\"\r\n    aria-label=\"Toggle navigation\"\r\n    [attr.aria-expanded]=\"isMenuExpanded()\"\r\n    (click)=\"menuIconClick.emit(!isMenuExpanded())\"\r\n  >\r\n    <i class=\"fa fa-align-justify\" aria-hidden=\"true\"></i>\r\n  </button>\r\n</nav>\r\n","import { Component, inject, TrackByFunction, PLATFORM_ID } from '@angular/core';\r\nimport { NgComponentOutlet, AsyncPipe, isPlatformBrowser } from '@angular/common';\r\nimport { PermissionDirective, ToInjectorPipe } from '@abp/ng.core';\r\nimport { NavItem, NavItemsService, AbpVisibleDirective } from '@abp/ng.theme.shared';\r\n\r\n@Component({\r\n  selector: 'abp-nav-items',\r\n  templateUrl: 'nav-items.component.html',\r\n  imports: [AbpVisibleDirective, PermissionDirective, NgComponentOutlet, AsyncPipe, ToInjectorPipe],\r\n})\r\nexport class NavItemsComponent {\r\n  public readonly navItems = inject(NavItemsService);\r\n  private platformId = inject(PLATFORM_ID);\r\n  public isBrowser = isPlatformBrowser(this.platformId);\r\n  trackByFn: TrackByFunction<NavItem> = (_, element) => element?.id;\r\n}\r\n","<ul class=\"navbar-nav toolbar-nav\">\r\n  @if (isBrowser) {\r\n    @for (item of navItems.items$ | async; track $index) {\r\n      <ng-container *abpVisible=\"!item.visible || item.visible()\">\r\n        <li\r\n          class=\"nav-item d-flex align-items-center\"\r\n          (click)=\"item.action ? item.action() : null\"\r\n          *abpPermission=\"item.requiredPolicy\"\r\n        >\r\n          @if (item.component) {\r\n            <ng-container\r\n              [ngComponentOutlet]=\"item.component\"\r\n              [ngComponentOutletInjector]=\"item | toInjector\"\r\n            ></ng-container>\r\n          } @else {\r\n            <div [innerHTML]=\"item.html\"></div>\r\n          }\r\n        </li>\r\n      </ng-container>\r\n    }\r\n  }\r\n</ul>\r\n","import { Component, input } from '@angular/core';\r\nimport { ReplaceableTemplateDirective } from '@abp/ng.core';\r\nimport { eThemeLeptonComponents } from '../../enums/components';\r\nimport { NavItemsComponent } from '../nav-items/nav-items.component';\r\n\r\n@Component({\r\n  selector: 'abp-navbar',\r\n  templateUrl: './navbar.component.html',\r\n  imports: [ReplaceableTemplateDirective, NavItemsComponent],\r\n})\r\nexport class NavbarComponent {\r\n  readonly isNavbarExpanded = input<boolean>(undefined);\r\n\r\n  readonly smallScreen = input(undefined);\r\n\r\n  navItemsComponentKey = eThemeLeptonComponents.NavItems;\r\n}\r\n","<nav class=\"navbar navbar-expand-lg user-nav-mobile\">\r\n  <div\r\n    id=\"navbarToolbar\"\r\n    class=\"navbar-collapse d-flex toolbar-nav-wrapper collapse\"\r\n    [class.show]=\"smallScreen()\"\r\n    [class.abp-collapsed-height]=\"smallScreen()\"\r\n    [class.abp-mh-100]=\"smallScreen() && isNavbarExpanded()\"\r\n    [class.justify-content-end]=\"!smallScreen()\"\r\n    [class.justify-content-start]=\"smallScreen()\"\r\n  >\r\n    <abp-nav-items *abpReplaceableTemplate=\"{ componentKey: navItemsComponentKey }\" />\r\n  </div>\r\n</nav>\r\n","import { InjectionToken, Type } from '@angular/core';\r\n\r\nexport const CONTENT_BEFORE_ROUTES = new InjectionToken<Type<any>[]>('CONTENT_BEFORE_ROUTES');\r\nexport const CONTENT_AFTER_ROUTES = new InjectionToken<Type<any>[]>('CONTENT_AFTER_ROUTES');\r\n","import { NgComponentOutlet, NgTemplateOutlet, AsyncPipe } from '@angular/common';\r\nimport { trigger, state, style, transition, animate } from '@angular/animations';\r\nimport {\r\n  AfterViewInit,\r\n  ChangeDetectionStrategy,\r\n  Component,\r\n  inject,\r\n  Injector,\r\n  TrackByFunction,\r\n  Type,\r\n  input,\r\n  output,\r\n} from '@angular/core';\r\nimport { NavigationEnd, Router, RouterLinkActive, RouterLink } from '@angular/router';\r\nimport { of } from 'rxjs';\r\nimport { filter, map, take } from 'rxjs/operators';\r\nimport {\r\n  ABP,\r\n  EnvironmentService,\r\n  findRoute,\r\n  getRoutePath,\r\n  RoutesService,\r\n  TreeNode,\r\n  PermissionDirective,\r\n  AsyncLocalizationPipe,\r\n} from '@abp/ng.core';\r\nimport { CONTENT_AFTER_ROUTES, CONTENT_BEFORE_ROUTES } from '../../tokens/routes-content.token';\r\n\r\n@Component({\r\n  selector: 'abp-routes',\r\n  templateUrl: 'routes.component.html',\r\n  changeDetection: ChangeDetectionStrategy.OnPush,\r\n  animations: [\r\n    trigger('collapse', [\r\n      state('collapsed', style({ height: '0', opacity: 0, overflow: 'hidden' })),\r\n      state('expanded', style({ height: '*', opacity: 1 })),\r\n      transition('expanded <=> collapsed', animate('100ms ease-in-out')),\r\n    ]),\r\n  ],\r\n  imports: [\r\n    NgComponentOutlet,\r\n    NgTemplateOutlet,\r\n    PermissionDirective,\r\n    RouterLinkActive,\r\n    RouterLink,\r\n    AsyncPipe,\r\n    AsyncLocalizationPipe,\r\n  ],\r\n})\r\nexport class RoutesComponent implements AfterViewInit {\r\n  readonly clickedToLink = output<MouseEvent>();\r\n\r\n  readonly isMenuPlacementTop = input<boolean>(undefined);\r\n\r\n  readonly smallScreen = input<boolean>(undefined);\r\n\r\n  readonly expandedRoutes = new Set<string>();\r\n\r\n  readonly initialLevel = 1;\r\n\r\n  readonly environmentService = inject(EnvironmentService);\r\n  private router = inject(Router);\r\n  public readonly routes = inject(RoutesService);\r\n  public readonly injector = inject(Injector);\r\n\r\n  contentBefore: Type<any>[];\r\n  contentAfter: Type<any>[];\r\n\r\n  filterOp = map((routes: TreeNode<ABP.Route>[]) => routes);\r\n  trackByFn: TrackByFunction<TreeNode<ABP.Route>> = (_, item) => item.name;\r\n\r\n  get routes$() {\r\n    return this.routes.visible$.pipe(this.filterOp);\r\n  }\r\n\r\n  constructor() {\r\n    this.contentBefore = this.injector.get(CONTENT_BEFORE_ROUTES, []);\r\n    this.contentAfter = this.injector.get(CONTENT_AFTER_ROUTES, []);\r\n  }\r\n\r\n  ngAfterViewInit(): void {\r\n    const { oAuthConfig } = this.environmentService.getEnvironment() || {};\r\n    const waitForNavigation = oAuthConfig.responseType === 'code';\r\n\r\n    const routerEvents$ = waitForNavigation\r\n      ? this.router.events.pipe(\r\n          filter(event => event instanceof NavigationEnd),\r\n          take(1),\r\n        )\r\n      : of(null);\r\n\r\n    routerEvents$.subscribe(() => {\r\n      let node = {\r\n        parent: findRoute(this.routes, getRoutePath(this.router)),\r\n      } as TreeNode<ABP.Route>;\r\n\r\n      const nodes: string[] = [];\r\n      while (node.parent) {\r\n        node = node.parent;\r\n        nodes.push(node.name);\r\n      }\r\n\r\n      let max = nodes.length + this.initialLevel;\r\n\r\n      nodes.forEach(name => {\r\n        this.expandedRoutes.add(name + --max);\r\n      });\r\n    });\r\n  }\r\n\r\n  isDropdown(node: TreeNode<ABP.Route>) {\r\n    return !node?.isLeaf || this.routes.hasChildren(node.name);\r\n  }\r\n\r\n  onNavigate({ parentName }: ABP.Route, level: number) {\r\n    let _level = level;\r\n    const nextLevel = () => (_level ? --_level : 0);\r\n\r\n    const parents = [(parentName || '') + nextLevel()];\r\n    let node = this.routes.find(item => item.name === parentName);\r\n    while (node?.parent) {\r\n      node = node.parent;\r\n      parents.push(node.name + nextLevel());\r\n    }\r\n\r\n    this.expandedRoutes.forEach(expanded => {\r\n      if (parents.indexOf(expanded) < 0) this.expandedRoutes.delete(expanded);\r\n    });\r\n  }\r\n\r\n  toggleExpand({ name }: ABP.Route, level: number) {\r\n    const has = this.expandedRoutes.has(name + level);\r\n    this.expandedRoutes[has ? 'delete' : 'add'](name + level);\r\n\r\n    if (!has) {\r\n      this.collapseDropdowns(name, level);\r\n    }\r\n  }\r\n\r\n  collapseDropdowns(name: string, level: number) {\r\n    this.routes.flat\r\n      .filter(route => route.name !== name && !route.invisible)\r\n      .forEach(route => {\r\n        this.expandedRoutes.delete(route.name + level);\r\n      });\r\n  }\r\n}\r\n","<div class=\"lp-sidebar-wrapper mx-2\">\r\n  <nav role=\"navigation\" class=\"lp-sidebar-navi\">\r\n    <ul>\r\n      @for (component of contentBefore; track $index) {\r\n        <li class=\"position-relative\">\r\n          <ng-container *ngComponentOutlet=\"component; injector: injector\" />\r\n        </li>\r\n      }\r\n\r\n      @for (route of routes$ | async; track $index) {\r\n        <ng-container\r\n          [ngTemplateOutlet]=\"isDropdown(route) ? dropdownLink : defaultLink\"\r\n          [ngTemplateOutletContext]=\"{ $implicit: route, level: initialLevel }\"\r\n        />\r\n      }\r\n\r\n      @for (component of contentAfter; track $index) {\r\n        <li class=\"position-relative\">\r\n          <ng-container *ngComponentOutlet=\"component; injector: injector\" />\r\n        </li>\r\n      }\r\n\r\n      <ng-template #defaultLink let-route let-level=\"level\">\r\n        <li\r\n          routerLinkActive=\"active-page current\"\r\n          [routerLinkActiveOptions]=\"{ exact: route.path === '/' }\"\r\n          *abpPermission=\"route.requiredPolicy\"\r\n          (click)=\"$event.stopPropagation(); onNavigate(route, level)\"\r\n        >\r\n          <a [routerLink]=\"[route.path]\" (click)=\"clickedToLink.emit()\">\r\n            <ng-container *ngTemplateOutlet=\"linkContent; context: { $implicit: route }\" />\r\n          </a>\r\n        </li>\r\n      </ng-template>\r\n\r\n      <ng-template #linkContent let-route>\r\n        @if (route.iconClass) {\r\n          <span class=\"lp-icon\">\r\n            <i [class]=\"route.iconClass\"></i>\r\n          </span>\r\n        }\r\n        <span class=\"lp-text\">\r\n          {{ route.name | abpAsyncLocalization | async }}\r\n        </span>\r\n      </ng-template>\r\n\r\n      <ng-template #dropdownLink let-route let-level=\"level\">\r\n        @if (route.children?.length) {\r\n          <li\r\n            *abpPermission=\"route.requiredPolicy\"\r\n            class=\"has-drop\"\r\n            [class.current]=\"expandedRoutes.has(route.name + level)\"\r\n          >\r\n            <a\r\n              attr.data-level=\"{{ level }}\"\r\n              href=\"javascript:void(0)\"\r\n              (click)=\"\r\n                $event.stopPropagation();\r\n                isMenuPlacementTop() && !smallScreen() ? null : toggleExpand(route, level)\r\n              \"\r\n            >\r\n              <ng-container *ngTemplateOutlet=\"linkContent; context: { $implicit: route }\" />\r\n\r\n              <span class=\"lp-arrow-icon\" [attr.for]=\"route.name\">\r\n                <i class=\"fa fa-chevron-down\" aria-hidden=\"true\"></i>\r\n              </span>\r\n            </a>\r\n            <ul\r\n              class=\"dropdown-ul\"\r\n              [class]=\"{\r\n                'd-block overflow-hidden': isMenuPlacementTop() && !smallScreen() ? false : true,\r\n              }\"\r\n              [id]=\"route.name\"\r\n            >\r\n              <div\r\n                #routeContainer\r\n                [@collapse]=\"\r\n                  isMenuPlacementTop() || expandedRoutes.has(route.name + level)\r\n                    ? 'expanded'\r\n                    : 'collapsed'\r\n                \"\r\n              >\r\n                @for (child of route.children; track $index) {\r\n                  <ng-container\r\n                    [ngTemplateOutlet]=\"dropdownMenu\"\r\n                    [ngTemplateOutletContext]=\"{ $implicit: child, level: level + 1 }\"\r\n                  />\r\n                }\r\n              </div>\r\n            </ul>\r\n          </li>\r\n        }\r\n      </ng-template>\r\n\r\n      <ng-template #dropdownMenu let-route let-level=\"level\">\r\n        <ng-container\r\n          *ngTemplateOutlet=\"\r\n            isDropdown(route) ? dropdownLink : defaultLink;\r\n            context: { $implicit: route, level: level }\r\n          \"\r\n        />\r\n      </ng-template>\r\n    </ul>\r\n  </nav>\r\n</div>\r\n","import {\r\n  AfterViewInit,\r\n  Component,\r\n  ElementRef,\r\n  inject,\r\n  ViewEncapsulation,\r\n  PLATFORM_ID,\r\n  input,\r\n  output,\r\n  viewChild,\r\n} from '@angular/core';\r\nimport { AsyncPipe, isPlatformBrowser } from '@angular/common';\r\nimport { fromEvent } from 'rxjs';\r\nimport { debounceTime, startWith } from 'rxjs/operators';\r\nimport { SubscriptionService, ReplaceableTemplateDirective } from '@abp/ng.core';\r\nimport { eThemeLeptonComponents } from '../../enums';\r\nimport { LayoutStateService } from '../../services/layout-state.service';\r\nimport { LayoutService } from '../../services/layout.service';\r\nimport { RoutesComponent } from '../routes/routes.component';\r\n\r\n@Component({\r\n  selector: 'abp-sidebar',\r\n  templateUrl: './sidebar.component.html',\r\n  providers: [SubscriptionService],\r\n  encapsulation: ViewEncapsulation.None,\r\n  imports: [ReplaceableTemplateDirective, RoutesComponent, AsyncPipe],\r\n})\r\nexport class SidebarComponent implements AfterViewInit {\r\n  private layoutStateService = inject(LayoutStateService);\r\n  private layout = inject(LayoutService);\r\n  private platformId = inject(PLATFORM_ID);\r\n\r\n  readonly isMenuExpanded = input<boolean>(undefined);\r\n  readonly smallScreen = input<boolean>(undefined);\r\n  readonly isMenuPlacementTop = input<boolean>(undefined);\r\n\r\n  readonly mouseMoveContainer = output<Array<ElementRef<HTMLElement>>>();\r\n\r\n  routesComponentKey = eThemeLeptonComponents.Routes;\r\n  mouseOnSidebar$ = this.layoutStateService.get$('mouseOnSidebar');\r\n  isSidebarCollapsed$ = this.layoutStateService.get$('isSidebarCollapsed');\r\n\r\n  readonly navbarSidebarRef = viewChild('navbarSidebar', { read: ElementRef });\r\n\r\n  onClickLink() {\r\n    if (this.smallScreen()) {\r\n      this.layoutStateService.patch({ isMenuExpanded: false, isNavbarExpanded: false });\r\n    }\r\n  }\r\n\r\n  onClickMenuIcon(isSidebarCollapsed: boolean) {\r\n    this.layout.onClickMenuIcon(isSidebarCollapsed);\r\n  }\r\n\r\n  ngAfterViewInit() {\r\n    this.mouseMoveContainer.emit([this.navbarSidebarRef()]);\r\n    this.listenResize();\r\n  }\r\n\r\n  listenResize() {\r\n    if (isPlatformBrowser(this.platformId)) {\r\n      const resize$ = fromEvent(window, 'resize').pipe(debounceTime(150));\r\n      resize$.pipe(startWith({})).subscribe(() => this.layout.changeMenuPlacementByScreenSize());\r\n    }\r\n  }\r\n}\r\n","@if (\r\n  { isSidebarCollapsed: isSidebarCollapsed$ | async, mouseOnSidebar: mouseOnSidebar$ | async };\r\n  as data\r\n) {\r\n  <div\r\n    #navbarSidebar\r\n    class=\"lp-sidebar navbar-collapse d-lg-block collapse\"\r\n    id=\"navbarSidebar\"\r\n    [class.show]=\"smallScreen()\"\r\n    [class.abp-collapsed-height]=\"smallScreen()\"\r\n    [class.abp-mh-100]=\"smallScreen() && isMenuExpanded()\"\r\n  >\r\n    <div class=\"lp-sidebar-header\" [class.w-75]=\"!data.mouseOnSidebar\">\r\n      <div class=\"lp-toggle-sidebar\" (click)=\"onClickMenuIcon(data.isSidebarCollapsed)\">\r\n        <i\r\n          class=\"fa fa-align-{{ data.isSidebarCollapsed ? 'left' : 'justify' }} material-icons lp-{{\r\n            data.isSidebarCollapsed ? 'open' : 'close'\r\n          }}-icon\"\r\n        ></i>\r\n      </div>\r\n    </div>\r\n\r\n    <abp-routes\r\n      *abpReplaceableTemplate=\"{\r\n        componentKey: routesComponentKey,\r\n        outputs: { clickedToLink: onClickLink },\r\n        inputs: {\r\n          isMenuPlacementTop: { value: isMenuPlacementTop() },\r\n          smallScreen: { value: smallScreen() },\r\n        },\r\n      }\"\r\n      (clickedToLink)=\"onClickLink()\"\r\n      [isMenuPlacementTop]=\"isMenuPlacementTop()\"\r\n      [smallScreen]=\"smallScreen()\"\r\n    />\r\n  </div>\r\n}\r\n","import {\r\n  AfterViewInit,\r\n  ChangeDetectorRef,\r\n  Component,\r\n  ElementRef,\r\n  inject,\r\n  ViewEncapsulation,\r\n  output,\r\n  viewChild,\r\n} from '@angular/core';\r\nimport { AsyncPipe } from '@angular/common';\r\nimport { combineLatest } from 'rxjs';\r\nimport { map } from 'rxjs/operators';\r\nimport { ReplaceableTemplateDirective } from '@abp/ng.core';\r\nimport { eThemeLeptonComponents } from '../../enums/components';\r\nimport { LayoutStateService } from '../../services/layout-state.service';\r\nimport { LogoComponent } from '../logo/logo.component';\r\nimport { NavbarMobileComponent } from '../navbar-mobile/navbar-mobile.component';\r\nimport { NavbarComponent } from '../navbar/navbar.component';\r\nimport { SidebarComponent } from '../sidebar/sidebar.component';\r\n\r\n@Component({\r\n  selector: 'abp-header',\r\n  templateUrl: './header.component.html',\r\n  encapsulation: ViewEncapsulation.None,\r\n  imports: [\r\n    ReplaceableTemplateDirective,\r\n    LogoComponent,\r\n    NavbarMobileComponent,\r\n    NavbarComponent,\r\n    SidebarComponent,\r\n    AsyncPipe,\r\n  ],\r\n})\r\nexport class HeaderComponent implements AfterViewInit {\r\n  protected readonly layoutStateService = inject(LayoutStateService);\r\n  protected readonly cdr = inject(ChangeDetectorRef);\r\n\r\n  state$ = combineLatest([\r\n    this.layoutStateService.get$('isNavbarExpanded'),\r\n    this.layoutStateService.get$('isMenuExpanded'),\r\n    this.layoutStateService.get$('smallScreen'),\r\n    this.layoutStateService.get$('isMenuPlacementTop'),\r\n  ]).pipe(\r\n    map(([isNavbarExpanded, isMenuExpanded, smallScreen, isMenuPlacementTop]) => ({\r\n      isNavbarExpanded,\r\n      isMenuExpanded,\r\n      smallScreen,\r\n      isMenuPlacementTop,\r\n    })),\r\n  );\r\n\r\n  logoComponentKey = eThemeLeptonComponents.Logo;\r\n  navbarComponentKey = eThemeLeptonComponents.Navbar;\r\n  navbarMobileComponentKey = eThemeLeptonComponents.NavbarMobile;\r\n  sidebarComponentKey = eThemeLeptonComponents.Sidebar;\r\n\r\n  readonly mouseMoveContainer = output<Array<ElementRef<HTMLElement>>>();\r\n\r\n  readonly navbarBrandRef = viewChild('navbarBrand', { read: ElementRef });\r\n\r\n  ngAfterViewInit() {\r\n    //This line occurs expressionChangedAfterItHasBeenCheckedError that's why we use changeDetectorRef\r\n    this.mouseMoveContainer.emit([this.navbarBrandRef()]);\r\n    this.cdr.detectChanges();\r\n  }\r\n\r\n  navbarIconClick(isNavbarExpanded: boolean) {\r\n    this.layoutStateService.patch({ isNavbarExpanded });\r\n  }\r\n\r\n  menuIconClick(isMenuExpanded: boolean) {\r\n    this.layoutStateService.patch({ isMenuExpanded });\r\n  }\r\n}\r\n","@if (state$ | async; as data) {\r\n  <header>\r\n    <div #navbarBrand>\r\n      <abp-logo *abpReplaceableTemplate=\"{ componentKey: logoComponentKey }\"></abp-logo>\r\n    </div>\r\n\r\n    <abp-navbar-mobile\r\n      *abpReplaceableTemplate=\"{\r\n        componentKey: navbarMobileComponentKey,\r\n        inputs: {\r\n          isNavbarExpanded: { value: data.isNavbarExpanded },\r\n          isMenuExpanded: { value: data.isMenuExpanded },\r\n        },\r\n        outputs: {\r\n          navbarIconClick: navbarIconClick,\r\n          menuIconClick: menuIconClick,\r\n        },\r\n      }\"\r\n      [isNavbarExpanded]=\"data.isNavbarExpanded\"\r\n      [isMenuExpanded]=\"data.isMenuExpanded\"\r\n      (navbarIconClick)=\"navbarIconClick($event)\"\r\n      (menuIconClick)=\"menuIconClick($event)\"\r\n    ></abp-navbar-mobile>\r\n\r\n    <abp-navbar\r\n      *abpReplaceableTemplate=\"{\r\n        componentKey: navbarComponentKey,\r\n        inputs: {\r\n          isNavbarExpanded: { value: data.isNavbarExpanded },\r\n          smallScreen: { value: data.smallScreen },\r\n        },\r\n      }\"\r\n      [smallScreen]=\"data.smallScreen\"\r\n      [isNavbarExpanded]=\"data.isNavbarExpanded\"\r\n    >\r\n    </abp-navbar>\r\n\r\n    <abp-sidebar\r\n      *abpReplaceableTemplate=\"{\r\n        componentKey: sidebarComponentKey,\r\n        inputs: {\r\n          smallScreen: { value: data.smallScreen },\r\n          isMenuExpanded: { value: data.isMenuExpanded },\r\n          isMenuPlacementTop: { value: data.isMenuPlacementTop },\r\n        },\r\n        outputs: { mouseMoveContainer: mouseMoveContainer.next },\r\n      }\"\r\n      [smallScreen]=\"data.smallScreen\"\r\n      [isMenuExpanded]=\"data.isMenuExpanded\"\r\n      [isMenuPlacementTop]=\"data.isMenuPlacementTop\"\r\n      (mouseMoveContainer)=\"mouseMoveContainer.emit($event)\"\r\n    ></abp-sidebar>\r\n  </header>\r\n}\r\n","import { Component, input } from '@angular/core';\r\nimport { ApplicationInfo } from '@abp/ng.core';\r\n\r\n@Component({\r\n  selector: 'abp-footer',\r\n  templateUrl: './footer.component.html',\r\n})\r\nexport class FooterComponent {\r\n  currentYear = new Date().getFullYear();\r\n  readonly appInfo = input<ApplicationInfo>(undefined);\r\n}\r\n","<footer class=\"lp-footer\">\r\n  <div class=\"d-flex\">\r\n    <div class=\"me-auto\">\r\n      <span>2019 - {{ currentYear }} © {{ appInfo().name }}</span\r\n      ><br />\r\n    </div>\r\n  </div>\r\n</footer>\r\n","import {\r\n  Component,\r\n  ElementRef,\r\n  inject,\r\n  OnDestroy,\r\n  ViewEncapsulation,\r\n  PLATFORM_ID,\r\n} from '@angular/core';\r\nimport { isPlatformServer } from '@angular/common';\r\nimport { RouterOutlet } from '@angular/router';\r\nimport { BehaviorSubject, combineLatest, fromEvent, Subscription } from 'rxjs';\r\nimport { debounceTime, filter, tap } from 'rxjs/operators';\r\nimport {\r\n  ApplicationInfo,\r\n  eLayoutType,\r\n  EnvironmentService,\r\n  ReplaceableTemplateDirective,\r\n} from '@abp/ng.core';\r\nimport { eThemeLeptonComponents } from '../../enums/components';\r\nimport { LayoutService } from '../../services/layout.service';\r\nimport { LayoutStateService } from '../../services/layout-state.service';\r\nimport { HeaderComponent } from '../header/header.component';\r\nimport { PageAlertContainerComponent } from '../page-alert-container/page-alert-container.component';\r\nimport { FooterComponent } from '../footer/footer.component';\r\n\r\n@Component({\r\n  selector: 'abp-application-layout',\r\n  templateUrl: './application-layout.component.html',\r\n  encapsulation: ViewEncapsulation.None,\r\n  styleUrls: ['application-layout.component.scss'],\r\n  imports: [\r\n    ReplaceableTemplateDirective,\r\n    HeaderComponent,\r\n    PageAlertContainerComponent,\r\n    RouterOutlet,\r\n    FooterComponent,\r\n  ],\r\n})\r\nexport class ApplicationLayoutComponent implements OnDestroy {\r\n  private environment = inject(EnvironmentService);\r\n  private layoutState = inject(LayoutStateService);\r\n  private layout = inject(LayoutService);\r\n  private platformId = inject(PLATFORM_ID);\r\n\r\n  // required for dynamic component\r\n  static type = eLayoutType.application;\r\n\r\n  headerComponentKey = eThemeLeptonComponents.ApplicationLayoutHeader;\r\n  footerComponentKey = eThemeLeptonComponents.ApplicationLayoutFooter;\r\n  mouseMoveSubscription: Subscription;\r\n  containers$ = new BehaviorSubject<Array<ElementRef<HTMLElement>>>([]);\r\n\r\n  get appInfo(): ApplicationInfo {\r\n    return this.environment.getEnvironment().application;\r\n  }\r\n\r\n  listenMouseMove(containerRefs: ElementRef<HTMLElement>[]) {\r\n    if (isPlatformServer(this.platformId)) return;\r\n    const mousemove$ = fromEvent(document, 'mousemove').pipe(\r\n      debounceTime(50),\r\n      filter(() => this.layoutState.get('isSidebarCollapsed')),\r\n    );\r\n    this.containers$.next([...this.containers$.getValue(), ...containerRefs]);\r\n    if (this.mouseMoveSubscription) {\r\n      this.mouseMoveSubscription.unsubscribe();\r\n    }\r\n    this.mouseMoveSubscription = combineLatest([mousemove$, this.containers$])\r\n      .pipe(\r\n        tap(([event, containers]) => {\r\n          const elements = containers.filter(ref => ref?.nativeElement);\r\n          const mouseOnSidebar = elements.some(ref =>\r\n            ref?.nativeElement.contains(event.target as any),\r\n          );\r\n          this.layout.addSidebarClasses(mouseOnSidebar);\r\n          this.layoutState.patch({ mouseOnSidebar });\r\n        }),\r\n      )\r\n      .subscribe();\r\n  }\r\n\r\n  ngOnDestroy() {\r\n    if (this.mouseMoveSubscription) {\r\n      this.mouseMoveSubscription.unsubscribe();\r\n    }\r\n  }\r\n}\r\n","<abp-header\r\n  *abpReplaceableTemplate=\"{\r\n    componentKey: headerComponentKey,\r\n    outputs: { mouseMoveContainer: listenMouseMove }\r\n  }\"\r\n  (mouseMoveContainer)=\"listenMouseMove($event)\"\r\n></abp-header>\r\n<div class=\"lp-content h-100\">\r\n  <abp-page-alert-container></abp-page-alert-container>\r\n\r\n  <router-outlet></router-outlet>\r\n</div>\r\n<abp-footer\r\n  *abpReplaceableTemplate=\"{\r\n    componentKey: footerComponentKey,\r\n    inputs: {\r\n      appInfo: { value: appInfo }\r\n    }\r\n  }\"\r\n  [appInfo]=\"appInfo\"\r\n></abp-footer>\r\n","import { Component, inject, input } from '@angular/core';\r\nimport { AsyncPipe } from '@angular/common';\r\nimport { BehaviorSubject } from 'rxjs';\r\nimport { PROFILE_PICTURE, ProfilePictureImage } from '@volo/abp.commercial.ng.ui/config';\r\nimport { ThemeLepton } from '../../models/theme-lepton';\r\n\r\n@Component({\r\n  selector: 'abp-current-user-image',\r\n  template: `\r\n    @if (profilePicture$ | async; as pP) {\r\n      @switch (pP.type) {\r\n        @case ('image') {\r\n          <img [src]=\"pP.source\" alt=\"user\" [class]=\"classes() ?? ''\" />\r\n        }\r\n        @case ('icon') {\r\n          <i [class]=\"(pP.source + ' ' + (classes() ?? '')).trim()\"></i>\r\n        }\r\n      }\r\n    }\r\n  `,\r\n  styleUrls: ['./current-user-image.component.scss'],\r\n  imports: [AsyncPipe],\r\n})\r\nexport class CurrentUserImageComponent implements ThemeLepton.CurrentUserImageComponentInputs {\r\n  public profilePicture$ = inject<BehaviorSubject<ProfilePictureImage>>(PROFILE_PICTURE);\r\n\r\n  readonly classes = input<string>(undefined);\r\n}\r\n","import { Component } from '@angular/core';\r\nimport { RouterOutlet } from '@angular/router';\r\nimport { eLayoutType } from '@abp/ng.core';\r\n\r\n@Component({\r\n  selector: 'abp-layout-empty',\r\n  template: ` <router-outlet></router-outlet> `,\r\n  imports: [RouterOutlet],\r\n})\r\nexport class EmptyLayoutComponent {\r\n  // required for dynamic component\r\n  static type = eLayoutType.empty;\r\n}\r\n","import { Component, computed, inject, signal } from '@angular/core';\r\nimport { Location } from '@angular/common';\r\nimport { ActivatedRoute, Router } from '@angular/router';\r\nimport { Subject } from 'rxjs';\r\nimport { RouterEvents, LocalizationPipe } from '@abp/ng.core';\r\nimport { HTTP_ERROR_STATUS, HTTP_ERROR_DETAIL } from '@abp/ng.theme.shared';\r\n@Component({\r\n  selector: 'abp-http-error',\r\n  templateUrl: './http-error.component.html',\r\n  imports: [LocalizationPipe],\r\n})\r\nexport class HttpErrorComponent {\r\n  protected readonly activatedRoute = inject(ActivatedRoute);\r\n  protected readonly router = inject(Router);\r\n  protected readonly location = inject(Location);\r\n  protected readonly routerEvents = inject(RouterEvents);\r\n\r\n  destroy$: Subject<void>;\r\n\r\n  readonly status = signal(0);\r\n\r\n  protected readonly errorStatusText = computed(() => HTTP_ERROR_STATUS[this.status()] ?? '');\r\n  protected readonly errorDetail = computed(() => HTTP_ERROR_DETAIL[this.status()] ?? '');\r\n\r\n  readonly lastNavigation = this.routerEvents.previousNavigation;\r\n  readonly currentNavigation = this.routerEvents.currentNavigation;\r\n\r\n  constructor() {\r\n    const { status } = this.activatedRoute.snapshot.queryParams;\r\n\r\n    if (!isNaN(status)) {\r\n      this.status.set(+status);\r\n    }\r\n  }\r\n\r\n  goBack(): void {\r\n    const url = this.status() === 404 ? this.currentNavigation() : this.lastNavigation();\r\n\r\n    if (url) {\r\n      this.router.navigateByUrl(url, { onSameUrlNavigation: 'reload' });\r\n    } else {\r\n      this.location.back();\r\n    }\r\n\r\n    this.destroy$?.next();\r\n  }\r\n\r\n  goHome(): void {\r\n    this.router.navigateByUrl('/', { onSameUrlNavigation: 'reload' });\r\n    this.destroy$?.next();\r\n  }\r\n}\r\n","<div class=\"container\">\r\n  <div class=\"row\">\r\n    <div class=\"col-lg-10 col-md-11 mx-auto\">\r\n      <div class=\"d-flex flex-column justify-content-center min-vh-100 align-items-center\">\r\n        <div class=\"card\">\r\n          <div class=\"card-body p-lg-5\">\r\n            <div class=\"row\">\r\n              <div class=\"col-auto d-flex align-items-center\">\r\n                <i\r\n                  class=\"fa fa-frown-o text-danger mb-3 mb-md-0 mx-3 mx-md-4\"\r\n                  style=\"font-size: 12em\"\r\n                ></i>\r\n              </div>\r\n              <div class=\"col flex-center ps-lg-4\">\r\n                <div class=\"status-content\">\r\n                  <h1>{{ status() }}</h1>\r\n                  <h2 class=\"text-danger mb-0\">\r\n                    {{ errorStatusText() | abpLocalization }}\r\n                    <h3 class=\"text-muted\">{{ errorDetail() | abpLocalization }}</h3>\r\n                  </h2>\r\n\r\n                  <p class=\"mt-3 mb-4\"></p>\r\n                  <a\r\n                    (click)=\"goHome()\"\r\n                    class=\"go-home-button btn btn-primary\"\r\n                    data-id=\"go-home-button\"\r\n                  >\r\n                    {{ 'AbpUi::GoHomePage' | abpLocalization }}\r\n                  </a>\r\n\r\n                  @if (lastNavigation() && status() !== 403) {\r\n                    <a\r\n                      class=\"go-back-button mt-4 mb-1 d-block\"\r\n                      (click)=\"goBack()\"\r\n                      data-id=\"go-back-button\"\r\n                    >\r\n                      <i class=\"fa fa-long-arrow-left me-1\" aria-hidden=\"true\"></i>\r\n                      {{ 'AbpUi::GoBack' | abpLocalization }}\r\n                    </a>\r\n                  }\r\n                </div>\r\n              </div>\r\n            </div>\r\n          </div>\r\n        </div>\r\n      </div>\r\n    </div>\r\n  </div>\r\n</div>","import { Component, inject, TrackByFunction } from '@angular/core';\r\nimport { NgComponentOutlet, AsyncPipe } from '@angular/common';\r\nimport { NgbDropdown, NgbDropdownToggle, NgbDropdownMenu } from '@ng-bootstrap/ng-bootstrap';\r\nimport {\r\n  AuthService,\r\n  ConfigStateService,\r\n  SessionStateService,\r\n  ReplaceableTemplateDirective,\r\n  PermissionDirective,\r\n  LocalizationPipe,\r\n  ToInjectorPipe,\r\n} from '@abp/ng.core';\r\nimport { UserMenu, AbpVisibleDirective, UserMenuService } from '@abp/ng.theme.shared';\r\nimport { eThemeLeptonComponents } from '../../enums/components';\r\nimport { CurrentUserImageComponent } from '../current-user-image/current-user-image.component';\r\n\r\n@Component({\r\n  selector: 'abp-current-user',\r\n  // tslint:disable-next-line: component-max-inline-declarations\r\n  templateUrl: 'current-user.component.html',\r\n  imports: [\r\n    NgbDropdown,\r\n    NgbDropdownToggle,\r\n    ReplaceableTemplateDirective,\r\n    CurrentUserImageComponent,\r\n    NgbDropdownMenu,\r\n    AbpVisibleDirective,\r\n    ReplaceableTemplateDirective,\r\n    PermissionDirective,\r\n    NgComponentOutlet,\r\n    AsyncPipe,\r\n    LocalizationPipe,\r\n    ToInjectorPipe,\r\n  ],\r\n})\r\nexport class CurrentUserComponent {\r\n  readonly userMenu = inject(UserMenuService);\r\n  private authService = inject(AuthService);\r\n  private sessionState = inject(SessionStateService);\r\n  private configState = inject(ConfigStateService);\r\n\r\n  currentUser$ = this.configState.getOne$('currentUser');\r\n\r\n  selectedTenant$ = this.sessionState.getTenant$();\r\n\r\n  currentUserImageComponentKey = eThemeLeptonComponents.CurrentUserImage;\r\n\r\n  trackByFn: TrackByFunction<UserMenu> = (_, element) => element.id;\r\n\r\n  get smallScreen(): boolean {\r\n    return window.innerWidth < 992;\r\n  }\r\n\r\n  navigateToLogin() {\r\n    this.authService.navigateToLogin();\r\n  }\r\n}\r\n","@if (currentUser$ | async; as user) {\r\n  @if (user.isAuthenticated) {\r\n    <div class=\"dropdown btn-group\" ngbDropdown>\r\n      <a ngbDropdownToggle class=\"btn pointer d-flex\">\r\n        <abp-current-user-image\r\n          *abpReplaceableTemplate=\"{\r\n            componentKey: currentUserImageComponentKey,\r\n            inputs: { currentUser: { value: user }, classes: { value: 'user-avatar' } },\r\n          }\"\r\n          classes=\"user-avatar\"\r\n        ></abp-current-user-image>\r\n        <span class=\"ms-1\">\r\n          @if ((selectedTenant$ | async)?.name; as tenantName) {\r\n            <small>\r\n              <i>{{ tenantName }}</i\r\n              >\\\r\n            </small>\r\n          }\r\n          <span>{{ user.userName }}</span>\r\n        </span>\r\n      </a>\r\n      <div ngbDropdownMenu class=\"dropdown-menu dropdown-menu-end\" data-bs-popper=\"none\">\r\n        <div class=\"p-2 row\">\r\n          <div class=\"col col-auto\">\r\n            <abp-current-user-image\r\n              *abpReplaceableTemplate=\"{\r\n                componentKey: currentUserImageComponentKey,\r\n                inputs: { currentUser: { value: user }, classes: { value: 'user-avatar-big' } },\r\n              }\"\r\n              classes=\"user-avatar-big\"\r\n            ></abp-current-user-image>\r\n          </div>\r\n          <div class=\"col px-0\">\r\n            <span>{{ 'AbpAccount::Welcome' | abpLocalization }}</span\r\n            ><br />\r\n            @if ((selectedTenant$ | async)?.name; as tenantName) {\r\n              <small>\r\n                <i>{{ tenantName }}</i\r\n                >\\\r\n              </small>\r\n            }\r\n            <span class=\"fw-bold\">\r\n              {{ ((user.name || '') + ' ' + (user.surName || '')).trim() || user.userName }}\r\n            </span>\r\n          </div>\r\n        </div>\r\n        <div class=\"dropdown-divider\"></div>\r\n\r\n        @for (item of userMenu.items$ | async; track $index) {\r\n          <ng-container *abpVisible=\"!item.visible || item.visible(item)\">\r\n            <li class=\"nav-item d-flex align-items-center\" *abpPermission=\"item.requiredPolicy\">\r\n              @if (item.component) {\r\n                <ng-container\r\n                  [ngComponentOutlet]=\"item.component\"\r\n                  [ngComponentOutletInjector]=\"item | toInjector\"\r\n                ></ng-container>\r\n              } @else {\r\n                @if (item.html) {\r\n                  <div [innerHTML]=\"item.html\" (click)=\"item.action ? item.action() : null\"></div>\r\n                } @else {\r\n                  @if (item.textTemplate) {\r\n                    <a (click)=\"item.action ? item.action() : null\" class=\"dropdown-item pointer\">\r\n                      @if (item.textTemplate.icon) {\r\n                        <i class=\"me-1 {{ item.textTemplate.icon }}\"></i>\r\n                      }\r\n                      {{ item.textTemplate.text | abpLocalization }}\r\n                    </a>\r\n                  }\r\n                }\r\n              }\r\n            </li>\r\n          </ng-container>\r\n        }\r\n      </div>\r\n    </div>\r\n  } @else {\r\n    <a role=\"button\" class=\"btn\" (click)=\"navigateToLogin()\">\r\n      <i class=\"fas fa-sign-in-alt me-1\" aria-hidden=\"true\"></i>\r\n      {{ 'AbpAccount::Login' | abpLocalization }}</a\r\n    >\r\n  }\r\n}\r\n","import { Component, inject, DOCUMENT, PLATFORM_ID } from '@angular/core';\r\nimport { isPlatformServer } from '@angular/common';\r\n\r\n@Component({\r\n  selector: 'abp-full-screen',\r\n  template: `\r\n    <a\r\n      href=\"javascript:void(0);\"\r\n      class=\"btn\"\r\n      id=\"btnFullscreen\"\r\n      (click)=\"toggleFullscreen()\"\r\n      [class.expanded]=\"fullscreen\"\r\n    >\r\n      <i class=\"fas fa-expand\"></i>\r\n      <i class=\"fas fa-compress\"></i>\r\n    </a>\r\n  `,\r\n})\r\nexport class FullScreenComponent {\r\n  protected readonly document = inject(DOCUMENT);\r\n  protected readonly platformId = inject(PLATFORM_ID);\r\n\r\n  get fullscreen(): boolean {\r\n    if (isPlatformServer(this.platformId)) {\r\n      return false;\r\n    }\r\n    return this.document.defaultView.innerHeight === screen.height;\r\n  }\r\n\r\n  toggleFullscreen() {\r\n    const elem: any = document.documentElement;\r\n    if (\r\n      !document.fullscreenElement &&\r\n      !(document as any).mozFullScreenElement &&\r\n      !(document as any).webkitFullscreenElement &&\r\n      !(document as any).msFullscreenElement\r\n    ) {\r\n      if (elem.requestFullscreen) {\r\n        elem.requestFullscreen();\r\n      } else if (elem.msRequestFullscreen) {\r\n        elem.msRequestFullscreen();\r\n      } else if (elem.mozRequestFullScreen) {\r\n        elem.mozRequestFullScreen();\r\n      } else if (elem.webkitRequestFullscreen) {\r\n        elem.webkitRequestFullscreen((Element as any).ALLOW_KEYBOARD_INPUT);\r\n      }\r\n    } else {\r\n      if (document.exitFullscreen) {\r\n        document.exitFullscreen();\r\n      } else if ((document as any).msExitFullscreen) {\r\n        (document as any).msExitFullscreen();\r\n      } else if ((document as any).mozCancelFullScreen) {\r\n        (document as any).mozCancelFullScreen();\r\n      } else if ((document as any).webkitExitFullscreen) {\r\n        (document as any).webkitExitFullscreen();\r\n      }\r\n    }\r\n  }\r\n}\r\n","import { AsyncPipe } from '@angular/common';\r\nimport { Component, inject } from '@angular/core';\r\nimport { NgbDropdown, NgbDropdownToggle, NgbDropdownMenu } from '@ng-bootstrap/ng-bootstrap';\r\nimport { Observable } from 'rxjs';\r\nimport { map } from 'rxjs/operators';\r\nimport { ConfigStateService, LanguageInfo, SessionStateService } from '@abp/ng.core';\r\nimport { ENABLE_FLAG_ICON } from '@volo/abp.commercial.ng.ui/config';\r\n\r\n@Component({\r\n  selector: 'abp-languages',\r\n  // tslint:disable-next-line: component-max-inline-declarations\r\n  template: `\r\n    @let hasMultipleLanguages = (languages$ | async)?.length > 1;\r\n    @if (hasMultipleLanguages) {\r\n      <div class=\"dropdown\" ngbDropdown>\r\n        @if (defaultLanguage$ | async; as defaultLang) {\r\n          <a class=\"btn\" role=\"button\" id=\"dropdownMenuLink\" ngbDropdownToggle>\r\n            @if (isFlagIconEnabled) {\r\n              <span\r\n                class=\"fi fis fi-{{ defaultLang.flagIcon }}\"\r\n                [title]=\"defaultLang.displayName\"\r\n              ></span>\r\n            }\r\n            <span class=\"current-language-name ms-1\">{{ defaultLang.displayName }}</span>\r\n          </a>\r\n        }\r\n        <div ngbDropdownMenu class=\"dropdown-menu dropdown-menu-end\" data-bs-popper=\"none\">\r\n          @for (lang of (dropdownLanguages$ | async) || []; track $index) {\r\n            <a class=\"dropdown-item pointer\" (click)=\"changeLang(lang.cultureName)\">\r\n              @if (isFlagIconEnabled) {\r\n                <span class=\"fi fi-{{ lang.flagIcon }} fis me-2\"></span>\r\n              }\r\n              {{ lang?.displayName }}</a\r\n            >\r\n          }\r\n        </div>\r\n      </div>\r\n    }\r\n  `,\r\n  imports: [NgbDropdown, NgbDropdownToggle, NgbDropdownMenu, AsyncPipe],\r\n})\r\nexport class LanguagesComponent {\r\n  private configState = inject(ConfigStateService);\r\n  private sessionState = inject(SessionStateService);\r\n  public isFlagIconEnabled = inject<boolean>(ENABLE_FLAG_ICON);\r\n\r\n  get smallScreen(): boolean {\r\n    return window.innerWidth < 992;\r\n  }\r\n\r\n  languages$ = this.configState.getDeep$('localization.languages');\r\n\r\n  get defaultLanguage$(): Observable<{ displayName: string; flagIcon: string }> {\r\n    return this.languages$.pipe(\r\n      map(languages => {\r\n        const lang: Partial<LanguageInfo> =\r\n          languages?.find(language => language.cultureName === this.selectedLangCulture) ||\r\n          ({} as Partial<LanguageInfo>);\r\n        return {\r\n          displayName: lang.displayName || '',\r\n          flagIcon: lang.flagIcon,\r\n        };\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  changeLang(cultureName: string) {\r\n    this.sessionState.setLanguage(cultureName);\r\n  }\r\n}\r\n","import { InjectionToken } from '@angular/core';\r\n\r\nexport const CUSTOM_STYLE = new InjectionToken<boolean>('CUSTOM_STYLE');\r\n","import { AfterViewInit, Component, inject, OnInit } from '@angular/core';\r\nimport { UntypedFormBuilder, FormsModule, ReactiveFormsModule } from '@angular/forms';\r\nimport { finalize } from 'rxjs/operators';\r\nimport { NgxValidateCoreModule } from '@ngx-validate/core';\r\nimport { SubscriptionService, LocalizationPipe } from '@abp/ng.core';\r\nimport { collapse, ToasterService, ButtonComponent } from '@abp/ng.theme.shared';\r\nimport { MenuPlacement, MenuStatus } from '@volo/abp.ng.theme.lepton/proxy';\r\nimport { LayoutService } from '../../services/layout.service';\r\nimport { CUSTOM_STYLE } from '../../tokens/custom-style.token';\r\n\r\n@Component({\r\n  selector: 'abp-lepton-settings',\r\n  templateUrl: './settings.component.html',\r\n  animations: [collapse],\r\n  imports: [\r\n    FormsModule,\r\n    ReactiveFormsModule,\r\n    NgxValidateCoreModule,\r\n    LocalizationPipe,\r\n    ButtonComponent,\r\n  ],\r\n})\r\nexport class SettingsComponent implements OnInit, AfterViewInit {\r\n  protected readonly subscription = inject(SubscriptionService);\r\n  protected readonly layoutService = inject(LayoutService);\r\n  protected readonly toaster = inject(ToasterService);\r\n  protected readonly fb = inject(UntypedFormBuilder);\r\n  protected readonly customStyle = inject(CUSTOM_STYLE);\r\n\r\n  protected readonly form = this.fb.group({\r\n    ...(!this.customStyle && { style: [] }),\r\n    publicLayoutStyle: [],\r\n    menuPlacement: [],\r\n    menuStatus: [],\r\n    boxedLayout: [],\r\n  });\r\n\r\n  placements = { Left: MenuPlacement.Left, Top: MenuPlacement.Top };\r\n\r\n  statuses = {\r\n    AlwaysOpened: MenuStatus.AlwaysOpened,\r\n    OpenOnHover: MenuStatus.OpenOnHover,\r\n  };\r\n\r\n  boxedLayout = false;\r\n\r\n  loading: boolean;\r\n\r\n  viewInitialized = false;\r\n\r\n  get isSmallScreen(): boolean {\r\n    return window.innerWidth < 992;\r\n  }\r\n\r\n  ngOnInit(): void {\r\n    this.subscription.addOne(\r\n      this.layoutService.fetchThemeSettings(),\r\n      ({ boxedLayout, menuPlacement, menuStatus, style, publicLayoutStyle }) => {\r\n        this.form.patchValue({\r\n          menuPlacement,\r\n          boxedLayout,\r\n          ...(!this.customStyle && { style: style || 0 }),\r\n          publicLayoutStyle: publicLayoutStyle || 0,\r\n          menuStatus,\r\n        });\r\n      },\r\n    );\r\n  }\r\n\r\n  ngAfterViewInit() {\r\n    setTimeout(() => (this.viewInitialized = true), 0);\r\n  }\r\n\r\n  save() {\r\n    this.loading = true;\r\n    const successFn = () => {\r\n      this.toaster.success('AbpUi::SavedSuccessfully', null);\r\n    };\r\n\r\n    this.layoutService\r\n      .updateThemeSettings(this.form.value)\r\n      .pipe(finalize(() => (this.loading = false)))\r\n      .subscribe(successFn);\r\n  }\r\n}\r\n","<form id=\"LeptonThemeSettingsForm\" novalidate=\"novalidate\" [formGroup]=\"form\">\r\n  <div class=\"row\">\r\n    <div class=\"col col-md-12\">\r\n      <div>\r\n        @if (!customStyle) {\r\n          <div class=\"mb-3\">\r\n            <label for=\"Style\" class=\"form-label\">{{\r\n              'LeptonThemeManagement::DisplayName:Style' | abpLocalization\r\n            }}</label>\r\n            <select\r\n              class=\"form-select form-control valid\"\r\n              id=\"Style\"\r\n              name=\"Style\"\r\n              formControlName=\"style\"\r\n            >\r\n              <option [ngValue]=\"0\">Style1</option>\r\n              <option [ngValue]=\"1\">Style2</option>\r\n              <option [ngValue]=\"2\">Style3</option>\r\n              <option [ngValue]=\"3\">Style4</option>\r\n              <option [ngValue]=\"4\">Style5</option>\r\n              <option [ngValue]=\"5\">Style6</option>\r\n            </select>\r\n\r\n            <span\r\n              class=\"text-danger field-validation-valid\"\r\n              data-valmsg-for=\"Style\"\r\n              data-valmsg-replace=\"true\"\r\n            ></span>\r\n          </div>\r\n        }\r\n        <div class=\"mb-3\">\r\n          <label for=\"PublicLayoutStyle\" class=\"form-label\">{{\r\n            'LeptonThemeManagement::DisplayName:PublicLayoutStyle' | abpLocalization\r\n          }}</label>\r\n          <select\r\n            class=\"form-select form-control valid\"\r\n            id=\"PublicLayoutStyle\"\r\n            name=\"PublicLayoutStyle\"\r\n            formControlName=\"publicLayoutStyle\"\r\n          >\r\n            <option [ngValue]=\"0\">Style1</option>\r\n            <option [ngValue]=\"1\">Style2</option>\r\n            <option [ngValue]=\"2\">Style3</option>\r\n            <option [ngValue]=\"3\">Style4</option>\r\n            <option [ngValue]=\"4\">Style5</option>\r\n            <option [ngValue]=\"5\">Style6</option>\r\n          </select>\r\n\r\n          <span\r\n            class=\"text-danger field-validation-valid\"\r\n            data-valmsg-for=\"PublicLayoutStyle\"\r\n            data-valmsg-replace=\"true\"\r\n          ></span>\r\n        </div>\r\n        @if (!isSmallScreen) {\r\n          <div class=\"mb-3\">\r\n            <label for=\"MenuPlacement\" class=\"form-label\">{{\r\n              'LeptonThemeManagement::DisplayName:MenuPlacement' | abpLocalization\r\n            }}</label>\r\n            <select\r\n              class=\"form-select form-control valid\"\r\n              id=\"MenuPlacement\"\r\n              name=\"MenuPlacement\"\r\n              formControlName=\"menuPlacement\"\r\n            >\r\n              <option [ngValue]=\"placements.Left\">\r\n                {{ 'LeptonThemeManagement::Left' | abpLocalization }}\r\n              </option>\r\n              <option [ngValue]=\"placements.Top\">\r\n                {{ 'LeptonThemeManagement::Top' | abpLocalization }}\r\n              </option>\r\n            </select>\r\n          </div>\r\n          <div\r\n            class=\"mb-3\"\r\n            [@collapse]=\"\r\n              form.value.menuPlacement === placements.Left\r\n                ? viewInitialized\r\n                  ? 'expanded'\r\n                  : ''\r\n                : 'collapsed'\r\n            \"\r\n          >\r\n            <label for=\"MenuStatus\" class=\"form-label\">{{\r\n              'LeptonThemeManagement::DisplayName:MenuStatus' | abpLocalization\r\n            }}</label>\r\n            <select\r\n              class=\"form-select form-control valid\"\r\n              id=\"MenuStatus\"\r\n              name=\"MenuStatus\"\r\n              formControlName=\"menuStatus\"\r\n            >\r\n              <option [ngValue]=\"statuses.AlwaysOpened\">\r\n                {{ 'LeptonThemeManagement::AlwaysOpened' | abpLocalization }}\r\n              </option>\r\n              <option [ngValue]=\"statuses.OpenOnHover\">\r\n                {{ 'LeptonThemeManagement::OpenOnHover' | abpLocalization }}\r\n              </option>\r\n            </select>\r\n          </div>\r\n          <div class=\"form-check mb-2\">\r\n            <input\r\n              type=\"checkbox\"\r\n              id=\"BoxedLayout\"\r\n              name=\"BoxedLayout\"\r\n              value=\"true\"\r\n              class=\"form-check-input\"\r\n              formControlName=\"boxedLayout\"\r\n            /><label class=\"form-check-label\" for=\"BoxedLayout\">{{\r\n              'LeptonThemeManagement::DisplayName:BoxedLayout' | abpLocalization\r\n            }}</label>\r\n          </div>\r\n        }\r\n      </div>\r\n      <hr class=\"my-4\" />\r\n      <div>\r\n        <abp-button buttonType=\"button\" (click)=\"save()\" [loading]=\"loading\" iconClass=\"fa fa-save\"\r\n          >{{ 'LeptonThemeManagement::Save' | abpLocalization }}\r\n        </abp-button>\r\n      </div>\r\n    </div>\r\n  </div>\r\n</form>\r\n","import { ChangeDetectionStrategy, Component, ViewEncapsulation } from '@angular/core';\r\nimport { NgFor } from '@angular/common';\r\nimport { Validation, ValidationErrorComponent as ErrorComponent } from '@ngx-validate/core';\r\nimport { LocalizationPipe } from '@abp/ng.core';\r\n\r\n@Component({\r\n  selector: 'abp-validation-error',\r\n  template: `\r\n    <span\r\n      class=\"field-validation-error text-danger\"\r\n      data-valmsg-for=\"Role.Name\"\r\n      data-valmsg-replace=\"true\"\r\n    >\r\n      <span *ngFor=\"let error of abpErrors; trackBy: trackByFn\">\r\n        {{ error.message | abpLocalization: error.interpoliteParams }}\r\n      </span>\r\n    </span>\r\n  `,\r\n  changeDetection: ChangeDetectionStrategy.OnPush,\r\n  encapsulation: ViewEncapsulation.None,\r\n  styles: [\r\n    `\r\n      .form-check + * .field-validation-error span,\r\n      ngb-timepicker + * .field-validation-error span {\r\n        background: transparent !important;\r\n        border: 0 !important;\r\n        color: currentColor !important;\r\n        padding: 0 !important;\r\n      }\r\n    `,\r\n  ],\r\n  imports: [NgFor, LocalizationPipe],\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","export const LEPTON_STYLE_ELEMENT_ID = 'lepton-styles';\r\n","import { NavItemsService } from '@abp/ng.theme.shared';\r\nimport { inject, provideAppInitializer } from '@angular/core';\r\nimport { CurrentUserComponent } from '../components/nav-items/current-user.component';\r\nimport { FullScreenComponent } from '../components/nav-items/full-screen.component';\r\nimport { LanguagesComponent } from '../components/nav-items/languages.component';\r\nimport { eThemeLeptonComponents } from '../enums/components';\r\n\r\nexport const LEPTON_THEME_NAV_ITEM_PROVIDERS = [\r\n  provideAppInitializer(() => {\r\n    configureNavItems();\r\n  }),\r\n];\r\n\r\nexport function configureNavItems() {\r\n  const navItems = inject(NavItemsService);\r\n  navItems.addItems([\r\n    {\r\n      id: eThemeLeptonComponents.Languages,\r\n      order: 100,\r\n      component: LanguagesComponent,\r\n    },\r\n    {\r\n      id: eThemeLeptonComponents.CurrentUser,\r\n      order: 100,\r\n      component: CurrentUserComponent,\r\n    },\r\n    {\r\n      id: eThemeLeptonComponents.FullScreen,\r\n      order: 100,\r\n      component: FullScreenComponent,\r\n    },\r\n  ]);\r\n}\r\n","import { SettingTabsService } from '@abp/ng.setting-management/config';\r\nimport { inject, provideAppInitializer } from '@angular/core';\r\nimport { SettingsComponent } from '../components/settings/settings.component';\r\nimport { eLeptonThemeSettingTabNames } from '../enums/setting-tab-names';\r\n\r\nexport const LEPTON_THEME_SETTING_TAB_PROVIDERS = [\r\n  provideAppInitializer(() => {\r\n    configureSettingTabs();\r\n  }),\r\n];\r\n\r\nexport function configureSettingTabs() {\r\n  const settingtabs = inject(SettingTabsService);\r\n  settingtabs.add([\r\n    {\r\n      name: eLeptonThemeSettingTabNames.LeptonThemeManagement,\r\n      order: 102,\r\n      component: SettingsComponent,\r\n      requiredPolicy: 'LeptonThemeManagement.Settings',\r\n    },\r\n  ]);\r\n}\r\n","export default `\r\n.custom-day {\r\n  text-align: center;\r\n  width: 2rem;\r\n  height: 2rem;\r\n  line-height: 2rem;\r\n  border-radius: .25rem;\r\n}\r\n\r\n.abp-loading {\r\n  background: rgba(0, 0, 0, 0.03);\r\n}\r\n\r\n[dir=rtl].lp-opened-sidebar .lp-content {\r\n  padding: 0 300px 24px 36px;\r\n}\r\n\r\n[dir=rtl].lp-closed .lp-content {\r\n  padding: 0 114px 24px 36px;\r\n}\r\n\r\n[dir=rtl] .lp-sidebar {\r\n  left: auto;\r\n  right: 0;\r\n}\r\n\r\n[dir=rtl] .lp-sidebar .lp-sidebar-navi>ul ul li a {\r\n  padding-left: 6px;\r\n  padding-right: 46px;\r\n}\r\n\r\n[dir=rtl] .lp-toggle-sidebar {\r\n  left: auto;\r\n  right: 15px;\r\n}\r\n\r\n[dir=rtl] .navbar-brand {\r\n  margin-left: 1rem;\r\n  margin-right: 0;\r\n}\r\n\r\n[dir=rtl] header .toolbar-nav {\r\n  padding-right: 0;\r\n  padding-left: 10px;\r\n}\r\n\r\n[dir=rtl] .nav-mobile {\r\n  left: 15px;\r\n  right: auto;\r\n}\r\n\r\n.ngb-dp-day .btn-light {\r\n  box-shadow: none;\r\n}\r\n\r\n.dropdown {\r\n  z-index: 1055 !important;\r\n}\r\n\r\n.ngb-dropdown {\r\n  z-index: 3 !important;\r\n}\r\n\r\n:root {\r\n  --logo: url(/assets/images/logo/logo-light.png);\r\n  --logo-reverse: url(/assets/images/logo/logo-dark.png);\r\n}\r\n`;\r\n","import {\r\n  ConfigStateService,\r\n  CONTENT_STRATEGY,\r\n  CurrentCultureDto,\r\n  DOM_STRATEGY,\r\n  DomInsertionService,\r\n  ReplaceableComponentsService,\r\n  StyleContentStrategy,\r\n} from '@abp/ng.core';\r\nimport {\r\n  Injector,\r\n  RendererFactory2,\r\n  inject,\r\n  provideAppInitializer,\r\n  DOCUMENT,\r\n  PLATFORM_ID,\r\n} from '@angular/core';\r\n\r\nimport { combineLatest, Observable, of } from 'rxjs';\r\nimport { distinctUntilChanged, map, switchMap, tap } from 'rxjs/operators';\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 { LEPTON_STYLE_ELEMENT_ID } from '../constants/lepton-constants';\r\nimport styles from '../constants/styles';\r\nimport { eThemeLeptonComponents } from '../enums/components';\r\nimport { LayoutStateService } from '../services/layout-state.service';\r\nimport { CUSTOM_STYLE } from '../tokens/custom-style.token';\r\nimport { isPlatformServer } from '@angular/common';\r\n\r\nexport const LEPTON_THEME_STYLES_PROVIDERS = [\r\n  provideAppInitializer(() => {\r\n    configureStyles();\r\n  }),\r\n];\r\n\r\nexport function configureStyles() {\r\n  const injector = inject(Injector);\r\n  injectStyle(injector);\r\n  initLeptonStyleHandler(injector);\r\n  initLayouts(injector);\r\n}\r\n\r\nexport function injectStyle(injector: Injector) {\r\n  const rendererFactory = injector.get(RendererFactory2);\r\n  const domInsertion = injector.get(DomInsertionService);\r\n  const _document = injector.get(DOCUMENT);\r\n\r\n  rendererFactory\r\n    .createRenderer(_document.body, null)\r\n    .addClass(_document.body, 'abp-application-layout');\r\n\r\n  const appStyles: HTMLElement = _document.querySelector('link[rel=\"stylesheet\"][href*=\"styles\"]');\r\n  let content: StyleContentStrategy;\r\n  if (appStyles) {\r\n    const domStrategy = DOM_STRATEGY.BeforeElement(appStyles);\r\n    content = new StyleContentStrategy(styles, domStrategy, undefined, {\r\n      id: LEPTON_STYLE_ELEMENT_ID,\r\n    });\r\n  } else {\r\n    content = CONTENT_STRATEGY.AppendStyleToHead(styles, { id: LEPTON_STYLE_ELEMENT_ID });\r\n  }\r\n\r\n  domInsertion.insertContent(content);\r\n}\r\n\r\nexport const getLeptonStyle = (type: number, suffix: string): Observable<string> => {\r\n  return of(`lepton${type}${suffix}`);\r\n};\r\n\r\nexport function initLeptonStyleHandler(injector: Injector) {\r\n  const layoutState = injector.get(LayoutStateService);\r\n  const configStateService = injector.get(ConfigStateService);\r\n  const customStyle = injector.get(CUSTOM_STYLE);\r\n  const platformId = inject(PLATFORM_ID);\r\n\r\n  if (isPlatformServer(platformId)) return;\r\n\r\n  if (customStyle) {\r\n    removeLeptonLoader();\r\n    return;\r\n  }\r\n\r\n  const removeLeptonStyles = (element: HTMLLinkElement, injector: Injector) => {\r\n    const domInsertionService = injector.get(DomInsertionService);\r\n    if (element) domInsertionService.removeContent(element);\r\n  };\r\n\r\n  const style$ = configStateService\r\n    .getSetting$('Volo.Abp.LeptonTheme.Style')\r\n    .pipe(map((style: string) => Number((style || 'Style1').replace('Style', ''))));\r\n  const suffix$ = configStateService\r\n    .getDeep$('localization.currentCulture')\r\n    .pipe(map((currentLang: CurrentCultureDto) => (currentLang?.isRightToLeft ? '.rtl' : '')));\r\n\r\n  combineLatest([style$, suffix$])\r\n    .pipe(\r\n      distinctUntilChanged((prev, curr) => prev[0] === curr[0] && prev[1] === curr[1]),\r\n      tap(removeLeptonLoader),\r\n      switchMap(([style, suffix]) =>\r\n        loadLeptonStyle(style, suffix, injector).pipe(map(element => ({ element, style }))),\r\n      ),\r\n    )\r\n    .subscribe(result => {\r\n      const styleElement = layoutState.get('styleElement');\r\n      removeLeptonStyles(styleElement, injector);\r\n      layoutState.patch({ style: result.style, styleElement: result.element });\r\n    });\r\n}\r\n\r\nexport function loadLeptonStyle(\r\n  type: number,\r\n  suffix: string,\r\n  injector: Injector,\r\n): Observable<HTMLLinkElement> {\r\n  const _document = injector.get(DOCUMENT);\r\n  const leptonStyles: HTMLElement = _document.querySelector(\r\n    `style[id=\"${LEPTON_STYLE_ELEMENT_ID}\"]`,\r\n  );\r\n\r\n  const domStrategy = leptonStyles\r\n    ? DOM_STRATEGY.BeforeElement(leptonStyles)\r\n    : DOM_STRATEGY.AppendToHead();\r\n\r\n  const oldThemes = Array.from(_document.querySelectorAll('link[id^=\"lepton\"]'));\r\n  for (const theme of oldThemes) {\r\n    _document.head.removeChild(theme);\r\n  }\r\n\r\n  return getLeptonStyle(type, suffix).pipe(\r\n    map(bundleName => {\r\n      const linkElem = _document.createElement('link');\r\n      linkElem.setAttribute('rel', 'stylesheet');\r\n      linkElem.setAttribute('href', `${bundleName}.css`);\r\n      linkElem.setAttribute('id', `lepton${type}${suffix}`);\r\n      domStrategy.insertElement(linkElem);\r\n      return linkElem;\r\n    }),\r\n  );\r\n}\r\n\r\nexport function removeLeptonLoader() {\r\n  if (typeof window === 'undefined' || typeof document === 'undefined') return;\r\n  const loader: HTMLElement = document.querySelector('#lp-page-loader');\r\n  if (!loader) return;\r\n  loader.style.background = 'var(--background)';\r\n  setTimeout(() => loader.parentNode?.removeChild(loader), 500);\r\n}\r\n\r\nexport function initLayouts(injector: Injector) {\r\n  const replaceableComponents = injector.get(ReplaceableComponentsService);\r\n\r\n  replaceableComponents.add({\r\n    key: eThemeLeptonComponents.ApplicationLayout,\r\n    component: ApplicationLayoutComponent,\r\n  });\r\n  replaceableComponents.add({\r\n    key: eThemeLeptonComponents.AccountLayout,\r\n    component: AccountLayoutComponent,\r\n  });\r\n  replaceableComponents.add({\r\n    key: eThemeLeptonComponents.EmptyLayout,\r\n    component: EmptyLayoutComponent,\r\n  });\r\n}\r\n","import { ConfigStateService, featuresFactory } from '@abp/ng.core';\r\nimport { inject, InjectionToken, provideAppInitializer } from '@angular/core';\r\nimport { ModuleVisibility, setModuleVisibilityFactory } from '@volo/abp.commercial.ng.ui/config';\r\nimport { SettingTabsService } from '@abp/ng.setting-management/config';\r\nimport { Observable } from 'rxjs';\r\nimport { eLeptonThemeSettingTabNames } from '../enums/setting-tab-names';\r\n\r\nexport const LEPTON_THEME_FEATURES = new InjectionToken<Observable<ModuleVisibility>>(\r\n  'LEPTON_THEME_FEATURES',\r\n  {\r\n    providedIn: 'root',\r\n    factory: () => {\r\n      const configState = inject(ConfigStateService);\r\n      const featureKey = 'LeptonManagement.Enable';\r\n      const mapFn = features => ({\r\n        enable: features[featureKey]?.toLowerCase() || 'false' !== 'false',\r\n      });\r\n\r\n      return featuresFactory(configState, [featureKey], mapFn);\r\n    },\r\n  },\r\n);\r\n\r\nexport const SET_LEPTON_THEME_SETTING_TAB_VISIBILITY = new InjectionToken(\r\n  'SET_LEPTON_THEME_SETTING_TAB_VISIBILITY',\r\n  {\r\n    providedIn: 'root',\r\n    factory: () => {\r\n      const settingTabs = inject(SettingTabsService);\r\n      const stream = inject(LEPTON_THEME_FEATURES);\r\n\r\n      setModuleVisibilityFactory(\r\n        stream,\r\n        settingTabs,\r\n        eLeptonThemeSettingTabNames.LeptonThemeManagement,\r\n      ).subscribe();\r\n    },\r\n  },\r\n);\r\n\r\nexport const LEPTON_THEME_FEATURES_PROVIDERS = [\r\n  provideAppInitializer(() => {\r\n    inject(SET_LEPTON_THEME_SETTING_TAB_VISIBILITY);\r\n  }),\r\n];\r\n","import { inject, provideAppInitializer } from '@angular/core';\r\nimport { AuthService, NAVIGATE_TO_MANAGE_PROFILE } from '@abp/ng.core';\r\nimport { UserMenuService } from '@abp/ng.theme.shared';\r\nimport {\r\n  NAVIGATE_TO_MY_SECURITY_LOGS,\r\n  NAVIGATE_TO_MY_SESSIONS,\r\n  OPEN_AUTHORITY_DELEGATION_MODAL,\r\n  OPEN_MY_LINK_USERS_MODAL,\r\n} from '@volo/abp.commercial.ng.ui/config';\r\nimport { eUserMenuItems } from '../enums/user-menu-items';\r\n\r\nexport const LEPTON_THEME_USER_MENU_PROVIDERS = [\r\n  provideAppInitializer(() => {\r\n    configureUserMenu();\r\n  }),\r\n];\r\n\r\nexport function configureUserMenu() {\r\n  const userMenu = inject(UserMenuService);\r\n  const authService = inject(AuthService);\r\n\r\n  const navigateToMySessions = inject(NAVIGATE_TO_MY_SESSIONS);\r\n  const navigateToManageProfile = inject(NAVIGATE_TO_MANAGE_PROFILE);\r\n  const navigateToMySecurityLogs = inject(NAVIGATE_TO_MY_SECURITY_LOGS);\r\n\r\n  const openMyLinkUsersModal = inject(OPEN_MY_LINK_USERS_MODAL, { optional: true }) as () => void;\r\n  const openAuthorityDelegationModal = inject(OPEN_AUTHORITY_DELEGATION_MODAL);\r\n\r\n  userMenu.addItems([\r\n    {\r\n      id: 'Sessions',\r\n      order: 100,\r\n      textTemplate: {\r\n        icon: 'bi bi-clock-fill',\r\n        text: 'AbpAccount::Sessions',\r\n      },\r\n      action: () => navigateToMySessions(),\r\n    },\r\n    {\r\n      id: eUserMenuItems.LinkedAccounts,\r\n      order: 100,\r\n      textTemplate: {\r\n        text: 'AbpAccount::LinkedAccounts',\r\n      },\r\n      action: () => openMyLinkUsersModal(),\r\n      visible: () => !!openMyLinkUsersModal,\r\n    },\r\n    {\r\n      id: eUserMenuItems.AuthorityDelegation,\r\n      order: 100,\r\n      textTemplate: {\r\n        icon: 'lpx-icon fa fa-users',\r\n        text: 'AbpAccount::AuthorityDelegation',\r\n      },\r\n      action: () => openAuthorityDelegationModal(),\r\n    },\r\n    {\r\n      id: eUserMenuItems.MyAccount,\r\n      order: 100,\r\n      textTemplate: {\r\n        text: 'AbpAccount::MyAccount',\r\n      },\r\n      action: () => navigateToManageProfile(),\r\n    },\r\n    {\r\n      id: eUserMenuItems.SecurityLogs,\r\n      order: 100,\r\n      textTemplate: {\r\n        text: 'AbpAccount::MySecurityLogs',\r\n      },\r\n      action: () => navigateToMySecurityLogs(),\r\n    },\r\n    {\r\n      id: eUserMenuItems.Logout,\r\n      order: 101,\r\n      textTemplate: {\r\n        text: 'AbpUi::Logout',\r\n      },\r\n      action: () => {\r\n        authService.logout().subscribe();\r\n      },\r\n    },\r\n  ]);\r\n}\r\n","import { APP_INIT_ERROR_HANDLERS } from '@abp/ng.core';\r\nimport { Provider, makeEnvironmentProviders } from '@angular/core';\r\nimport {\r\n  VALIDATION_ERROR_TEMPLATE,\r\n  VALIDATION_INVALID_CLASSES,\r\n  VALIDATION_TARGET_SELECTOR,\r\n} from '@ngx-validate/core';\r\nimport { PROFILE_PICTURE_PROVIDERS } from '@volo/abp.commercial.ng.ui/config';\r\nimport {\r\n  LEPTON_THEME_FEATURES_PROVIDERS,\r\n  CONTENT_AFTER_ROUTES,\r\n  CONTENT_BEFORE_ROUTES,\r\n  CUSTOM_STYLE,\r\n} from '../tokens';\r\nimport { LEPTON_THEME_NAV_ITEM_PROVIDERS } from './nav-item.provider';\r\nimport { LEPTON_THEME_SETTING_TAB_PROVIDERS } from './setting-tab.provider';\r\nimport { LEPTON_THEME_STYLES_PROVIDERS, removeLeptonLoader } from './styles.provider';\r\nimport { LEPTON_THEME_USER_MENU_PROVIDERS } from './user-menu.provider';\r\nimport { ValidationErrorComponent } from '../components';\r\nimport { ThemeLepton } from '../models';\r\n\r\nexport enum ThemeLeptonFeatureKind {\r\n  Options,\r\n}\r\n\r\nexport interface ThemeLeptonFeature<KindT extends ThemeLeptonFeatureKind> {\r\n  ɵkind: KindT;\r\n  ɵproviders: Provider[];\r\n}\r\n\r\nfunction makeThemeLeptonFeature<KindT extends ThemeLeptonFeatureKind>(\r\n  kind: KindT,\r\n  providers: Provider[],\r\n): ThemeLeptonFeature<KindT> {\r\n  return {\r\n    ɵkind: kind,\r\n    ɵproviders: providers,\r\n  };\r\n}\r\n\r\nexport function withOptions(\r\n  options: ThemeLepton.Options,\r\n): ThemeLeptonFeature<ThemeLeptonFeatureKind.Options> {\r\n  return makeThemeLeptonFeature(ThemeLeptonFeatureKind.Options, [\r\n    {\r\n      provide: CONTENT_AFTER_ROUTES,\r\n      useValue: options.contentAfterRoutes || [],\r\n    },\r\n    {\r\n      provide: CONTENT_BEFORE_ROUTES,\r\n      useValue: options.contentBeforeRoutes || [],\r\n    },\r\n    {\r\n      provide: CUSTOM_STYLE,\r\n      useValue: options.customStyle || [],\r\n    },\r\n  ]);\r\n}\r\n\r\nexport function provideThemeLepton(...features: ThemeLeptonFeature<ThemeLeptonFeatureKind>[]) {\r\n  const providers: Provider[] = [\r\n    LEPTON_THEME_NAV_ITEM_PROVIDERS,\r\n    LEPTON_THEME_USER_MENU_PROVIDERS,\r\n    LEPTON_THEME_STYLES_PROVIDERS,\r\n    LEPTON_THEME_SETTING_TAB_PROVIDERS,\r\n    PROFILE_PICTURE_PROVIDERS,\r\n    LEPTON_THEME_FEATURES_PROVIDERS,\r\n    {\r\n      provide: VALIDATION_ERROR_TEMPLATE,\r\n      useValue: ValidationErrorComponent,\r\n    },\r\n    {\r\n      provide: VALIDATION_INVALID_CLASSES,\r\n      useValue: 'input-validation-error',\r\n    },\r\n    {\r\n      provide: VALIDATION_TARGET_SELECTOR,\r\n      useValue: '.form-control',\r\n    },\r\n    {\r\n      provide: CONTENT_AFTER_ROUTES,\r\n      useValue: [],\r\n    },\r\n    {\r\n      provide: CONTENT_BEFORE_ROUTES,\r\n      useValue: [],\r\n    },\r\n    {\r\n      provide: CUSTOM_STYLE,\r\n      useValue: false,\r\n    },\r\n    {\r\n      provide: APP_INIT_ERROR_HANDLERS,\r\n      useValue: removeLeptonLoader,\r\n      multi: true,\r\n    },\r\n  ];\r\n\r\n  for (const feature of features) {\r\n    providers.push(...feature.ɵproviders);\r\n  }\r\n\r\n  return makeEnvironmentProviders([providers]);\r\n}\r\n","import { CoreModule } from '@abp/ng.core';\r\nimport { ThemeSharedModule } from '@abp/ng.theme.shared';\r\nimport { ModuleWithProviders, NgModule } from '@angular/core';\r\nimport { NgbDropdownModule } from '@ng-bootstrap/ng-bootstrap';\r\nimport { NgxValidateCoreModule } from '@ngx-validate/core';\r\nimport { AccountLayoutComponent } from './components/account-layout/account-layout.component';\r\nimport { AccountLogoComponent } from './components/account-layout/account-logo/account-logo.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 { CurrentUserImageComponent } from './components/current-user-image/current-user-image.component';\r\nimport { EmptyLayoutComponent } from './components/empty-layout/empty-layout.component';\r\nimport { FooterComponent } from './components/footer/footer.component';\r\nimport { HeaderComponent } from './components/header/header.component';\r\nimport { HttpErrorComponent } from './components/http-error/http-error.component';\r\nimport { LogoComponent } from './components/logo/logo.component';\r\nimport { CurrentUserComponent } from './components/nav-items/current-user.component';\r\nimport { FullScreenComponent } from './components/nav-items/full-screen.component';\r\nimport { LanguagesComponent } from './components/nav-items/languages.component';\r\nimport { NavItemsComponent } from './components/nav-items/nav-items.component';\r\nimport { NavbarMobileComponent } from './components/navbar-mobile/navbar-mobile.component';\r\nimport { NavbarComponent } from './components/navbar/navbar.component';\r\nimport { PageAlertContainerComponent } from './components/page-alert-container/page-alert-container.component';\r\nimport { RoutesComponent } from './components/routes/routes.component';\r\nimport { SettingsComponent } from './components/settings/settings.component';\r\nimport { SidebarComponent } from './components/sidebar/sidebar.component';\r\nimport { ValidationErrorComponent } from './components/validation-error/validation-error.component';\r\nimport { ThemeLepton } from './models/theme-lepton';\r\nimport { provideThemeLepton, withOptions } from './providers';\r\n\r\nexport const LAYOUTS = [ApplicationLayoutComponent, AccountLayoutComponent, EmptyLayoutComponent];\r\n\r\nconst COMPONENTS = [\r\n  SettingsComponent,\r\n  ValidationErrorComponent,\r\n  HttpErrorComponent,\r\n  LogoComponent,\r\n  RoutesComponent,\r\n  NavItemsComponent,\r\n  CurrentUserImageComponent,\r\n  LanguagesComponent,\r\n  CurrentUserComponent,\r\n  FullScreenComponent,\r\n  NavbarComponent,\r\n  NavbarMobileComponent,\r\n  HeaderComponent,\r\n  FooterComponent,\r\n  SidebarComponent,\r\n  PageAlertContainerComponent,\r\n  AuthWrapperComponent,\r\n  TenantBoxComponent,\r\n  AccountLogoComponent,\r\n];\r\n\r\n@NgModule({\r\n  exports: [...LAYOUTS, ...COMPONENTS],\r\n  imports: [\r\n    CoreModule,\r\n    ThemeSharedModule,\r\n    NgbDropdownModule,\r\n    NgxValidateCoreModule,\r\n    ...LAYOUTS,\r\n    ...COMPONENTS,\r\n  ],\r\n})\r\nexport class BaseThemeLeptonModule {}\r\n\r\n@NgModule({\r\n  exports: [BaseThemeLeptonModule],\r\n  imports: [BaseThemeLeptonModule],\r\n})\r\nexport class ThemeLeptonModule {\r\n  /**\r\n   * @deprecated forRoot method is deprecated, use `provideThemeLepton` *function* for config settings.\r\n   */\r\n  static forRoot(options = {} as ThemeLepton.Options): ModuleWithProviders<ThemeLeptonModule> {\r\n    return {\r\n      ngModule: ThemeLeptonModule,\r\n      providers: [provideThemeLepton(withOptions(options))],\r\n    };\r\n  }\r\n}\r\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public-api';\n"],"names":["ErrorComponent"],"mappings":"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"}