UNPKG

@kreash/ngx-contextmenu

Version:

An Angular component to show a context menu on an arbitrary component

200 lines (190 loc) 9.5 kB
import * as i0 from '@angular/core'; import { TemplateRef, ElementRef, EventEmitter, OnInit, OnDestroy, AfterViewInit, QueryList, ModuleWithProviders } from '@angular/core'; import * as i6 from '@angular/cdk/overlay'; import { OverlayRef, Overlay, ScrollStrategyOptions } from '@angular/cdk/overlay'; import { Highlightable } from '@angular/cdk/a11y'; import { Subject } from 'rxjs'; import * as i5 from '@angular/common'; interface IContextMenuOptions { useBootstrap4?: boolean; autoFocus?: boolean; } declare class ContextMenuItemDirective<TItem = any> implements Highlightable { template: TemplateRef<{ item: TItem; }>; elementRef: ElementRef; subMenu: any; divider: boolean; enabled: boolean | ((item: TItem) => boolean); passive: boolean; visible: boolean | ((item: TItem) => boolean); execute: EventEmitter<{ event: MouseEvent | KeyboardEvent; item: TItem; }>; currentItem: TItem; isActive: boolean; get disabled(): boolean; constructor(template: TemplateRef<{ item: TItem; }>, elementRef: ElementRef); setActiveStyles(): void; setInactiveStyles(): void; triggerExecute(item: TItem, $event?: MouseEvent | KeyboardEvent): void; static ɵfac: i0.ɵɵFactoryDeclaration<ContextMenuItemDirective<any>, never>; static ɵdir: i0.ɵɵDirectiveDeclaration<ContextMenuItemDirective<any>, "[contextMenuItem]", never, { "subMenu": { "alias": "subMenu"; "required": false; }; "divider": { "alias": "divider"; "required": false; }; "enabled": { "alias": "enabled"; "required": false; }; "passive": { "alias": "passive"; "required": false; }; "visible": { "alias": "visible"; "required": false; }; }, { "execute": "execute"; }, never, never, false, never>; } interface ILinkConfig$1 { click: (item: any, $event?: MouseEvent) => void; enabled?: (item: any) => boolean; html: (item: any) => string; } declare class ContextMenuContentComponent implements OnInit, OnDestroy, AfterViewInit { menuItems: ContextMenuItemDirective[]; item: any; event: MouseEvent | KeyboardEvent; parentContextMenu: ContextMenuContentComponent; menuClass: string; overlay: OverlayRef; isLeaf: boolean; execute: EventEmitter<{ event: MouseEvent | KeyboardEvent; item: any; menuItem: ContextMenuItemDirective; }>; openSubMenu: EventEmitter<IContextMenuClickEvent>; closeLeafMenu: EventEmitter<CloseLeafMenuEvent>; closeAllMenus: EventEmitter<{ event: MouseEvent; }>; menuElement: ElementRef; menuItemElements: QueryList<ElementRef>; autoFocus: boolean; useBootstrap4: boolean; private _keyManager; private subscription; constructor(options: IContextMenuOptions); ngOnInit(): void; ngAfterViewInit(): void; ngOnDestroy(): void; focus(): void; stopEvent($event: MouseEvent): void; isMenuItemEnabled(menuItem: ContextMenuItemDirective): boolean; isMenuItemVisible(menuItem: ContextMenuItemDirective): boolean; isDisabled(link: ILinkConfig$1): boolean; onKeyEvent(event: KeyboardEvent): void; keyboardOpenSubMenu(event?: KeyboardEvent): void; keyboardMenuItemSelect(event?: KeyboardEvent): void; onCloseLeafMenu(event: KeyboardEvent): void; closeMenu(event: MouseEvent): void; onOpenSubMenu(menuItem: ContextMenuItemDirective, event?: MouseEvent | KeyboardEvent): void; onMenuItemSelect(menuItem: ContextMenuItemDirective, event: MouseEvent | KeyboardEvent): void; private cancelEvent; static ɵfac: i0.ɵɵFactoryDeclaration<ContextMenuContentComponent, [{ optional: true; }]>; static ɵcmp: i0.ɵɵComponentDeclaration<ContextMenuContentComponent, "context-menu-content", never, { "menuItems": { "alias": "menuItems"; "required": false; }; "item": { "alias": "item"; "required": false; }; "event": { "alias": "event"; "required": false; }; "parentContextMenu": { "alias": "parentContextMenu"; "required": false; }; "menuClass": { "alias": "menuClass"; "required": false; }; "overlay": { "alias": "overlay"; "required": false; }; "isLeaf": { "alias": "isLeaf"; "required": false; }; }, { "execute": "execute"; "openSubMenu": "openSubMenu"; "closeLeafMenu": "closeLeafMenu"; "closeAllMenus": "closeAllMenus"; }, never, never, false, never>; } interface IContextMenuClickEvent { anchorElement?: Element | EventTarget; contextMenu?: ContextMenuComponent; event?: MouseEvent | KeyboardEvent; parentContextMenu?: ContextMenuContentComponent; item: any; activeMenuItemIndex?: number; } interface IContextMenuContext extends IContextMenuClickEvent { menuItems: ContextMenuItemDirective[]; menuClass: string; } interface CloseLeafMenuEvent { exceptRootMenu?: boolean; event?: MouseEvent | KeyboardEvent; } interface OverlayRefWithContextMenu extends OverlayRef { contextMenu?: ContextMenuContentComponent; } interface CancelContextMenuEvent { eventType: 'cancel'; event?: MouseEvent | KeyboardEvent; } interface ExecuteContextMenuEvent { eventType: 'execute'; event?: MouseEvent | KeyboardEvent; item: any; menuItem: ContextMenuItemDirective; } type CloseContextMenuEvent = ExecuteContextMenuEvent | CancelContextMenuEvent; declare class ContextMenuService { private overlay; private scrollStrategy; isDestroyingLeafMenu: boolean; show: Subject<IContextMenuClickEvent>; close: Subject<CloseContextMenuEvent>; private overlays; private fakeElement; private readonly rootMenuPositionsFor; private readonly subMenuPositions; constructor(overlay: Overlay, scrollStrategy: ScrollStrategyOptions); openContextMenu(context: IContextMenuContext): void; attachContextMenu(overlay: OverlayRef, context: IContextMenuContext): void; closeAllContextMenus(closeEvent: CloseContextMenuEvent): void; getLastAttachedOverlay(): OverlayRefWithContextMenu; destroyLeafMenu({ exceptRootMenu, event }?: CloseLeafMenuEvent): void; destroySubMenus(contextMenu: ContextMenuContentComponent): void; isLeafMenu(contextMenuContent: ContextMenuContentComponent): boolean; private destroyOverlay; static ɵfac: i0.ɵɵFactoryDeclaration<ContextMenuService, never>; static ɵprov: i0.ɵɵInjectableDeclaration<ContextMenuService>; } interface ILinkConfig { click: (item: any, $event?: MouseEvent) => void; enabled?: (item: any) => boolean; html: (item: any) => string; } interface MouseLocation { left?: string; top?: string; marginLeft?: string; marginTop?: string; } declare class ContextMenuComponent implements OnDestroy { private contextMenuService; menuClass: string; autoFocus: boolean; useBootstrap4: boolean; disabled: boolean; close: EventEmitter<CloseContextMenuEvent>; open: EventEmitter<IContextMenuClickEvent>; menuItems: QueryList<ContextMenuItemDirective>; visibleMenuItems: ContextMenuItemDirective[]; menuElement: ElementRef; links: ILinkConfig[]; item: any; event: MouseEvent | KeyboardEvent; private subscription; constructor(contextMenuService: ContextMenuService, options: IContextMenuOptions); ngOnDestroy(): void; onMenuEvent(menuEvent: IContextMenuClickEvent): void; isMenuItemVisible(menuItem: ContextMenuItemDirective): boolean; setVisibleMenuItems(): void; static ɵfac: i0.ɵɵFactoryDeclaration<ContextMenuComponent, [null, { optional: true; }]>; static ɵcmp: i0.ɵɵComponentDeclaration<ContextMenuComponent, "context-menu", never, { "menuClass": { "alias": "menuClass"; "required": false; }; "autoFocus": { "alias": "autoFocus"; "required": false; }; "useBootstrap4": { "alias": "useBootstrap4"; "required": false; }; "disabled": { "alias": "disabled"; "required": false; }; }, { "close": "close"; "open": "open"; }, ["menuItems"], never, false, never>; } declare class ContextMenuAttachDirective { private contextMenuService; contextMenuSubject: any; contextMenu: ContextMenuComponent; constructor(contextMenuService: ContextMenuService); onContextMenu(event: MouseEvent): void; static ɵfac: i0.ɵɵFactoryDeclaration<ContextMenuAttachDirective, never>; static ɵdir: i0.ɵɵDirectiveDeclaration<ContextMenuAttachDirective, "[contextMenu]", never, { "contextMenuSubject": { "alias": "contextMenuSubject"; "required": false; }; "contextMenu": { "alias": "contextMenu"; "required": false; }; }, {}, never, never, false, never>; } declare class ContextMenuModule { static forRoot(options?: IContextMenuOptions): ModuleWithProviders<ContextMenuModule>; static ɵfac: i0.ɵɵFactoryDeclaration<ContextMenuModule, never>; static ɵmod: i0.ɵɵNgModuleDeclaration<ContextMenuModule, [typeof ContextMenuComponent, typeof ContextMenuContentComponent, typeof ContextMenuAttachDirective, typeof ContextMenuItemDirective], [typeof i5.CommonModule, typeof i6.OverlayModule], [typeof ContextMenuComponent, typeof ContextMenuAttachDirective, typeof ContextMenuItemDirective]>; static ɵinj: i0.ɵɵInjectorDeclaration<ContextMenuModule>; } export { ContextMenuAttachDirective, ContextMenuComponent, ContextMenuItemDirective, ContextMenuModule, ContextMenuService }; export type { CancelContextMenuEvent, CloseContextMenuEvent, CloseLeafMenuEvent, ExecuteContextMenuEvent, IContextMenuClickEvent, IContextMenuContext, IContextMenuOptions, ILinkConfig, MouseLocation, OverlayRefWithContextMenu }; //# sourceMappingURL=index.d.ts.map