import { ChangeDetectionStrategy, Component, input, viewChild, ViewEncapsulation, } from "@angular/core"; import { SdDropdown } from "../../controls/dropdown/sd-dropdown"; import { SdDropdownPopup } from "../../controls/dropdown/sd-dropdown-popup"; import { SdList } from "../../controls/list/sd-list"; import { SdListItem } from "../../controls/list/sd-list-item"; import { SdButton } from "../../controls/button/sd-button"; @Component({ selector: "sd-topbar-user", changeDetection: ChangeDetectionStrategy.OnPush, encapsulation: ViewEncapsulation.None, standalone: true, imports: [ SdDropdown, SdDropdownPopup, SdList, SdListItem, SdButton, ], template: ` @for (menu of menus(); track menu.title) { {{ menu.title }} } `, styles: [], }) export class SdTopbarUser { menus = input.required(); private readonly _dropdown = viewChild(SdDropdown); onMenuClick(menu: SdTopbarUserMenu): void { menu.onClick(); this._dropdown()?.open.set(false); } } export interface SdTopbarUserMenu { title: string; onClick: () => void; }