{"version":3,"file":"vldmr-bus-ngx-contextmenu.mjs","sources":["../../../projects/ngx-contextmenu/src/lib/contextMenu.tokens.ts","../../../projects/ngx-contextmenu/src/lib/contextMenuContent.component.ts","../../../projects/ngx-contextmenu/src/lib/contextMenu.service.ts","../../../projects/ngx-contextmenu/src/lib/contextMenu.attach.directive.ts","../../../projects/ngx-contextmenu/src/lib/contextMenu.item.directive.ts","../../../projects/ngx-contextmenu/src/lib/contextMenu.component.ts","../../../projects/ngx-contextmenu/src/lib/ngx-contextmenu.ts","../../../projects/ngx-contextmenu/src/public_api.ts","../../../vldmr-bus-ngx-contextmenu.ts"],"sourcesContent":["import { InjectionToken } from '@angular/core';\n\nexport const CONTEXT_MENU_OPTIONS = new InjectionToken('CONTEXT_MENU_OPTIONS');\n","import { ActiveDescendantKeyManager } from '@angular/cdk/a11y';\nimport { OverlayRef } from '@angular/cdk/overlay';\nimport {\n  AfterViewInit,\n  ChangeDetectorRef,\n  Component,\n  ElementRef,\n  EventEmitter,\n  HostListener,\n  Inject,\n  Input,\n  OnDestroy,\n  OnInit,\n  Optional,\n  Output,\n  QueryList,\n  ViewChild,\n  ViewChildren\n} from '@angular/core';\nimport { Subscription } from 'rxjs';\nimport { ContextMenuItemDirective } from './contextMenu.item.directive';\nimport { IContextMenuOptions } from './contextMenu.options';\nimport {\n  CloseLeafMenuEvent,\n  IContextMenuClickEvent\n} from './contextMenu.service';\nimport { CONTEXT_MENU_OPTIONS } from './contextMenu.tokens';\n\nexport interface ILinkConfig {\n  click: (item: any, $event?: MouseEvent) => void;\n  enabled?: (item: any) => boolean;\n  html: (item: any) => string;\n}\n\nconst ARROW_LEFT_KEYCODE = 37;\n\n@Component({\n  selector: 'context-menu-content',\n  styles: [\n    `\n      .passive {\n        display: block;\n        padding: 3px 20px;\n        clear: both;\n        font-weight: normal;\n        line-height: @line-height-base;\n        white-space: nowrap;\n      }\n      .hasSubMenu:before {\n        content: '\\u25B6';\n        float: right;\n      }\n    `\n  ],\n  template: `\n    <div\n      class=\"dropdown open show ngx-contextmenu\"\n      [ngClass]=\"menuClass\"\n      tabindex=\"0\"\n    >\n      <ul\n        #menu\n        class=\"dropdown-menu show\"\n        style=\"position: static; float: none;\"\n        tabindex=\"0\"\n      >\n        <li\n          #li\n          *ngFor=\"let menuItem of menuItems; let i = index\"\n          [class.disabled]=\"!isMenuItemEnabled(menuItem)\"\n          [class.divider]=\"menuItem.divider\"\n          [class.dropdown-divider]=\"useBootstrap4 && menuItem.divider\"\n          [class.active]=\"menuItem.isActive && isMenuItemEnabled(menuItem)\"\n          [attr.role]=\"menuItem.divider ? 'separator' : undefined\"\n        >\n          <a\n            *ngIf=\"!menuItem.divider && !menuItem.passive\"\n            href\n            [class.dropdown-item]=\"useBootstrap4\"\n            [class.active]=\"menuItem.isActive && isMenuItemEnabled(menuItem)\"\n            [class.disabled]=\"useBootstrap4 && !isMenuItemEnabled(menuItem)\"\n            [class.hasSubMenu]=\"!!menuItem.subMenu\"\n            (click)=\"onMenuItemSelect(menuItem, $event)\"\n            (mouseenter)=\"onOpenSubMenu(menuItem, $event)\"\n          >\n            <ng-template\n              [ngTemplateOutlet]=\"menuItem.template\"\n              [ngTemplateOutletContext]=\"{ item }\"\n            ></ng-template>\n          </a>\n\n          <span\n            (click)=\"stopEvent($event)\"\n            (contextmenu)=\"stopEvent($event)\"\n            class=\"passive\"\n            *ngIf=\"!menuItem.divider && menuItem.passive\"\n            [class.dropdown-item]=\"useBootstrap4\"\n            [class.disabled]=\"useBootstrap4 && !isMenuItemEnabled(menuItem)\"\n          >\n            <ng-template\n              [ngTemplateOutlet]=\"menuItem.template\"\n              [ngTemplateOutletContext]=\"{ item }\"\n            ></ng-template>\n          </span>\n        </li>\n      </ul>\n    </div>\n  `\n})\nexport class ContextMenuContentComponent\n  implements OnInit, OnDestroy, AfterViewInit {\n  @Input() public menuItems: ContextMenuItemDirective[] = [];\n  @Input() public item: any;\n  @Input() public event: MouseEvent | KeyboardEvent;\n  @Input() public parentContextMenu: ContextMenuContentComponent;\n  @Input() public menuClass: string;\n  @Input() public overlay: OverlayRef;\n  @Input() public isLeaf = false;\n  @Output() public execute: EventEmitter<{\n    event: MouseEvent | KeyboardEvent;\n    item: any;\n    menuItem: ContextMenuItemDirective;\n  }> = new EventEmitter();\n  @Output() public openSubMenu: EventEmitter<\n    IContextMenuClickEvent\n  > = new EventEmitter();\n  @Output() public closeLeafMenu: EventEmitter<\n    CloseLeafMenuEvent\n  > = new EventEmitter();\n  @Output() public closeAllMenus: EventEmitter<{\n    event: MouseEvent;\n  }> = new EventEmitter();\n  @ViewChild('menu', { static: true }) public menuElement: ElementRef;\n  @ViewChildren('li') public menuItemElements: QueryList<ElementRef>;\n\n  public autoFocus = false;\n  public useBootstrap4 = false;\n  private _keyManager: ActiveDescendantKeyManager<ContextMenuItemDirective>;\n  private subscription: Subscription = new Subscription();\n  constructor(\n    private changeDetector: ChangeDetectorRef,\n    private elementRef: ElementRef,\n    @Optional()\n    @Inject(CONTEXT_MENU_OPTIONS)\n    private options: IContextMenuOptions\n  ) {\n    if (options) {\n      this.autoFocus = options.autoFocus;\n      this.useBootstrap4 = options.useBootstrap4;\n    }\n  }\n\n  ngOnInit(): void {\n    this.menuItems.forEach(menuItem => {\n      menuItem.currentItem = this.item;\n      this.subscription.add(\n        menuItem.execute.subscribe(event =>\n          this.execute.emit({ ...event, menuItem })\n        )\n      );\n    });\n    const queryList = new QueryList<ContextMenuItemDirective>();\n    queryList.reset(this.menuItems);\n    this._keyManager = new ActiveDescendantKeyManager<ContextMenuItemDirective>(\n      queryList\n    ).withWrap();\n  }\n\n  ngAfterViewInit() {\n    if (this.autoFocus) {\n      setTimeout(() => this.focus());\n    }\n    this.overlay.updatePosition();\n  }\n\n  ngOnDestroy() {\n    this.subscription.unsubscribe();\n  }\n\n  focus(): void {\n    if (this.autoFocus) {\n      this.menuElement.nativeElement.focus();\n    }\n  }\n\n  stopEvent($event: MouseEvent) {\n    $event.stopPropagation();\n  }\n\n  public isMenuItemEnabled(menuItem: ContextMenuItemDirective): boolean {\n    return this.evaluateIfFunction(menuItem && menuItem.enabled);\n  }\n\n  public isMenuItemVisible(menuItem: ContextMenuItemDirective): boolean {\n    return this.evaluateIfFunction(menuItem && menuItem.visible);\n  }\n\n  public evaluateIfFunction(value: any): any {\n    if (value instanceof Function) {\n      return value(this.item);\n    }\n    return value;\n  }\n\n  public isDisabled(link: ILinkConfig): boolean {\n    return link.enabled && !link.enabled(this.item);\n  }\n\n  @HostListener('window:keydown.ArrowDown', ['$event'])\n  @HostListener('window:keydown.ArrowUp', ['$event'])\n  public onKeyEvent(event: KeyboardEvent): void {\n    if (!this.isLeaf) {\n      return;\n    }\n    this._keyManager.onKeydown(event);\n  }\n\n  @HostListener('window:keydown.ArrowRight', ['$event'])\n  public keyboardOpenSubMenu(event?: KeyboardEvent): void {\n    if (!this.isLeaf) {\n      return;\n    }\n    this.cancelEvent(event);\n    const menuItem = this.menuItems[this._keyManager.activeItemIndex];\n    if (menuItem) {\n      this.onOpenSubMenu(menuItem);\n    }\n  }\n\n  @HostListener('window:keydown.Enter', ['$event'])\n  @HostListener('window:keydown.Space', ['$event'])\n  public keyboardMenuItemSelect(event?: KeyboardEvent): void {\n    if (!this.isLeaf) {\n      return;\n    }\n    this.cancelEvent(event);\n    const menuItem = this.menuItems[this._keyManager.activeItemIndex];\n    if (menuItem) {\n      this.onMenuItemSelect(menuItem, event);\n    }\n  }\n\n  @HostListener('window:keydown.Escape', ['$event'])\n  @HostListener('window:keydown.ArrowLeft', ['$event'])\n  public onCloseLeafMenu(event: KeyboardEvent): void {\n    if (!this.isLeaf) {\n      return;\n    }\n    this.cancelEvent(event);\n    this.closeLeafMenu.emit({\n      exceptRootMenu: event.keyCode === ARROW_LEFT_KEYCODE,\n      event\n    });\n  }\n\n  @HostListener('document:click', ['$event'])\n  @HostListener('document:contextmenu', ['$event'])\n  public closeMenu(event: MouseEvent): void {\n    if (event.type === 'click' && event.button === 2) {\n      return;\n    }\n    this.closeAllMenus.emit({ event });\n  }\n\n  public onOpenSubMenu(\n    menuItem: ContextMenuItemDirective,\n    event?: MouseEvent | KeyboardEvent\n  ): void {\n    const anchorElementRef = this.menuItemElements.toArray()[\n      this._keyManager.activeItemIndex\n    ];\n    const anchorElement = anchorElementRef && anchorElementRef.nativeElement;\n    this.openSubMenu.emit({\n      anchorElement,\n      contextMenu: menuItem.subMenu,\n      event,\n      item: this.item,\n      parentContextMenu: this\n    });\n  }\n\n  public onMenuItemSelect(\n    menuItem: ContextMenuItemDirective,\n    event: MouseEvent | KeyboardEvent\n  ): void {\n    event.preventDefault();\n    event.stopPropagation();\n    this.onOpenSubMenu(menuItem, event);\n    if (!menuItem.subMenu) {\n      menuItem.triggerExecute(this.item, event);\n    }\n  }\n\n  private cancelEvent(event): void {\n    if (!event) {\n      return;\n    }\n\n    const target: HTMLElement = event.target;\n    if (\n      ['INPUT', 'TEXTAREA', 'SELECT'].indexOf(target.tagName) > -1 ||\n      target.isContentEditable\n    ) {\n      return;\n    }\n\n    event.preventDefault();\n    event.stopPropagation();\n  }\n}\n","import { Overlay, OverlayRef, ScrollStrategyOptions } from '@angular/cdk/overlay';\nimport { ComponentPortal } from '@angular/cdk/portal';\nimport { ComponentRef, Injectable, ElementRef } from '@angular/core';\nimport { Subject, Subscription } from 'rxjs';\n\nimport { ContextMenuComponent } from './contextMenu.component';\nimport { ContextMenuItemDirective } from './contextMenu.item.directive';\nimport { ContextMenuContentComponent } from './contextMenuContent.component';\n\nexport interface IContextMenuClickEvent {\n  anchorElement?: Element | EventTarget;\n  contextMenu?: ContextMenuComponent;\n  event?: MouseEvent | KeyboardEvent;\n  parentContextMenu?: ContextMenuContentComponent;\n  item: any;\n  activeMenuItemIndex?: number;\n}\nexport interface IContextMenuContext extends IContextMenuClickEvent {\n  menuItems: ContextMenuItemDirective[];\n  menuClass: string;\n}\nexport interface CloseLeafMenuEvent {\n  exceptRootMenu?: boolean;\n  event?: MouseEvent | KeyboardEvent;\n}\nexport interface OverlayRefWithContextMenu extends OverlayRef {\n  contextMenu?: ContextMenuContentComponent;\n}\n\nexport interface CancelContextMenuEvent {\n  eventType: 'cancel';\n  event?: MouseEvent | KeyboardEvent;\n}\nexport interface ExecuteContextMenuEvent {\n  eventType: 'execute';\n  event?: MouseEvent | KeyboardEvent;\n  item: any;\n  menuItem: ContextMenuItemDirective;\n}\nexport type CloseContextMenuEvent = ExecuteContextMenuEvent | CancelContextMenuEvent;\n\n@Injectable({ providedIn: 'root' })\nexport class ContextMenuService {\n  public isDestroyingLeafMenu = false;\n\n  public show: Subject<IContextMenuClickEvent> = new Subject<IContextMenuClickEvent>();\n  public triggerClose: Subject<ContextMenuContentComponent> = new Subject();\n  public close: Subject<CloseContextMenuEvent> = new Subject();\n\n  private contextMenuContent: ComponentRef<ContextMenuContentComponent>;\n  private overlays: OverlayRef[] = [];\n  private fakeElement: any = {\n    getBoundingClientRect: (): ClientRect & { x: number; y: number; toJSON: () => any } => ({\n      bottom: 0,\n      height: 0,\n      left: 0,\n      right: 0,\n      top: 0,\n      width: 0,\n      x: 0,\n      y: 0,\n      toJSON: () => null,\n    })\n  };\n\n  constructor(\n    private overlay: Overlay,\n    private scrollStrategy: ScrollStrategyOptions,\n  ) { }\n\n  public openContextMenu(context: IContextMenuContext) {\n    const { anchorElement, event, parentContextMenu } = context;\n\n    if (!parentContextMenu) {\n      const mouseEvent = event as MouseEvent;\n      this.fakeElement.getBoundingClientRect = (): ClientRect => ({\n        bottom: mouseEvent.clientY,\n        height: 0,\n        left: mouseEvent.clientX,\n        right: mouseEvent.clientX,\n        top: mouseEvent.clientY,\n        width: 0,\n        x: 0,\n        y: 0,\n        toJSON: () => null,\n      });\n      this.closeAllContextMenus({ eventType: 'cancel', event });\n      const positionStrategy = this.overlay.position().flexibleConnectedTo(\n        new ElementRef(anchorElement || this.fakeElement))\n        .withPositions([\n          { originX: 'start', originY: 'bottom' , overlayX: 'start', overlayY: 'top' },\n          { originX: 'start', originY: 'top', overlayX: 'start', overlayY: 'bottom' },\n          { originX: 'end', originY: 'top', overlayX: 'start', overlayY: 'top' },\n          { originX: 'start', originY: 'top', overlayX: 'end', overlayY: 'top' },\n          { originX: 'end', originY: 'center', overlayX: 'start', overlayY: 'center' },\n          { originX: 'start', originY: 'center', overlayX: 'end', overlayY: 'center' }\n        ])\n        .withPush(false);\n      this.overlays = [this.overlay.create({\n        positionStrategy,\n        panelClass: 'ngx-contextmenu',\n        scrollStrategy: this.scrollStrategy.close(),\n      })];\n      this.attachContextMenu(this.overlays[0], context);\n    } else {\n      const positionStrategy = this.overlay.position().flexibleConnectedTo(\n        new ElementRef(event ? event.target : anchorElement))\n        .withPositions([\n          { originX: 'end', originY: 'top', overlayX: 'start', overlayY: 'top' },\n          { originX: 'start', originY: 'top', overlayX: 'end', overlayY: 'top' },\n          { originX: 'end', originY: 'bottom', overlayX: 'start', overlayY: 'bottom' },\n          { originX: 'start', originY: 'bottom', overlayX: 'end', overlayY: 'bottom' },\n        ]);\n      const newOverlay = this.overlay.create({\n        positionStrategy,\n        panelClass: 'ngx-contextmenu',\n        scrollStrategy: this.scrollStrategy.close(),\n      });\n      this.destroySubMenus(parentContextMenu);\n      this.overlays = this.overlays.concat(newOverlay);\n      this.attachContextMenu(newOverlay, context);\n    }\n  }\n\n  public attachContextMenu(overlay: OverlayRef, context: IContextMenuContext): void {\n    const { event, item, menuItems, menuClass } = context;\n\n    const contextMenuContent: ComponentRef<ContextMenuContentComponent> = overlay.attach(new ComponentPortal(ContextMenuContentComponent));\n    contextMenuContent.instance.event = event;\n    contextMenuContent.instance.item = item;\n    contextMenuContent.instance.menuItems = menuItems;\n    contextMenuContent.instance.overlay = overlay;\n    contextMenuContent.instance.isLeaf = true;\n    contextMenuContent.instance.menuClass = menuClass;\n    (<OverlayRefWithContextMenu>overlay).contextMenu = contextMenuContent.instance;\n\n    const subscriptions: Subscription = new Subscription();\n    subscriptions.add(contextMenuContent.instance.execute.asObservable()\n      .subscribe((executeEvent) => this.closeAllContextMenus({ eventType: 'execute', ...executeEvent })));\n    subscriptions.add(contextMenuContent.instance.closeAllMenus.asObservable()\n      .subscribe((closeAllEvent) => this.closeAllContextMenus({ eventType: 'cancel', ...closeAllEvent })));\n    subscriptions.add(contextMenuContent.instance.closeLeafMenu.asObservable()\n      .subscribe(closeLeafMenuEvent => this.destroyLeafMenu(closeLeafMenuEvent)));\n    subscriptions.add(contextMenuContent.instance.openSubMenu.asObservable()\n      .subscribe((subMenuEvent: IContextMenuContext) => {\n        this.destroySubMenus(contextMenuContent.instance);\n        if (!subMenuEvent.contextMenu) {\n          contextMenuContent.instance.isLeaf = true;\n          return;\n        }\n        contextMenuContent.instance.isLeaf = false;\n        this.show.next(subMenuEvent);\n      }));\n    contextMenuContent.onDestroy(() => {\n      menuItems.forEach(menuItem => menuItem.isActive = false);\n      subscriptions.unsubscribe();\n    });\n    contextMenuContent.changeDetectorRef.detectChanges();\n  }\n\n  public closeAllContextMenus(closeEvent: CloseContextMenuEvent): void {\n    if (this.overlays) {\n      this.close.next(closeEvent);\n      this.overlays.forEach((overlay, index) => {\n        overlay.detach();\n        overlay.dispose();\n      });\n    }\n    this.overlays = [];\n  }\n\n  public getLastAttachedOverlay(): OverlayRefWithContextMenu {\n    let overlay: OverlayRef = this.overlays[this.overlays.length - 1];\n    while (this.overlays.length > 1 && overlay && !overlay.hasAttached()) {\n      overlay.detach();\n      overlay.dispose();\n      this.overlays = this.overlays.slice(0, -1);\n      overlay = this.overlays[this.overlays.length - 1];\n    }\n    return overlay;\n  }\n\n  public destroyLeafMenu({ exceptRootMenu, event }: CloseLeafMenuEvent = {}): void {\n    if (this.isDestroyingLeafMenu) {\n      return;\n    }\n    this.isDestroyingLeafMenu = true;\n\n    setTimeout(() => {\n      const overlay = this.getLastAttachedOverlay();\n      if (this.overlays.length > 1 && overlay) {\n        overlay.detach();\n        overlay.dispose();\n      }\n      if (!exceptRootMenu && this.overlays.length > 0 && overlay) {\n        this.close.next({ eventType: 'cancel', event });\n        overlay.detach();\n        overlay.dispose();\n      }\n\n      const newLeaf = this.getLastAttachedOverlay();\n      if (newLeaf) {\n        newLeaf.contextMenu.isLeaf = true;\n      }\n\n      this.isDestroyingLeafMenu = false;\n    });\n  }\n\n  public destroySubMenus(contextMenu: ContextMenuContentComponent): void {\n    const overlay = contextMenu.overlay;\n    const index = this.overlays.indexOf(overlay);\n    this.overlays.slice(index + 1).forEach(subMenuOverlay => {\n      subMenuOverlay.detach();\n      subMenuOverlay.dispose();\n    });\n  }\n\n  public isLeafMenu(contextMenuContent: ContextMenuContentComponent): boolean {\n    const overlay = this.getLastAttachedOverlay();\n    return contextMenuContent.overlay === overlay;\n  }\n}\n","import { ContextMenuComponent } from './contextMenu.component';\nimport { ContextMenuService } from './contextMenu.service';\nimport { Directive, HostListener, Input } from '@angular/core';\n\n@Directive({\n  selector: '[contextMenu]',\n})\nexport class ContextMenuAttachDirective {\n  @Input() public contextMenuSubject: any;\n  @Input() public contextMenu: ContextMenuComponent;\n\n  constructor(private contextMenuService: ContextMenuService) { }\n\n  @HostListener('contextmenu', ['$event'])\n  public onContextMenu(event: MouseEvent): void {\n    if (!this.contextMenu.disabled) {\n      this.contextMenuService.show.next({\n        contextMenu: this.contextMenu,\n        event,\n        item: this.contextMenuSubject,\n      });\n      event.preventDefault();\n      event.stopPropagation();\n    }\n  }\n}\n","import { Highlightable } from '@angular/cdk/a11y';\nimport { Directive, ElementRef, EventEmitter, Input, Output, TemplateRef } from '@angular/core';\n\n@Directive({\n  /* tslint:disable:directive-selector-type */\n  selector: '[contextMenuItem]',\n  /* tslint:enable:directive-selector-type */\n})\nexport class ContextMenuItemDirective implements Highlightable {\n  @Input() public subMenu: any;\n  @Input() public divider = false;\n  @Input() public enabled: boolean | ((item: any) => boolean) = true;\n  @Input() public passive = false;\n  @Input() public visible: boolean | ((item: any) => boolean) = true;\n  @Output() public execute: EventEmitter<{ event: MouseEvent | KeyboardEvent, item: any }> = new EventEmitter();\n\n  public currentItem: any;\n  public isActive = false;\n  public get disabled() {\n    return this.passive ||\n      this.divider ||\n      !this.evaluateIfFunction(this.enabled, this.currentItem);\n  }\n\n  constructor(public template: TemplateRef<{ item: any }>, public elementRef: ElementRef) { }\n\n  public evaluateIfFunction(value: any, item: any): any {\n    if (value instanceof Function) {\n      return value(item);\n    }\n    return value;\n  }\n\n  public setActiveStyles(): void {\n    this.isActive = true;\n  }\n  public setInactiveStyles(): void {\n    this.isActive = false;\n  }\n\n  public triggerExecute(item: any, $event?: MouseEvent | KeyboardEvent): void {\n    if (!this.evaluateIfFunction(this.enabled, item)) {\n      return;\n    }\n    this.execute.emit({ event: $event, item });\n  }\n}\n","import {\n    ChangeDetectorRef,\n    Component,\n    ContentChildren,\n    ElementRef,\n    EventEmitter,\n    HostListener,\n    Inject,\n    Input,\n    OnDestroy,\n    Optional,\n    Output,\n    QueryList,\n    ViewChild,\n    ViewEncapsulation,\n} from '@angular/core';\nimport { Subscription } from 'rxjs';\nimport { first } from 'rxjs/operators';\n\nimport { ContextMenuItemDirective } from './contextMenu.item.directive';\nimport { IContextMenuOptions } from './contextMenu.options';\nimport { ContextMenuService, IContextMenuClickEvent, CloseContextMenuEvent } from './contextMenu.service';\nimport { CONTEXT_MENU_OPTIONS } from './contextMenu.tokens';\n\nexport interface ILinkConfig {\n  click: (item: any, $event?: MouseEvent) => void;\n  enabled?: (item: any) => boolean;\n  html: (item: any) => string;\n}\nexport interface MouseLocation {\n  left?: string;\n  marginLeft?: string;\n  marginTop?: string;\n  top?: string;\n}\n\n@Component({\n  encapsulation: ViewEncapsulation.None,\n  selector: 'context-menu',\n  styles: [`\n    .cdk-overlay-container {\n      position: fixed;\n      z-index: 1000;\n      pointer-events: none;\n      top: 0;\n      left: 0;\n      width: 100%;\n      height: 100%;\n    }\n    .ngx-contextmenu.cdk-overlay-pane {\n      position: absolute;\n      pointer-events: auto;\n      box-sizing: border-box;\n    }\n  `],\n  template: ` `,\n})\nexport class ContextMenuComponent implements OnDestroy {\n  @Input() public menuClass = \"\";\n  @Input() public autoFocus = false;\n  @Input() public useBootstrap4 = false;\n  @Input() public disabled = false;\n  @Output() public close: EventEmitter<CloseContextMenuEvent> = new EventEmitter();\n  @Output() public open: EventEmitter<IContextMenuClickEvent> = new EventEmitter();\n  @ContentChildren(ContextMenuItemDirective) public menuItems: QueryList<ContextMenuItemDirective>;\n  @ViewChild('menu', { static: false }) public menuElement: ElementRef;\n  public visibleMenuItems: ContextMenuItemDirective[] = [];\n\n  public links: ILinkConfig[] = [];\n  public item: any;\n  public event: MouseEvent | KeyboardEvent;\n  private subscription: Subscription = new Subscription();\n\n  constructor(\n    private _contextMenuService: ContextMenuService,\n    private changeDetector: ChangeDetectorRef,\n    private elementRef: ElementRef,\n    @Optional()\n    @Inject(CONTEXT_MENU_OPTIONS) private options: IContextMenuOptions,\n  ) {\n    if (options) {\n      this.autoFocus = options.autoFocus;\n      this.useBootstrap4 = options.useBootstrap4;\n    }\n    this.subscription.add(_contextMenuService.show.subscribe(menuEvent => {\n      this.onMenuEvent(menuEvent);\n    }));\n  }\n\n  public ngOnDestroy(): void {\n    this.subscription.unsubscribe();\n  }\n\n  public onMenuEvent(menuEvent: IContextMenuClickEvent): void {\n    if (this.disabled) {\n      return;\n    }\n    const { contextMenu, event, item } = menuEvent;\n    if (contextMenu && contextMenu !== this) {\n      return;\n    }\n    this.event = event;\n    this.item = item;\n    this.setVisibleMenuItems();\n    this._contextMenuService.openContextMenu({ ...menuEvent, menuItems: this.visibleMenuItems, menuClass: this.menuClass });\n    this._contextMenuService.close.asObservable().pipe(first()).subscribe(closeEvent => this.close.emit(closeEvent));\n    this.open.next(menuEvent);\n  }\n\n  public isMenuItemVisible(menuItem: ContextMenuItemDirective): boolean {\n    return this.evaluateIfFunction(menuItem.visible);\n  }\n\n  public setVisibleMenuItems(): void {\n    this.visibleMenuItems = this.menuItems.filter(menuItem => this.isMenuItemVisible(menuItem));\n  }\n\n  public evaluateIfFunction(value: any): any {\n    if (value instanceof Function) {\n      return value(this.item);\n    }\n    return value;\n  }\n}\n","import { OverlayModule, FullscreenOverlayContainer, OverlayContainer, } from '@angular/cdk/overlay';\nimport { CommonModule } from '@angular/common';\nimport { ModuleWithProviders, NgModule } from '@angular/core';\n\nimport { ContextMenuAttachDirective } from './contextMenu.attach.directive';\nimport { ContextMenuComponent } from './contextMenu.component';\nimport { ContextMenuItemDirective } from './contextMenu.item.directive';\nimport { IContextMenuOptions } from './contextMenu.options';\nimport { ContextMenuService } from './contextMenu.service';\nimport { CONTEXT_MENU_OPTIONS } from './contextMenu.tokens';\nimport { ContextMenuContentComponent } from './contextMenuContent.component';\n\n@NgModule({\n  declarations: [\n    ContextMenuAttachDirective,\n    ContextMenuComponent,\n    ContextMenuContentComponent,\n    ContextMenuItemDirective,\n  ],\n  exports: [\n    ContextMenuAttachDirective,\n    ContextMenuComponent,\n    ContextMenuItemDirective,\n  ],\n  imports: [\n    CommonModule,\n    OverlayModule,\n  ],\n})\nexport class ContextMenuModule {\n  public static forRoot(options?: IContextMenuOptions): ModuleWithProviders<ContextMenuModule> {\n    return {\n      ngModule: ContextMenuModule,\n      providers: [\n        ContextMenuService,\n        {\n          provide: CONTEXT_MENU_OPTIONS,\n          useValue: options,\n        },\n        { provide: OverlayContainer, useClass: FullscreenOverlayContainer },\n      ],\n    };\n  }\n}\n","/*\n * Public API Surface of ngx-contextmenu\n */\n\nexport { ContextMenuModule } from './lib/ngx-contextmenu';\n\nexport * from './lib/contextMenu.component';\nexport * from './lib/contextMenu.service';\nexport * from './lib/contextMenu.options';\nexport * from './lib/contextMenu.attach.directive';\nexport * from './lib/contextMenu.item.directive';\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public_api';\n"],"names":["i1","i1.ContextMenuService"],"mappings":"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"}