UNPKG

@perfectmemory/ngx-contextmenu

Version:

A context menu component for Angular

132 lines (131 loc) 4.24 kB
import { FocusKeyManager } from '@angular/cdk/a11y'; import { AfterViewInit, ElementRef, EventEmitter, OnDestroy, QueryList } from '@angular/core'; import { ContextMenuContentItemDirective } from '../../directives/context-menu-content-item/context-menu-content-item.directive'; import type { ContextMenuItemDirective } from '../../directives/context-menu-item/context-menu-item.directive'; import { ContextMenuOverlaysService } from '../../services/context-menu-overlays/context-menu-overlays.service'; import type { ContextMenuComponent } from '../context-menu/context-menu.component'; import * as i0 from "@angular/core"; /** * For testing purpose only */ export declare const TESTING_WRAPPER: { FocusKeyManager: typeof FocusKeyManager; }; export declare class ContextMenuContentComponent<T> implements OnDestroy, AfterViewInit { private elementRef; document: Document; private contextMenuOverlaysService; /** * The list of `IContextMenuItemDirective` that represent each menu items */ menuDirectives: ContextMenuItemDirective<T>[]; /** * The item on which the menu act */ value?: T; /** * The orientation of the component * @see https://developer.mozilla.org/fr/docs/Web/HTML/Global_attributes/dir */ dir: 'ltr' | 'rtl' | undefined; /** * The parent menu of the instance */ parentContextMenu: ContextMenuContentComponent<T>; /** * A CSS class to apply a theme to the the menu */ menuClass: string; /** * Emit when a menu item is selected */ execute: EventEmitter<{ event: MouseEvent | KeyboardEvent; value?: T; menuDirective: ContextMenuItemDirective<T>; }>; /** * Emit when all menus is closed */ close: EventEmitter<void>; /** * @internal */ contextMenuContentItems: QueryList<ContextMenuContentItemDirective<T>>; /** * Accessibility * * @internal */ role: string; /** * Accessibility * * @internal */ ariaOrientation: string; private focusKeyManager?; private subscription; private activeElement?; constructor(elementRef: ElementRef<HTMLElement>, document: Document, contextMenuOverlaysService: ContextMenuOverlaysService); /** * @internal */ ngAfterViewInit(): void; /** * @internal */ ngOnDestroy(): void; /** * @internal */ onKeyArrowDownOrUp(event: KeyboardEvent): void; /** * @internal */ onKeyArrowRight(event: KeyboardEvent): void; /** * @internal */ onKeyArrowLeft(event: KeyboardEvent): void; /** * @internal */ onKeyEnterOrSpace(event: KeyboardEvent): void; /** * @internal */ onClickOrRightClick(event: MouseEvent): void; /** * @internal */ hideSubMenus(): void; /** * @internal */ stopEvent(event: MouseEvent): void; /** * @internal */ isMenuItemDisabled(menuItem: ContextMenuItemDirective<T>): boolean; /** * @internal */ isMenuItemVisible(menuItem: ContextMenuContentItemDirective<T>): boolean; /** * @internal */ openSubMenu(subMenu: ContextMenuComponent<T> | undefined, event: MouseEvent | KeyboardEvent): void; /** * @internal */ onMenuItemSelect(menuContentItem: ContextMenuContentItemDirective<T>, event: MouseEvent | KeyboardEvent): void; private triggerExecute; private setupDirectives; private openCloseActiveItemSubMenu; private openActiveItemSubMenu; private closeActiveItemSubMenu; private cancelEvent; static ɵfac: i0.ɵɵFactoryDeclaration<ContextMenuContentComponent<any>, never>; static ɵcmp: i0.ɵɵComponentDeclaration<ContextMenuContentComponent<any>, "context-menu-content", never, { "menuDirectives": { "alias": "menuDirectives"; "required": false; }; "value": { "alias": "value"; "required": false; }; "dir": { "alias": "dir"; "required": false; }; "parentContextMenu": { "alias": "parentContextMenu"; "required": false; }; "menuClass": { "alias": "menuClass"; "required": false; }; }, { "execute": "execute"; "close": "close"; }, never, never, false, never>; }