import { EventEmitter, OnChanges, OnInit, SimpleChanges, ElementRef, OnDestroy } from '@angular/core'; import { DomSanitizer, SafeUrl } from '@angular/platform-browser'; import { NavMenuItem, SidebarConfig } from './sidebar.models'; import { ProfileMenuEntry, ProfileMenuUser } from './profile-menu/profile-menu.models'; import { WorkspaceMenuItem } from './workspace-menu/workspace-menu.models'; import * as i0 from "@angular/core"; export declare class SidebarComponent implements OnInit, OnChanges, OnDestroy { private sanitizer; config: SidebarConfig; navItems: NavMenuItem[]; activeNavId: string; /** Parent item IDs to open by default (in addition to the one containing the active item). */ initialOpenParentIds: string[]; /** * User details rendered in the profile-menu popover header. Required for the popover * to open; when undefined the profile card retains its legacy single-action behavior * (clicking it directly fires `logoutClick`). */ profileUser?: ProfileMenuUser; /** * Menu entries shown inside the profile-menu popover. Provide at least one entry to * enable the popover; an empty array preserves the legacy `logoutClick` behavior. */ profileMenuEntries: ProfileMenuEntry[]; /** * Workspaces shown inside the workspace-switcher popover. Provide at least one entry * to enable the popover; an empty array preserves the legacy `workspaceSwitchClick` * behavior (single emit on click, no UI). */ workspaces: WorkspaceMenuItem[]; /** Id of the currently active workspace — drives the checkmark and active-row tint. */ currentWorkspaceId?: string | number; navItemClick: EventEmitter; ctaClick: EventEmitter; searchClick: EventEmitter; workspaceSwitchClick: EventEmitter; logoutClick: EventEmitter; notificationsClick: EventEmitter; helpDocsClick: EventEmitter; speakerClick: EventEmitter; liveChatClick: EventEmitter; expandedChange: EventEmitter; /** Emits `ProfileMenuItem.id` when the user activates an entry in the profile popover. */ profileMenuItemClick: EventEmitter; /** Emits the workspace id when the user picks one from the workspace popover. */ workspaceSelected: EventEmitter; /** Emits when the user clicks the "Workspace Management" footer row. */ manageWorkspacesClick: EventEmitter; profileAnchorRef?: ElementRef; workspaceAnchorRef?: ElementRef; isExpanded: boolean; isPinned: boolean; openParents: string[]; isProfileMenuOpen: boolean; isWorkspaceMenuOpen: boolean; private leaveCollapseTimer; private static readonly LEAVE_COLLAPSE_MS; constructor(sanitizer: DomSanitizer); /** * Sanitizer bypass so `data:image/svg+xml;base64,…` URIs render in the workspace * avatar — Angular 13's default URL sanitizer rewrites them to `unsafe:…`. */ get workspaceLogoSafe(): SafeUrl | null; ngOnInit(): void; ngOnDestroy(): void; ngOnChanges(changes: SimpleChanges): void; onProfileClick(): void; onProfileMenuItemClick(id: string): void; onProfileMenuDismissed(): void; onWorkspaceClick(): void; onWorkspaceMenuItemClick(id: string | number): void; onWorkspaceMenuDismissed(): void; onManageWorkspacesClick(): void; /** Burger: wide sidebar without pinning — collapses on mouse leave. */ openSidebar(): void; /** Header collapse control: always closes and clears pin. */ closeSidebar(): void; pinSidebar(): void; /** Cancel delayed collapse when the pointer returns to the sidebar. */ onAsideMouseEnter(): void; /** * When expanded but not pinned, collapse after the pointer leaves the rail. * Skips scheduling if the pointer is moving into our CDK flyout / rail tooltip overlays. */ onAsideMouseLeave(ev: MouseEvent): void; private isPointerEnteringSidebarOverlay; private clearLeaveCollapseTimer; onNavItemClick(id: string): void; get workspaceInitial(): string; private toggleParent; /** True if `id` matches a submenu row under some top-level nav item. */ private isChildNavId; private findTopLevelNavItem; private ensureActiveParentOpen; static ɵfac: i0.ɵɵFactoryDeclaration; static ɵcmp: i0.ɵɵComponentDeclaration; }