@synergy-design-system/components
Version:
45 lines (44 loc) • 1.6 kB
TypeScript
import { type HasSlotController } from '../../internal/slot.js';
import type { ReactiveController, ReactiveControllerHost } from 'lit';
import type SynMenuItem from './menu-item.js';
/** A reactive controller to manage the registration of event listeners for submenus. */
export declare class SubmenuController implements ReactiveController {
private host;
private popupRef;
private enableSubmenuTimer;
private hasGlobalDismissListeners;
private isConnected;
private isPopupConnected;
private skidding;
private readonly hasSlotController;
private readonly submenuOpenDelay;
constructor(host: ReactiveControllerHost & SynMenuItem, hasSlotController: HasSlotController);
hostConnected(): void;
hostDisconnected(): void;
hostUpdated(): void;
private addListeners;
private removeListeners;
private addGlobalDismissListeners;
private removeGlobalDismissListeners;
private handleMouseMove;
private handleMouseOver;
private isWithinSubmenuInteractionTree;
private handleHostMouseLeave;
private handleSubmenuEntry;
private handleKeyDown;
private handleClick;
private handleFocusOut;
private handleWindowBlur;
private handlePageHide;
private handleVisibilityChange;
private handleDocumentKeyDown;
private handlePopupMouseover;
private handlePopupMouseLeave;
private handlePopupReposition;
private setSubmenuState;
private enableSubmenu;
private disableSubmenu;
private updateSkidding;
isExpanded(): boolean;
renderSubmenu(): import("lit").TemplateResult<1>;
}