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,
249 lines (245 loc) • 8.75 kB
TypeScript
import { PanelMenuPassThrough, PanelMenuItemTemplateContext } from 'primeng/types/panelmenu';
export * from 'primeng/types/panelmenu';
import * as _angular_core from '@angular/core';
import { TemplateRef } 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 { BaseStyle } from 'primeng/base';
/**
*
* PanelMenu is a hybrid of Accordion and Tree components.
*
* [Live Demo](https://www.primeng.org/panelmenu/)
*
* @module panelmenustyle
*
*/
declare enum PanelMenuClasses {
/**
* Class name of the root element
*/
root = "p-panelmenu",
/**
* Class name of the panel element
*/
panel = "p-panelmenu-panel",
/**
* Class name of the header element
*/
header = "p-panelmenu-header",
/**
* Class name of the header content element
*/
headerContent = "p-panelmenu-header-content",
/**
* Class name of the header link element
*/
headerLink = "p-panelmenu-header-link",
/**
* Class name of the header icon element
*/
headerIcon = "p-panelmenu-header-icon",
/**
* Class name of the header label element
*/
headerLabel = "p-panelmenu-header-label",
/**
* Class name of the content container element
*/
contentContainer = "p-panelmenu-content-container",
/**
* Class name of the content element
*/
content = "p-panelmenu-content",
/**
* Class name of the root list element
*/
rootList = "p-panelmenu-root-list",
/**
* Class name of the item element
*/
item = "p-panelmenu-item",
/**
* Class name of the item content element
*/
itemContent = "p-panelmenu-item-content",
/**
* Class name of the item link element
*/
itemLink = "p-panelmenu-item-link",
/**
* Class name of the item icon element
*/
itemIcon = "p-panelmenu-item-icon",
/**
* Class name of the item label element
*/
itemLabel = "p-panelmenu-item-label",
/**
* Class name of the submenu icon element
*/
submenuIcon = "p-panelmenu-submenu-icon",
/**
* Class name of the submenu element
*/
submenu = "p-panelmenu-submenu",
separator = "p-menuitem-separator"
}
declare class PanelMenuStyle extends BaseStyle {
name: string;
style: string;
classes: {
root: () => string[];
panel: string;
header: ({ instance, item }: {
instance: any;
item: any;
}) => (string | {
'p-panelmenu-header-active': any;
'p-disabled': any;
})[];
headerContent: string;
headerLink: string;
headerIcon: string;
headerLabel: string;
contentContainer: ({ instance, processedItem }: {
instance: any;
processedItem: any;
}) => (string | {
'p-panelmenu-expanded': any;
})[];
contentWrapper: string;
content: string;
rootList: string;
item: ({ instance, processedItem }: {
instance: any;
processedItem: any;
}) => (string | {
'p-focus': any;
'p-disabled': any;
})[];
itemContent: string;
itemLink: string;
itemIcon: string;
itemLabel: string;
submenuIcon: string;
submenu: string;
separator: string;
badge: string;
};
static ɵfac: _angular_core.ɵɵFactoryDeclaration<PanelMenuStyle, never>;
static ɵprov: _angular_core.ɵɵInjectableDeclaration<PanelMenuStyle>;
}
interface PanelMenuStyle extends BaseStyle {
}
/**
* PanelMenu is a hybrid of Accordion and Tree components.
* @group Components
* @deprecated Use Menu component with `toggleable` option instead.
*/
declare class PanelMenu extends BaseComponent<PanelMenuPassThrough> {
componentName: string;
constructor();
/**
* An array of menuitems.
* @group Props
*/
model: _angular_core.InputSignal<MenuItem[] | undefined>;
/**
* Whether multiple tabs can be activated at the same time or not.
* @group Props
*/
multiple: _angular_core.InputSignalWithTransform<boolean, unknown>;
/**
* The motion options.
* @group Props
*/
motionOptions: _angular_core.InputSignal<MotionOptions | undefined>;
computedMotionOptions: _angular_core.Signal<MotionOptions>;
/**
* Current id state as a string.
* @group Props
*/
id: _angular_core.InputSignal<string | undefined>;
/**
* Index of the element in tabbing order.
* @group Props
*/
tabindex: _angular_core.InputSignalWithTransform<number, unknown>;
/**
* Template option of submenu icon.
* @group Templates
*/
submenuIconTemplate: _angular_core.Signal<TemplateRef<void> | undefined>;
/**
* Template option of header icon.
* @group Templates
*/
headerIconTemplate: _angular_core.Signal<TemplateRef<void> | undefined>;
/**
* Template option of item.
* @param {PanelMenuItemTemplateContext} context - item context.
* @see {@link PanelMenuItemTemplateContext}
* @group Templates
*/
itemTemplate: _angular_core.Signal<TemplateRef<PanelMenuItemTemplateContext> | undefined>;
activeItem: _angular_core.WritableSignal<MenuItem | null>;
_componentStyle: PanelMenuStyle;
bindDirectiveInstance: Bind;
$pcPanelMenu: PanelMenu | undefined;
private _internalId;
$id: _angular_core.Signal<string>;
onAfterViewChecked(): void;
getPTOptions(key: string, item: MenuItem, index: number): any;
/**
* Collapses open panels.
* @group Method
*/
collapseAll(): void;
changeActiveItem(_event: Event, item: MenuItem, _index?: number, selfActive?: boolean): void;
getItemProp(item: MenuItem, name: string): any;
getItemLabel(item: MenuItem): any;
isItemActive(item: MenuItem): boolean | undefined;
isItemVisible(item: MenuItem): boolean;
isItemDisabled(item: MenuItem): any;
isItemGroup(item: MenuItem): boolean;
getRouterLinkActiveOptions(item: MenuItem): any;
hasIcon(item: MenuItem): boolean;
shouldEscapeLabel(item: MenuItem): boolean;
hasBadge(item: MenuItem): boolean;
getItemTemplateContext(item: MenuItem): {
$implicit: MenuItem;
};
getPanelId(index: number, item?: MenuItem): string;
getHeaderId(item: MenuItem, index: number): string;
getContentId(item: MenuItem, index: number): string;
updateFocusedHeader(event: {
originalEvent: Event;
focusOnNext?: boolean;
selfCheck?: boolean;
}): void;
changeFocusedHeader(element: HTMLElement | null): void;
findNextHeader(panelElement: Element | null, selfCheck?: boolean): Element | null;
findPrevHeader(panelElement: Element | null, selfCheck?: boolean): Element | null;
findFirstHeader(): HTMLElement | null;
findLastHeader(): HTMLElement | null;
onHeaderClick(event: MouseEvent, item: MenuItem, index: number): void;
onHeaderKeyDown(event: KeyboardEvent, item: MenuItem, index: number): void;
onHeaderArrowDownKey(event: KeyboardEvent): void;
onHeaderArrowUpKey(event: KeyboardEvent): void;
onHeaderHomeKey(event: KeyboardEvent): void;
onHeaderEndKey(event: KeyboardEvent): void;
onHeaderEnterKey(event: KeyboardEvent, item: MenuItem, index: number): void;
static ɵfac: _angular_core.ɵɵFactoryDeclaration<PanelMenu, never>;
static ɵcmp: _angular_core.ɵɵComponentDeclaration<PanelMenu, "p-panelmenu, p-panel-menu", never, { "model": { "alias": "model"; "required": false; "isSignal": true; }; "multiple": { "alias": "multiple"; "required": false; "isSignal": true; }; "motionOptions": { "alias": "motionOptions"; "required": false; "isSignal": true; }; "id": { "alias": "id"; "required": false; "isSignal": true; }; "tabindex": { "alias": "tabindex"; "required": false; "isSignal": true; }; }, {}, ["submenuIconTemplate", "headerIconTemplate", "itemTemplate"], never, true, [{ directive: typeof i1.Bind; inputs: {}; outputs: {}; }]>;
}
declare class PanelMenuModule {
static ɵfac: _angular_core.ɵɵFactoryDeclaration<PanelMenuModule, never>;
static ɵmod: _angular_core.ɵɵNgModuleDeclaration<PanelMenuModule, never, [typeof PanelMenu, typeof i2.SharedModule], [typeof PanelMenu, typeof i2.SharedModule]>;
static ɵinj: _angular_core.ɵɵInjectorDeclaration<PanelMenuModule>;
}
export { PanelMenu, PanelMenuClasses, PanelMenuModule, PanelMenuStyle };