{"version":3,"file":"novo-elements-elements-menu.mjs","sources":["../../../projects/novo-elements/src/elements/menu/menu-content.component.ts","../../../projects/novo-elements/src/elements/menu/menu-item.directive.ts","../../../projects/novo-elements/src/elements/menu/menu.service.ts","../../../projects/novo-elements/src/elements/menu/menu.tokens.ts","../../../projects/novo-elements/src/elements/menu/menu.component.ts","../../../projects/novo-elements/src/elements/menu/menu.directive.ts","../../../projects/novo-elements/src/elements/menu/menu.module.ts","../../../projects/novo-elements/src/elements/menu/index.ts","../../../projects/novo-elements/src/elements/menu/novo-elements-elements-menu.ts"],"sourcesContent":["import { ActiveDescendantKeyManager } from '@angular/cdk/a11y';\nimport { OverlayRef } from '@angular/cdk/overlay';\nimport { AfterViewInit, Component, EventEmitter, HostListener, Input, OnDestroy, OnInit, Output } from '@angular/core';\nimport { Subscription } from 'rxjs';\nimport { Key } from 'novo-elements/utils';\nimport { NovoOption } from 'novo-elements/elements/common';\nimport { MenuItemDirective } from './menu-item.directive';\nimport { CloseLeafMenuEvent, IMenuClickEvent } from './menu.service';\nimport { ILinkConfig } from './menu.types';\n\n@Component({\n    selector: 'menu-content',\n    styleUrls: ['./menu-content.component.scss'],\n    template: `<div class=\"menu-container novo-menu\" [ngClass]=\"menuClass\" tabindex=\"0\">\n    <ul #menu class=\"menu\" style=\"position: static; float: none;\" tabindex=\"0\">\n      <ng-container *ngFor=\"let menuItem of menuItems; let i = index\">\n        <ng-template [ngTemplateOutlet]=\"menuItem.template\" [ngTemplateOutletContext]=\"{ $implicit: item }\"></ng-template>\n      </ng-container>\n    </ul>\n  </div> `,\n    standalone: false,\n})\nexport class MenuContentComponent implements OnInit, OnDestroy, AfterViewInit {\n  @Input() public menuItems: MenuItemDirective[] = [];\n  @Input() public item: any;\n  @Input() public event: MouseEvent | KeyboardEvent;\n  @Input() public menu: any;\n  @Input() public parentMenu: MenuContentComponent;\n  @Input() public menuClass: string;\n  @Input() public overlay: OverlayRef;\n  @Input() public isLeaf = false;\n  @Output() public openSubMenu: EventEmitter<IMenuClickEvent> = new EventEmitter();\n  @Output() public closeLeafMenu: EventEmitter<CloseLeafMenuEvent> = new EventEmitter();\n  @Output() public closeAllMenus: EventEmitter<{ event: MouseEvent }> = new EventEmitter();\n\n  public autoFocus = false;\n  private _keyManager: ActiveDescendantKeyManager<NovoOption>;\n  private subscription: Subscription = new Subscription();\n  constructor() {}\n\n  ngOnInit(): void {}\n\n  ngAfterViewInit() {\n    if (this.autoFocus) {\n      setTimeout(() => this.focus());\n    }\n    this.overlay.updatePosition();\n    this._keyManager = new ActiveDescendantKeyManager<NovoOption>(this.menu.menuOptions).withWrap();\n  }\n\n  ngOnDestroy() {\n    this.subscription.unsubscribe();\n  }\n\n  focus(): void {}\n\n  stopEvent($event: MouseEvent) {\n    $event.stopPropagation();\n  }\n\n  public isMenuItemEnabled(menuItem: MenuItemDirective): boolean {\n    return this.evaluateIfFunction(menuItem && menuItem.menuItemEnabled);\n  }\n\n  public isMenuItemVisible(menuItem: MenuItemDirective): boolean {\n    return this.evaluateIfFunction(menuItem && menuItem.menuItemVisible);\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    const option = this._keyManager.activeItem;\n    option._clickViaInteraction();\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({ exceptRootMenu: event.key === Key.ArrowLeft, event });\n  }\n\n  @HostListener('document:click', ['$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  @HostListener('mouseleave', ['$event'])\n  public onMouseLeave(event: MouseEvent): void {\n    if (this.isLeaf) {\n      this.closeLeafMenu.emit({ exceptRootMenu: true, event });\n    }\n  }\n\n  public onOpenSubMenu(menuItem: MenuItemDirective, event?: MouseEvent | KeyboardEvent): void {}\n\n  public onMenuItemSelect(menuItem: MenuItemDirective, event: MouseEvent | KeyboardEvent): void {\n    event.preventDefault();\n    event.stopPropagation();\n    this.onOpenSubMenu(menuItem, event);\n  }\n\n  private cancelEvent(event): void {\n    if (!event) {\n      return;\n    }\n\n    const target: HTMLElement = event.target;\n    if (['INPUT', 'TEXTAREA', 'SELECT'].indexOf(target.tagName) > -1 || target.isContentEditable) {\n      return;\n    }\n\n    event.preventDefault();\n    event.stopPropagation();\n  }\n}\n","import { ContentChild, Directive, ElementRef, Input, TemplateRef } from '@angular/core';\nimport { NovoOption } from 'novo-elements/elements/common';\n\n/**\n * This is a structural directive now.  Should only be used on `novo-options`\n */\n@Directive({\n    selector: '[menuItem]',\n    standalone: false,\n})\nexport class MenuItemDirective {\n  @Input() public menuItemEnabled: boolean | ((item: any) => boolean) = true;\n  @Input() public menuItemVisible: boolean | ((item: any) => boolean) = true;\n\n  @ContentChild(NovoOption) optionRef: NovoOption;\n\n  public currentItem: any;\n\n  constructor(public template: TemplateRef<{ item: any }>, public elementRef: ElementRef) {}\n}\n","import { Overlay, OverlayRef, ScrollStrategyOptions } from '@angular/cdk/overlay';\nimport { ComponentPortal } from '@angular/cdk/portal';\nimport { ComponentRef, ElementRef, Injectable } from '@angular/core';\nimport { Subject, Subscription } from 'rxjs';\nimport { MenuContentComponent } from './menu-content.component';\nimport type { MenuItemDirective } from './menu-item.directive';\nimport type { MenuComponent } from './menu.component';\nimport type { MenuDirective } from './menu.directive';\n\nexport interface IMenuClickEvent {\n  anchorElement?: Element | EventTarget;\n  menu?: MenuComponent;\n  event?: MouseEvent | KeyboardEvent;\n  parentMenu?: MenuComponent;\n  menuTrigger?: MenuDirective;\n  item: any;\n  activeMenuItemIndex?: number;\n}\nexport interface IMenuContext extends IMenuClickEvent {\n  menuItems: MenuItemDirective[];\n  menuClass: string;\n}\nexport interface CloseLeafMenuEvent {\n  exceptRootMenu?: boolean;\n  event?: MouseEvent | KeyboardEvent;\n}\nexport interface OverlayRefWithMenu extends OverlayRef {\n  menu?: MenuContentComponent;\n}\n\nexport interface CancelMenuEvent {\n  eventType: 'cancel';\n  event?: MouseEvent | KeyboardEvent;\n}\nexport interface ExecuteMenuEvent {\n  eventType: 'execute';\n  event?: MouseEvent | KeyboardEvent;\n  item: any;\n  menuItem: MenuItemDirective;\n}\nexport type CloseMenuEvent = ExecuteMenuEvent | CancelMenuEvent;\n\n@Injectable({ providedIn: 'root' })\nexport class NovoMenuService {\n  public isDestroyingLeafMenu = false;\n\n  public show: Subject<IMenuClickEvent> = new Subject<IMenuClickEvent>();\n  public triggerClose: Subject<MenuContentComponent> = new Subject();\n  public close: Subject<CloseMenuEvent> = new Subject();\n\n  private menuContent: ComponentRef<MenuContentComponent>;\n  private overlays: OverlayRef[] = [];\n  private fakeElement: any = {\n    getBoundingClientRect: (): 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    }),\n  };\n\n  constructor(private overlay: Overlay, private scrollStrategy: ScrollStrategyOptions) {}\n\n  public openMenu(context: IMenuContext) {\n    const { anchorElement, event, parentMenu } = context;\n\n    if (!parentMenu) {\n      const mouseEvent = event as MouseEvent;\n      this.fakeElement.getBoundingClientRect = (): any => ({\n        bottom: mouseEvent.clientY,\n        height: 0,\n        left: mouseEvent.clientX,\n        right: mouseEvent.clientX,\n        top: mouseEvent.clientY,\n        width: 0,\n        x: mouseEvent.clientX,\n        y: mouseEvent.clientY,\n      });\n      this.closeAllMenus({ eventType: 'cancel', event });\n      const positionStrategy = this.overlay\n        .position()\n        .flexibleConnectedTo(new ElementRef(anchorElement || this.fakeElement))\n        .withFlexibleDimensions(false)\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      this.overlays = [\n        this.overlay.create({\n          positionStrategy,\n          panelClass: 'novo-menu',\n          scrollStrategy: this.scrollStrategy.close(),\n        }),\n      ];\n      this.attachMenu(this.overlays[0], context);\n    } else {\n      const positionStrategy = this.overlay\n        .position()\n        .flexibleConnectedTo(new ElementRef(event ? event.target : anchorElement))\n        .withFlexibleDimensions(false)\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: 'end', overlayY: 'top' },\n          { originX: 'start', originY: 'bottom', overlayX: 'end', overlayY: 'bottom' },\n        ]);\n      const newOverlay = this.overlay.create({\n        positionStrategy,\n        panelClass: 'novo-menu',\n        scrollStrategy: this.scrollStrategy.close(),\n      });\n      this.overlays = this.overlays.concat(newOverlay);\n      this.attachMenu(newOverlay, context);\n    }\n  }\n\n  public attachMenu(overlay: OverlayRef, context: IMenuContext): void {\n    const { event, item, menu, menuItems, menuClass, menuTrigger } = context;\n\n    const menuContent: ComponentRef<MenuContentComponent> = overlay.attach(new ComponentPortal(MenuContentComponent));\n    menuContent.instance.event = event;\n    menuContent.instance.item = item;\n    menuContent.instance.menu = menu;\n    menuContent.instance.menuItems = menuItems;\n    menuContent.instance.overlay = overlay;\n    menuContent.instance.isLeaf = true;\n    menuContent.instance.menuClass = menuClass;\n    (overlay as OverlayRefWithMenu).menu = menuContent.instance;\n\n    if (!!menuTrigger) {\n      menuTrigger.menuContent = menuContent.instance;\n    }\n\n    const subscriptions: Subscription = new Subscription();\n    subscriptions.add(\n      menuContent.instance.closeAllMenus\n        .asObservable()\n        .subscribe((closeAllEvent) => this.closeAllMenus({ eventType: 'cancel', ...closeAllEvent })),\n    );\n    subscriptions.add(\n      menuContent.instance.closeLeafMenu.asObservable().subscribe((closeLeafMenuEvent) => this.destroyLeafMenu(closeLeafMenuEvent)),\n    );\n    subscriptions.add(\n      menuContent.instance.openSubMenu.asObservable().subscribe((subMenuEvent: IMenuContext) => {\n        this.destroySubMenus(menuContent.instance);\n        if (!subMenuEvent.menu) {\n          menuContent.instance.isLeaf = true;\n          return;\n        }\n        menuContent.instance.isLeaf = false;\n        this.show.next(subMenuEvent);\n      }),\n    );\n    menuContent.onDestroy(() => {\n      subscriptions.unsubscribe();\n    });\n    menuContent.changeDetectorRef.detectChanges();\n  }\n\n  public closeAllMenus(closeEvent: CloseMenuEvent): 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 hasOpenMenus() {\n    return this.overlays?.length > 0;\n  }\n\n  public getLastAttachedOverlay(): OverlayRefWithMenu {\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.menu.isLeaf = true;\n      }\n\n      this.isDestroyingLeafMenu = false;\n    });\n  }\n\n  public destroySubMenus(menu: MenuContentComponent): void {\n    const overlay = menu.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(menuContent: MenuContentComponent): boolean {\n    const overlay = this.getLastAttachedOverlay();\n    return menuContent.overlay === overlay;\n  }\n}\n","import { InjectionToken } from '@angular/core';\n\nexport const MENU_OPTIONS = new InjectionToken('MENU_OPTIONS');\n\nexport const PARENT_MENU = new InjectionToken('PARENT_MENU');\n","import {\n  ChangeDetectorRef,\n  Component,\n  ContentChildren,\n  ElementRef,\n  EventEmitter,\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';\nimport { NovoOption } from 'novo-elements/elements/common';\nimport { MenuItemDirective } from './menu-item.directive';\nimport { CloseMenuEvent, IMenuClickEvent, NovoMenuService } from './menu.service';\nimport { MENU_OPTIONS, PARENT_MENU } from './menu.tokens';\nimport { ILinkConfig, IMenuOptions } from './menu.types';\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: 'novo-menu',\n    styles: [\n        `\n      .cdk-overlay-container {\n        position: fixed;\n        z-index: z(overlay);\n        pointer-events: none;\n        top: 0;\n        left: 0;\n        width: 100%;\n        height: 100%;\n      }\n      .novo-menu.cdk-overlay-pane {\n        position: absolute;\n        pointer-events: auto;\n        box-sizing: border-box;\n      }\n    `,\n    ],\n    template: '',\n    providers: [{ provide: PARENT_MENU, useExisting: MenuComponent }],\n    standalone: false,\n})\nexport class MenuComponent implements OnDestroy {\n  @Input() public menuClass = '';\n  @Input() public autoFocus = false;\n  @Input() public disabled = false;\n  @Output() public close: EventEmitter<CloseMenuEvent> = new EventEmitter();\n  @Output() public open: EventEmitter<IMenuClickEvent> = new EventEmitter();\n  @ContentChildren(MenuItemDirective) public menuItems: QueryList<MenuItemDirective>;\n  @ContentChildren(NovoOption) public menuOptions: QueryList<NovoOption>;\n  @ViewChild('menu') public menuElement: ElementRef;\n  public visibleMenuItems: MenuItemDirective[] = [];\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 menuService: NovoMenuService,\n    private changeDetector: ChangeDetectorRef,\n    private elementRef: ElementRef,\n    @Optional()\n    @Inject(MENU_OPTIONS)\n    private options: IMenuOptions,\n  ) {\n    if (options) {\n      this.autoFocus = options.autoFocus;\n    }\n    this.subscription.add(\n      menuService.show.subscribe((menuEvent) => {\n        this.onMenuEvent(menuEvent);\n      }),\n    );\n  }\n\n  public ngOnDestroy(): void {\n    this.subscription.unsubscribe();\n  }\n\n  public onMenuEvent(menuEvent: IMenuClickEvent): void {\n    if (this.disabled) {\n      return;\n    }\n    const { menu, event, item } = menuEvent;\n    if (menu && menu !== this) {\n      return;\n    }\n    this.event = event;\n    this.item = item;\n    this.setVisibleMenuItems();\n    this.menuService.openMenu({ ...menuEvent, menuItems: this.visibleMenuItems, menuClass: this.menuClass });\n    this.menuService.close\n      .asObservable()\n      .pipe(first())\n      .subscribe((closeEvent) => this.close.emit(closeEvent));\n    this.open.next(menuEvent);\n  }\n\n  public isMenuItemVisible(menuItem: MenuItemDirective): boolean {\n    return this.evaluateIfFunction(menuItem.menuItemVisible);\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 {\n  ChangeDetectorRef,\n  Directive,\n  ElementRef,\n  HostBinding,\n  HostListener,\n  Inject,\n  Input,\n  OnDestroy,\n  OnInit,\n  Optional,\n} from '@angular/core';\nimport { Subscription } from 'rxjs';\nimport { BooleanInput } from 'novo-elements/utils';\nimport { MenuContentComponent } from './menu-content.component';\nimport { MenuComponent } from './menu.component';\nimport { NovoMenuService } from './menu.service';\nimport { PARENT_MENU } from './menu.tokens';\n\n@Directive({\n    selector: '[menu]',\n    standalone: false,\n})\nexport class MenuDirective implements OnInit, OnDestroy {\n  @Input() public menuContext: any;\n  @Input() public menu: MenuComponent;\n  @Input() public menuContent: MenuContentComponent;\n  @Input() @BooleanInput() public waitWhenOpen: boolean = false;\n  @Input() @BooleanInput() public capture: boolean = false;\n  @Input() @BooleanInput() public anchor: boolean = false;\n  @Input() public trigger: 'click' | 'contextmenu' | 'mouseenter' = 'click';\n\n  isSubMenu: boolean = false;\n  isActive: boolean = false;\n  @HostBinding('class.menu-active')\n  get hb_menuActive() {\n    return this.isActive;\n  }\n\n  subscription: Subscription;\n\n  constructor(\n    private element: ElementRef,\n    private menuService: NovoMenuService,\n    private cdr: ChangeDetectorRef,\n    @Optional() @Inject(PARENT_MENU) private _parentMenu: MenuComponent,\n  ) {\n    if (!!this._parentMenu) {\n      this.isSubMenu = true;\n      this.trigger = 'mouseenter';\n    }\n  }\n\n  ngOnInit() {\n    this.subscription = this.menuService.close.subscribe(() => {\n      this.isActive = false;\n      this.cdr.detectChanges();\n    });\n  }\n\n  ngOnDestroy() {\n    this.isActive = false;\n    this.subscription.unsubscribe();\n  }\n\n  @HostListener('click', ['$event'])\n  @HostListener('contextmenu', ['$event'])\n  @HostListener('mouseenter', ['$event'])\n  public onMenuClick(event: MouseEvent): void {\n    if (this.trigger !== event.type) {\n      return;\n    }\n    if (this.trigger === 'click' && event.button !== 0) {\n      return;\n    } else if (this.trigger === 'contextmenu' && event.button !== 2) {\n      return;\n    } else if (this.waitWhenOpen && this.menuService.hasOpenMenus()) {\n      return;\n    }\n\n    if (!this.menu.disabled) {\n      this.menuService.show.next({\n        menu: this.menu,\n        event,\n        item: this.menuContext,\n        anchorElement: this.anchor ? this.element.nativeElement : null,\n        parentMenu: this._parentMenu,\n        menuTrigger: this,\n      });\n      this.isActive = true;\n      event.preventDefault();\n      event.stopPropagation();\n      this.cdr.detectChanges();\n    }\n  }\n}\n","import { FullscreenOverlayContainer, OverlayContainer, OverlayModule } from '@angular/cdk/overlay';\nimport { CommonModule } from '@angular/common';\nimport { ModuleWithProviders, NgModule } from '@angular/core';\nimport { NovoCommonModule } from 'novo-elements/elements/common';\nimport { NovoIconModule } from 'novo-elements/elements/icon';\nimport { MenuContentComponent } from './menu-content.component';\nimport { MenuItemDirective } from './menu-item.directive';\nimport { MenuComponent } from './menu.component';\nimport { MenuDirective } from './menu.directive';\nimport { NovoMenuService } from './menu.service';\nimport { MENU_OPTIONS } from './menu.tokens';\nimport { IMenuOptions } from './menu.types';\n\n@NgModule({\n  declarations: [MenuDirective, MenuComponent, MenuContentComponent, MenuItemDirective],\n  exports: [MenuDirective, MenuComponent, MenuItemDirective],\n  imports: [CommonModule, OverlayModule, NovoCommonModule, NovoIconModule],\n})\nexport class NovoMenuModule {\n  public static forRoot(options?: IMenuOptions): ModuleWithProviders<NovoMenuModule> {\n    return {\n      ngModule: NovoMenuModule,\n      providers: [\n        NovoMenuService,\n        {\n          provide: 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 * from './menu-content.component';\nexport * from './menu-item.directive';\nexport * from './menu.component';\nexport * from './menu.directive';\nexport { NovoMenuModule } from './menu.module';\nexport * from './menu.service';\nexport * from './menu.tokens';\nexport * from './menu.types';\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":["i1"],"mappings":"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"}