primeng
Version:
PrimeNG is a premium UI library for Angular featuring a rich set of 90+ components, a theme designer, various theme alternatives such as Material, Bootstrap, Tailwind, premium templates and professional support. In addition, it integrates with PrimeBlock,
375 lines (369 loc) • 16.9 kB
TypeScript
import { MenubarPassThrough, ProcessedMenuItem, MenubarItemTemplateContext, MenubarItemClickEvent, MenubarItemMouseEnterEvent, FocusedItemInfo } from 'primeng/types/menubar';
export * from 'primeng/types/menubar';
import * as _angular_core from '@angular/core';
import { TemplateRef, ElementRef } from '@angular/core';
import { MotionOptions } from '@primeuix/motion';
import * as i2 from 'primeng/api';
import { MenuItem } from 'primeng/api';
import { BaseComponent } from 'primeng/basecomponent';
import * as i1 from 'primeng/bind';
import { Bind } from 'primeng/bind';
import { VoidListener } from 'primeng/ts-helpers';
import * as rxjs from 'rxjs';
import { Subject, Subscription } from 'rxjs';
import { CSSProperties } from 'primeng/types/shared';
import { BaseStyle } from 'primeng/base';
declare class MenubarService {
autoHide: boolean | undefined;
autoHideDelay: number | undefined;
readonly mouseLeaves: Subject<boolean>;
readonly mouseLeft$: rxjs.Observable<boolean>;
static ɵfac: _angular_core.ɵɵFactoryDeclaration<MenubarService, never>;
static ɵprov: _angular_core.ɵɵInjectableDeclaration<MenubarService>;
}
declare class MenuBarStyle extends BaseStyle {
name: string;
style: string;
classes: {
root: ({ instance }: {
instance: any;
}) => (string | {
'p-menubar-mobile': any;
'p-menubar-mobile-active': any;
})[];
start: string;
button: string;
rootList: string;
item: ({ instance, processedItem }: {
instance: any;
processedItem: any;
}) => (string | {
'p-menubar-item-active': any;
'p-focus': any;
'p-disabled': any;
})[];
itemContent: string;
itemLink: string;
itemIcon: string;
itemLabel: string;
submenuIcon: string;
submenu: string;
separator: string;
end: string;
};
static ɵfac: _angular_core.ɵɵFactoryDeclaration<MenuBarStyle, never>;
static ɵprov: _angular_core.ɵɵInjectableDeclaration<MenuBarStyle>;
}
/**
*
* Menubar is a horizontal menu component.
*
* [Live Demo](https://www.primeng.org/menubar/)
*
* @module menubarstyle
*
*/
declare enum MenubarClasses {
/**
* Class name of the root element
*/
root = "p-menubar",
/**
* Class name of the start element
*/
start = "p-menubar-start",
/**
* Class name of the button element
*/
button = "p-menubar-button",
/**
* Class name of the root list element
*/
rootList = "p-menubar-root-list",
/**
* Class name of the item element
*/
item = "p-menubar-item",
/**
* Class name of the item content element
*/
itemContent = "p-menubar-item-content",
/**
* Class name of the item link element
*/
itemLink = "p-menubar-item-link",
/**
* Class name of the item icon element
*/
itemIcon = "p-menubar-item-icon",
/**
* Class name of the item label element
*/
itemLabel = "p-menubar-item-label",
/**
* Class name of the submenu icon element
*/
submenuIcon = "p-menubar-submenu-icon",
/**
* Class name of the submenu element
*/
submenu = "p-menubar-submenu",
/**
* Class name of the separator element
*/
separator = "p-menubar-separator",
/**
* Class name of the end element
*/
end = "p-menubar-end"
}
interface MenubarStyle extends BaseStyle {
}
declare class MenubarSub extends BaseComponent<MenubarPassThrough> {
hostId: _angular_core.Signal<string | null | undefined>;
hostClass: _angular_core.Signal<string | undefined>;
items: _angular_core.InputSignal<ProcessedMenuItem[] | undefined>;
itemTemplate: _angular_core.InputSignal<TemplateRef<MenubarItemTemplateContext> | undefined>;
root: _angular_core.InputSignalWithTransform<boolean, unknown>;
autoZIndex: _angular_core.InputSignalWithTransform<boolean, unknown>;
baseZIndex: _angular_core.InputSignalWithTransform<number, unknown>;
mobileActive: _angular_core.InputSignalWithTransform<boolean | undefined, unknown>;
autoDisplay: _angular_core.InputSignalWithTransform<boolean | undefined, unknown>;
menuId: _angular_core.InputSignal<string | undefined>;
ariaLabel: _angular_core.InputSignal<string | undefined>;
ariaLabelledBy: _angular_core.InputSignal<string | undefined>;
level: _angular_core.InputSignalWithTransform<number, unknown>;
focusedItemId: _angular_core.InputSignal<string | undefined>;
activeItemPath: _angular_core.InputSignal<ProcessedMenuItem[] | undefined>;
inlineStyles: _angular_core.InputSignal<CSSProperties>;
motionOptions: _angular_core.InputSignal<MotionOptions | undefined>;
submenuiconTemplate: _angular_core.InputSignal<TemplateRef<void> | undefined>;
itemClick: _angular_core.OutputEmitterRef<MenubarItemClickEvent>;
itemMouseEnter: _angular_core.OutputEmitterRef<MenubarItemMouseEnterEvent>;
menuFocus: _angular_core.OutputEmitterRef<FocusEvent>;
menuBlur: _angular_core.OutputEmitterRef<FocusEvent>;
menuKeydown: _angular_core.OutputEmitterRef<KeyboardEvent>;
mouseLeaveSubscriber: Subscription | undefined;
menubarService: MenubarService;
_componentStyle: MenuBarStyle;
hostName: string;
onInit(): void;
onItemClick(event: Event, processedItem: ProcessedMenuItem): void;
getItemProp(processedItem: ProcessedMenuItem, name: string, params?: {
originalEvent: Event;
item: MenuItem;
} | null): any;
getItemId(processedItem: ProcessedMenuItem): string;
getItemLabelId(processedItem: ProcessedMenuItem): string;
getItemLabel(processedItem: ProcessedMenuItem): string;
isItemVisible(processedItem: ProcessedMenuItem): boolean;
isItemActive(processedItem: ProcessedMenuItem): boolean;
isItemDisabled(processedItem: ProcessedMenuItem): boolean;
isItemFocused(processedItem: ProcessedMenuItem): boolean;
isItemGroup(processedItem: ProcessedMenuItem): boolean;
getAriaSetSize(): number;
getAriaPosInset(index: number): number;
onItemMouseEnter(param: {
$event: Event;
processedItem: ProcessedMenuItem;
}): void;
getRouterLinkActiveOptions(processedItem: ProcessedMenuItem): any;
getPTOptions(processedItem: ProcessedMenuItem, index: number, key: string): any;
getItemTemplateContext(item: MenuItem, isRoot: boolean): MenubarItemTemplateContext;
onDestroy(): void;
static ɵfac: _angular_core.ɵɵFactoryDeclaration<MenubarSub, never>;
static ɵcmp: _angular_core.ɵɵComponentDeclaration<MenubarSub, "p-menubarsub, [pMenubarSub]", never, { "items": { "alias": "items"; "required": false; "isSignal": true; }; "itemTemplate": { "alias": "itemTemplate"; "required": false; "isSignal": true; }; "root": { "alias": "root"; "required": false; "isSignal": true; }; "autoZIndex": { "alias": "autoZIndex"; "required": false; "isSignal": true; }; "baseZIndex": { "alias": "baseZIndex"; "required": false; "isSignal": true; }; "mobileActive": { "alias": "mobileActive"; "required": false; "isSignal": true; }; "autoDisplay": { "alias": "autoDisplay"; "required": false; "isSignal": true; }; "menuId": { "alias": "menuId"; "required": false; "isSignal": true; }; "ariaLabel": { "alias": "ariaLabel"; "required": false; "isSignal": true; }; "ariaLabelledBy": { "alias": "ariaLabelledBy"; "required": false; "isSignal": true; }; "level": { "alias": "level"; "required": false; "isSignal": true; }; "focusedItemId": { "alias": "focusedItemId"; "required": false; "isSignal": true; }; "activeItemPath": { "alias": "activeItemPath"; "required": false; "isSignal": true; }; "inlineStyles": { "alias": "inlineStyles"; "required": false; "isSignal": true; }; "motionOptions": { "alias": "motionOptions"; "required": false; "isSignal": true; }; "submenuiconTemplate": { "alias": "submenuiconTemplate"; "required": false; "isSignal": true; }; }, { "itemClick": "itemClick"; "itemMouseEnter": "itemMouseEnter"; "menuFocus": "menuFocus"; "menuBlur": "menuBlur"; "menuKeydown": "menuKeydown"; }, never, never, true, never>;
}
/**
* Menubar is a horizontal menu component.
* @group Components
*/
declare class Menubar extends BaseComponent<MenubarPassThrough> {
componentName: string;
$pcMenubar: Menubar | undefined;
bindDirectiveInstance: Bind;
menubarService: MenubarService;
onAfterViewChecked(): void;
/**
* An array of menuitems.
* @group Props
*/
model: _angular_core.InputSignal<MenuItem[] | undefined>;
/**
* Whether to automatically manage layering.
* @group Props
*/
autoZIndex: _angular_core.InputSignalWithTransform<boolean, unknown>;
/**
* Base zIndex value to use in layering.
* @group Props
*/
baseZIndex: _angular_core.InputSignalWithTransform<number, unknown>;
/**
* Defines the motion options for the submenu open/close animation.
* @group Props
*/
motionOptions: _angular_core.InputSignal<MotionOptions | undefined>;
/**
* Whether to show a root submenu on mouse over.
* @defaultValue true
* @group Props
*/
autoDisplay: _angular_core.InputSignalWithTransform<boolean, unknown>;
/**
* Whether to hide a root submenu when mouse leaves.
* @group Props
*/
autoHide: _angular_core.InputSignalWithTransform<boolean | undefined, unknown>;
/**
* The breakpoint to define the maximum width boundary.
* @group Props
*/
breakpoint: _angular_core.InputSignal<string>;
/**
* Delay to hide the root submenu in milliseconds when mouse leaves.
* @group Props
*/
autoHideDelay: _angular_core.InputSignalWithTransform<number, unknown>;
/**
* Current id state as a string.
* @group Props
*/
id: _angular_core.InputSignal<string | undefined>;
/**
* Defines a string value that labels an interactive element.
* @group Props
*/
ariaLabel: _angular_core.InputSignal<string | undefined>;
/**
* Identifier of the underlying input element.
* @group Props
*/
ariaLabelledBy: _angular_core.InputSignal<string | undefined>;
/**
* Callback to execute when button is focused.
* @param {FocusEvent} event - Focus event.
* @group Emits
*/
onFocus: _angular_core.OutputEmitterRef<FocusEvent>;
/**
* Callback to execute when button loses focus.
* @param {FocusEvent} event - Focus event.
* @group Emits
*/
onBlur: _angular_core.OutputEmitterRef<FocusEvent>;
/**
* Defines template option for start.
* @group Templates
*/
startTemplate: _angular_core.Signal<TemplateRef<void> | undefined>;
/**
* Defines template option for end.
* @group Templates
*/
endTemplate: _angular_core.Signal<TemplateRef<void> | undefined>;
/**
* Custom item template.
* @param {MenubarItemTemplateContext} context - item context.
* @see {@link MenubarItemTemplateContext}
* @group Templates
*/
itemTemplate: _angular_core.Signal<TemplateRef<MenubarItemTemplateContext> | undefined>;
/**
* Defines template option for menu icon.
* @group Templates
*/
menuIconTemplate: _angular_core.Signal<TemplateRef<void> | undefined>;
/**
* Defines template option for submenu icon.
* @group Templates
*/
submenuIconTemplate: _angular_core.Signal<TemplateRef<void> | undefined>;
menubutton: _angular_core.Signal<ElementRef<any> | undefined>;
rootmenu: _angular_core.Signal<MenubarSub | undefined>;
private _internalId;
$id: _angular_core.Signal<string>;
computedMotionOptions: _angular_core.Signal<MotionOptions>;
mobileActive: boolean | undefined;
private matchMediaListener;
private query;
queryMatches: _angular_core.WritableSignal<boolean>;
outsideClickListener: VoidListener;
resizeListener: VoidListener;
mouseLeaveSubscriber: Subscription | undefined;
dirty: boolean;
focused: boolean;
activeItemPath: _angular_core.WritableSignal<ProcessedMenuItem[]>;
focusedItemInfo: _angular_core.WritableSignal<FocusedItemInfo>;
searchValue: string;
searchTimeout: ReturnType<typeof setTimeout> | null;
_componentStyle: MenuBarStyle;
processedItems: _angular_core.Signal<ProcessedMenuItem[]>;
get visibleItems(): ProcessedMenuItem[];
get navigationAriaLabel(): string | undefined;
get focusedItemId(): string | null;
constructor();
onInit(): void;
createProcessedItems(items: MenuItem[], level?: number, parent?: ProcessedMenuItem | Record<string, never>, parentKey?: string): ProcessedMenuItem[];
bindMatchMediaListener(): void;
unbindMatchMediaListener(): void;
getItemProp(item: MenuItem, name: string): any;
menuButtonClick(event: MouseEvent): void;
menuButtonKeydown(event: KeyboardEvent): void;
onItemClick(event: MenubarItemClickEvent): void;
onItemMouseEnter(event: MenubarItemMouseEnterEvent): void;
onMouseLeave(_event: MouseEvent): void;
changeFocusedItemIndex(_event: Event, index: number): void;
scrollInView(index?: number): void;
onItemChange(event: MenubarItemClickEvent, type?: string): void;
toggle(event: MouseEvent): void;
hide(_event?: Event, isFocus?: boolean): void;
show(): void;
onMenuMouseDown(_event: MouseEvent): void;
onMenuFocus(event: FocusEvent): void;
onMenuBlur(event: FocusEvent): void;
onKeyDown(event: KeyboardEvent): void;
findVisibleItem(index: number): ProcessedMenuItem | null;
findFirstFocusedItemIndex(): number;
findFirstItemIndex(): number;
findSelectedItemIndex(): number;
isProcessedItemGroup(processedItem: ProcessedMenuItem): boolean;
isSelected(processedItem: ProcessedMenuItem): boolean;
isValidSelectedItem(processedItem: ProcessedMenuItem): boolean;
isValidItem(processedItem: ProcessedMenuItem): boolean;
isItemDisabled(item: MenuItem): boolean;
isItemSeparator(item: MenuItem): boolean;
isItemMatched(processedItem: ProcessedMenuItem): boolean;
isProccessedItemGroup(processedItem: ProcessedMenuItem): boolean;
searchItems(event: KeyboardEvent, char: string): boolean;
getProccessedItemLabel(processedItem: ProcessedMenuItem): string | undefined;
getItemLabel(item: MenuItem): string;
onArrowDownKey(event: KeyboardEvent): void;
onArrowRightKey(event: KeyboardEvent): void;
onArrowUpKey(event: KeyboardEvent): void;
onArrowLeftKey(event: KeyboardEvent): void;
onHomeKey(event: KeyboardEvent): void;
onEndKey(event: KeyboardEvent): void;
onSpaceKey(event: KeyboardEvent): void;
onEscapeKey(event: KeyboardEvent): void;
onTabKey(event: KeyboardEvent): void;
onEnterKey(event: KeyboardEvent): void;
findLastFocusedItemIndex(): number;
findLastItemIndex(): number;
findPrevItemIndex(index: number): number;
findNextItemIndex(index: number): number;
bindResizeListener(): void;
bindOutsideClickListener(): void;
unbindOutsideClickListener(): void;
unbindResizeListener(): void;
onDestroy(): void;
static ɵfac: _angular_core.ɵɵFactoryDeclaration<Menubar, never>;
static ɵcmp: _angular_core.ɵɵComponentDeclaration<Menubar, "p-menubar", never, { "model": { "alias": "model"; "required": false; "isSignal": true; }; "autoZIndex": { "alias": "autoZIndex"; "required": false; "isSignal": true; }; "baseZIndex": { "alias": "baseZIndex"; "required": false; "isSignal": true; }; "motionOptions": { "alias": "motionOptions"; "required": false; "isSignal": true; }; "autoDisplay": { "alias": "autoDisplay"; "required": false; "isSignal": true; }; "autoHide": { "alias": "autoHide"; "required": false; "isSignal": true; }; "breakpoint": { "alias": "breakpoint"; "required": false; "isSignal": true; }; "autoHideDelay": { "alias": "autoHideDelay"; "required": false; "isSignal": true; }; "id": { "alias": "id"; "required": false; "isSignal": true; }; "ariaLabel": { "alias": "ariaLabel"; "required": false; "isSignal": true; }; "ariaLabelledBy": { "alias": "ariaLabelledBy"; "required": false; "isSignal": true; }; }, { "onFocus": "onFocus"; "onBlur": "onBlur"; }, ["startTemplate", "endTemplate", "itemTemplate", "menuIconTemplate", "submenuIconTemplate"], ["*"], true, [{ directive: typeof i1.Bind; inputs: {}; outputs: {}; }]>;
}
declare class MenubarModule {
static ɵfac: _angular_core.ɵɵFactoryDeclaration<MenubarModule, never>;
static ɵmod: _angular_core.ɵɵNgModuleDeclaration<MenubarModule, never, [typeof Menubar, typeof i2.SharedModule], [typeof Menubar, typeof i2.SharedModule]>;
static ɵinj: _angular_core.ɵɵInjectorDeclaration<MenubarModule>;
}
export { MenuBarStyle, Menubar, MenubarClasses, MenubarModule };
export type { MenubarStyle };