{"version":3,"file":"yuuvis-client-framework-app-bar.mjs","sources":["../../../../../libs/yuuvis/client-framework/app-bar/src/lib/app-bar.component.ts","../../../../../libs/yuuvis/client-framework/app-bar/src/lib/app-bar.component.html","../../../../../libs/yuuvis/client-framework/app-bar/src/yuuvis-client-framework-app-bar.ts"],"sourcesContent":["import { CommonModule } from '@angular/common';\nimport { Component, ContentChild, ElementRef, TemplateRef, ViewChild, input } from '@angular/core';\nimport { RouterModule } from '@angular/router';\nimport { YuvIconComponent } from '@yuuvis/client-framework/icons';\n\n/**\n * Application bar for yuuvis Momentum apps.\n *\n * Adding a `#appBarSideNav` template to the components body will show a menu icon\n * that opens its content in a sidenav element.\n *\n * Adding a `#appBarActions` template to the component will add its content to\n * the actions section (at the end of the app bar).\n *\n * @example\n * <yuv-app-bar title=\"MyMomentumApp\">\n *   <ng-template #appBarSideNav>\n *     ... content supposed to end up in a sidenav ...\n *   </ng-template>\n *   <ng-template #appBarPrimaryActions>\n *     ... content supposed to end up in the app bars primary actions section ...\n *   </ng-template>\n *   <ng-template #appBarActions>\n *     ... content supposed to end up in the app bars actions section ...\n *   </ng-template>\n * </yuv-app-bar>\n */\n@Component({\n  selector: 'yuv-app-bar',\n  standalone: true,\n  imports: [CommonModule, YuvIconComponent, RouterModule],\n  templateUrl: './app-bar.component.html',\n  styleUrls: ['./app-bar.component.scss'],\n  host: {\n    class: 'has-menu'\n  }\n})\nexport class AppBarComponent {\n  @ViewChild('dialogEl', { read: ElementRef }) dialogElement: ElementRef<HTMLDialogElement> | null = null;\n\n  @ContentChild('appBarSideNav', { read: TemplateRef })\n  appBarSideNav: TemplateRef<any> | null = null;\n\n  @ContentChild('appBarActions', { read: TemplateRef }) appBarActions: TemplateRef<any> | null = null;\n  @ContentChild('appBarPrimaryActions', { read: TemplateRef }) appBarPrimaryActions: TemplateRef<any> | null = null;\n\n  /**\n   * Menu icon SVG. By default this will be the hamburger menu icon\n   */\n  readonly menuIcon = input(\n    '<svg xmlns=\"http://www.w3.org/2000/svg\" height=\"24\" viewBox=\"0 -960 960 960\" width=\"24\"><path d=\"M140.001-254.616v-59.999h679.998v59.999H140.001Zm0-195.385v-59.998h679.998v59.998H140.001Zm0-195.384v-59.999h679.998v59.999H140.001Z\"/></svg>'\n  );\n  /**\n   * App title visible in the app beside the menu\n   */\n  readonly appTitle = input<string>();\n  /**\n   * Where to route to, when the title is clicked. Defaults to '/'\n   */\n  readonly appTitleRoute = input<string | undefined>('./');\n\n  sidenavVisible = false;\n\n  toggleSideNav() {\n    const dialogEl = this.dialogElement!.nativeElement;\n    if (!dialogEl.hasAttribute('open')) dialogEl.showModal();\n    else dialogEl.close();\n\n    // this.dialogElement!.nativeElement.showModal()\n    // this.sidenavVisible = !this.sidenavVisible\n  }\n\n  onDialogClick(e: MouseEvent) {\n    if ((e.target as HTMLElement).nodeName === 'DIALOG') {\n      this.dialogElement?.nativeElement.close();\n    }\n  }\n}\n","@if (!!appBarSideNav) {\n  <button class=\"menuIcon\" (click)=\"toggleSideNav()\">\n    <yuv-icon [svg]=\"menuIcon()\"></yuv-icon>\n  </button>\n} @else {\n  <a class=\"app-title\" [routerLink]=\"appTitleRoute()\">\n    <yuv-icon [svg]=\"menuIcon()\"></yuv-icon>\n  </a>\n}\n<a class=\"app-title\" [routerLink]=\"appTitleRoute()\">{{ appTitle() }}</a>\n\n<div class=\"primary-actions\">\n  <ng-container *ngTemplateOutlet=\"appBarPrimaryActions\"></ng-container>\n</div>\n<div class=\"actions\">\n  <ng-container *ngTemplateOutlet=\"appBarActions\"></ng-container>\n</div>\n\n<dialog #dialogEl (click)=\"onDialogClick($event)\">\n  <section>\n    <ng-container *ngTemplateOutlet=\"appBarSideNav\"></ng-container>\n  </section>\n</dialog>\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":[],"mappings":"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"}