{"version":3,"file":"ng-doc-app-components-navbar.mjs","sources":["../../../../libs/app/components/navbar/navbar.component.ts","../../../../libs/app/components/navbar/navbar.component.html","../../../../libs/app/components/navbar/ng-doc-app-components-navbar.ts"],"sourcesContent":["import { AsyncPipe, NgIf } from '@angular/common';\nimport {\n  afterNextRender,\n  ChangeDetectionStrategy,\n  ChangeDetectorRef,\n  Component,\n  HostBinding,\n  Inject,\n  Input,\n  NgZone,\n} from '@angular/core';\nimport { NgDocSearchComponent } from '@ng-doc/app/components/search';\nimport { NgDocSidebarService } from '@ng-doc/app/services';\nimport {\n  NgDocButtonIconComponent,\n  NgDocIconComponent,\n  NgDocLetDirective,\n  ngDocZoneOptimize,\n} from '@ng-doc/ui-kit';\nimport { WINDOW } from '@ng-web-apis/common';\nimport { UntilDestroy, untilDestroyed } from '@ngneat/until-destroy';\nimport { PolymorpheusModule } from '@tinkoff/ng-polymorpheus';\nimport { combineLatest, fromEvent } from 'rxjs';\nimport { distinctUntilChanged, map, startWith } from 'rxjs/operators';\n\n/**\n * Navbar component for ng-doc application\n */\n@Component({\n  selector: 'ng-doc-navbar',\n  templateUrl: './navbar.component.html',\n  styleUrls: ['./navbar.component.scss'],\n  changeDetection: ChangeDetectionStrategy.OnPush,\n  imports: [\n    NgDocLetDirective,\n    PolymorpheusModule,\n    NgIf,\n    NgDocSearchComponent,\n    NgDocButtonIconComponent,\n    NgDocIconComponent,\n    AsyncPipe,\n  ],\n})\n@UntilDestroy()\nexport class NgDocNavbarComponent {\n  /**\n   * Show search input\n   */\n  @Input()\n  search: boolean = true;\n\n  /**\n   * Show hamburger button\n   */\n  @Input()\n  hamburger: boolean = true;\n\n  /**\n   * Use glass effect for navbar\n   */\n  @Input()\n  @HostBinding('attr.data-glass-effect')\n  glassEffect: boolean = true;\n\n  /**\n   * Indicates if navbar has border\n   */\n  @HostBinding('class.has-border')\n  hasBorder: boolean = false;\n\n  constructor(\n    @Inject(WINDOW)\n    private readonly window: Window,\n    private readonly ngZone: NgZone,\n    private readonly changeDetectorRef: ChangeDetectorRef,\n    protected readonly sidebarService: NgDocSidebarService,\n  ) {\n    afterNextRender(() => {\n      combineLatest([\n        fromEvent(this.window, 'scroll').pipe(\n          map((e: Event) => ((e.target as Document)?.scrollingElement?.scrollTop ?? 0) > 0),\n          distinctUntilChanged(),\n          startWith(false),\n          ngDocZoneOptimize(this.ngZone),\n        ),\n        this.sidebarService.isExpanded(),\n      ])\n        .pipe(\n          map(\n            ([scrolled, isExpanded]: [boolean, boolean]) =>\n              scrolled || (isExpanded && this.sidebarService.isMobile),\n          ),\n          untilDestroyed(this),\n        )\n        .subscribe((hasShadow: boolean) => {\n          this.hasBorder = hasShadow;\n          this.changeDetectorRef.markForCheck();\n        });\n    });\n  }\n}\n","<div class=\"navbar-container\">\n  <div class=\"ng-doc-navbar-left\">\n    <ng-content select=\"[ngDocNavbarLeft]\"></ng-content>\n  </div>\n  <div class=\"ng-doc-navbar-right\">\n    @if (search) {\n      <ng-doc-search></ng-doc-search>\n    }\n    <ng-content select=\"[ngDocNavbarRight]\"></ng-content>\n    <button class=\"ng-doc-menu\" ng-doc-button-icon size=\"large\" (click)=\"sidebarService.toggle()\">\n      <ng-doc-icon icon=\"menu\" [size]=\"24\"></ng-doc-icon>\n    </button>\n  </div>\n</div>\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":[],"mappings":"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"}