{"version":3,"file":"axulus-uikit-contextmenu.mjs","sources":["../../src/app/components/contextmenu/contextmenu.ts","../../src/app/components/contextmenu/axulus-uikit-contextmenu.ts"],"sourcesContent":["import { CommonModule } from '@angular/common';\nimport {\n  AfterViewInit,\n  ChangeDetectionStrategy,\n  ChangeDetectorRef,\n  Component,\n  ElementRef,\n  EventEmitter,\n  forwardRef,\n  Inject,\n  Input,\n  NgModule,\n  NgZone,\n  OnDestroy,\n  Output,\n  Renderer2,\n  ViewChild,\n  ViewEncapsulation\n} from '@angular/core';\nimport { RouterModule } from '@angular/router';\nimport { ContextMenuService, MenuItem, PrimeNGConfig } from '@axulus/uikit/api';\nimport { DomHandler } from '@axulus/uikit/dom';\nimport { RippleModule } from '@axulus/uikit/ripple';\nimport { TooltipModule } from '@axulus/uikit/tooltip';\nimport { ZIndexUtils } from '@axulus/uikit/utils';\nimport { Subject, Subscription } from 'rxjs';\nimport { takeUntil } from 'rxjs/operators';\n\n@Component({\n  selector: 'p-contextMenuSub',\n  template: `\n    <ul #sublist [ngClass]=\"{ 'p-submenu-list': !root }\">\n      <ng-template ngFor let-child let-index=\"index\" [ngForOf]=\"root ? item : item.items\">\n        <li\n          *ngIf=\"child.separator\"\n          #menuitem\n          class=\"p-menu-separator\"\n          [ngClass]=\"{ 'p-hidden': child.visible === false }\"\n          role=\"separator\"\n        ></li>\n        <li\n          *ngIf=\"!child.separator\"\n          #menuitem\n          [ngClass]=\"{\n            'p-menuitem': true,\n            'p-menuitem-active': isActive(getKey(index)),\n            'p-hidden': child.visible === false\n          }\"\n          [ngStyle]=\"child.style\"\n          [class]=\"child.styleClass\"\n          pTooltip\n          [tooltipOptions]=\"child.tooltipOptions\"\n          (mouseenter)=\"onItemMouseEnter($event, child, getKey(index))\"\n          (mouseleave)=\"onItemMouseLeave($event, child)\"\n          role=\"none\"\n          [attr.data-ik]=\"getKey(index)\"\n        >\n          <a\n            *ngIf=\"!child.routerLink\"\n            [attr.href]=\"child.url ? child.url : null\"\n            [target]=\"child.target\"\n            [attr.title]=\"child.title\"\n            [attr.id]=\"child.id\"\n            [attr.tabindex]=\"child.disabled ? null : '0'\"\n            (click)=\"onItemClick($event, child, menuitem, getKey(index))\"\n            [ngClass]=\"{ 'p-menuitem-link': true, 'p-disabled': child.disabled }\"\n            pRipple\n            [attr.aria-haspopup]=\"item.items != null\"\n            [attr.aria-expanded]=\"isActive(getKey(index))\"\n          >\n            <span class=\"p-menuitem-icon\" *ngIf=\"child.icon\" [ngClass]=\"child.icon\" [ngStyle]=\"child.iconStyle\"></span>\n            <span class=\"p-menuitem-text\" *ngIf=\"child.escape !== false; else htmlLabel\">{{ child.label }}</span>\n            <ng-template #htmlLabel><span class=\"p-menuitem-text\" [innerHTML]=\"child.label\"></span></ng-template>\n            <span class=\"p-menuitem-badge\" *ngIf=\"child.badge\" [ngClass]=\"child.badgeStyleClass\">{{ child.badge }}</span>\n            <span class=\"p-submenu-icon pi pi-angle-right\" *ngIf=\"child.items\"></span>\n          </a>\n          <a\n            *ngIf=\"child.routerLink\"\n            [routerLink]=\"child.routerLink\"\n            [queryParams]=\"child.queryParams\"\n            [routerLinkActive]=\"'p-menuitem-link-active'\"\n            role=\"menuitem\"\n            [routerLinkActiveOptions]=\"child.routerLinkActiveOptions || { exact: false }\"\n            [target]=\"child.target\"\n            [attr.title]=\"child.title\"\n            [attr.id]=\"child.id\"\n            [attr.tabindex]=\"child.disabled ? null : '0'\"\n            (click)=\"onItemClick($event, child, menuitem, getKey(index))\"\n            [ngClass]=\"{ 'p-menuitem-link': true, 'p-disabled': child.disabled }\"\n            pRipple\n            [fragment]=\"child.fragment\"\n            [queryParamsHandling]=\"child.queryParamsHandling\"\n            [preserveFragment]=\"child.preserveFragment\"\n            [skipLocationChange]=\"child.skipLocationChange\"\n            [replaceUrl]=\"child.replaceUrl\"\n            [state]=\"child.state\"\n          >\n            <span class=\"p-menuitem-icon\" *ngIf=\"child.icon\" [ngClass]=\"child.icon\" [ngStyle]=\"child.iconStyle\"></span>\n            <span class=\"p-menuitem-text\" *ngIf=\"child.escape !== false; else htmlRouteLabel\">{{ child.label }}</span>\n            <ng-template #htmlRouteLabel><span class=\"p-menuitem-text\" [innerHTML]=\"child.label\"></span></ng-template>\n            <span class=\"p-menuitem-badge\" *ngIf=\"child.badge\" [ngClass]=\"child.badgeStyleClass\">{{ child.badge }}</span>\n            <span class=\"p-submenu-icon pi pi-angle-right\" *ngIf=\"child.items\"></span>\n          </a>\n          <p-contextMenuSub\n            [parentItemKey]=\"getKey(index)\"\n            [item]=\"child\"\n            *ngIf=\"child.items\"\n            (leafClick)=\"onLeafClick()\"\n          ></p-contextMenuSub>\n        </li>\n      </ng-template>\n    </ul>\n  `,\n  encapsulation: ViewEncapsulation.None,\n  host: {\n    class: 'p-element'\n  }\n})\nexport class ContextMenuSub {\n  @Input() item: MenuItem;\n\n  @Input() root: boolean;\n\n  @Input() parentItemKey: any;\n\n  @Output() leafClick: EventEmitter<any> = new EventEmitter();\n\n  @ViewChild('sublist') sublistViewChild: ElementRef;\n\n  @ViewChild('menuitem') menuitemViewChild: ElementRef;\n\n  contextMenu: ContextMenu;\n\n  activeItemKey: string;\n\n  hideTimeout: any;\n\n  activeItemKeyChangeSubscription: Subscription;\n\n  constructor(@Inject(forwardRef(() => ContextMenu)) contextMenu) {\n    this.contextMenu = contextMenu as ContextMenu;\n  }\n\n  ngOnInit() {\n    this.activeItemKeyChangeSubscription = this.contextMenu.contextMenuService.activeItemKeyChange$\n      .pipe(takeUntil(this.contextMenu.ngDestroy$))\n      .subscribe((activeItemKey) => {\n        this.activeItemKey = activeItemKey;\n\n        if (this.isActive(this.parentItemKey) && DomHandler.hasClass(this.sublistViewChild.nativeElement, 'p-submenu-list-active')) {\n          this.contextMenu.positionSubmenu(this.sublistViewChild.nativeElement);\n        }\n\n        this.contextMenu.cd.markForCheck();\n      });\n  }\n\n  onItemMouseEnter(event, item, key) {\n    if (this.hideTimeout) {\n      clearTimeout(this.hideTimeout);\n      this.hideTimeout = null;\n    }\n\n    if (item.disabled) {\n      this.activeItemKey = null;\n      return;\n    }\n\n    if (item.items) {\n      let childSublist = DomHandler.findSingle(event.currentTarget, '.p-submenu-list');\n      DomHandler.addClass(childSublist, 'p-submenu-list-active');\n    }\n\n    this.contextMenu.contextMenuService.changeKey(key);\n  }\n\n  onItemMouseLeave(event, item) {\n    if (item.disabled) {\n      return;\n    }\n\n    if (this.contextMenu.el.nativeElement.contains(<Node>event.toElement)) {\n      if (item.items) {\n        this.contextMenu.removeActiveFromSubLists(event.currentTarget);\n      }\n\n      if (!this.root) {\n        this.contextMenu.contextMenuService.changeKey(this.parentItemKey);\n      }\n    }\n  }\n\n  onItemClick(event, item, menuitem, key) {\n    if (item.disabled) {\n      event.preventDefault();\n      return;\n    }\n\n    if (!item.url && !item.routerLink) {\n      event.preventDefault();\n    }\n\n    if (item.command) {\n      item.command({\n        originalEvent: event,\n        item: item\n      });\n    }\n\n    if (item.items) {\n      let childSublist = DomHandler.findSingle(menuitem, '.p-submenu-list');\n\n      if (childSublist) {\n        if (this.isActive(key) && DomHandler.hasClass(childSublist, 'p-submenu-list-active')) {\n          this.contextMenu.removeActiveFromSubLists(menuitem);\n        } else {\n          DomHandler.addClass(childSublist, 'p-submenu-list-active');\n        }\n\n        this.contextMenu.contextMenuService.changeKey(key);\n      }\n    }\n\n    if (!item.items) {\n      this.onLeafClick();\n    }\n  }\n\n  onLeafClick() {\n    if (this.root) {\n      this.contextMenu.hide();\n    }\n\n    this.leafClick.emit();\n  }\n\n  getKey(index) {\n    return this.root ? String(index) : this.parentItemKey + '_' + index;\n  }\n\n  isActive(key) {\n    return this.activeItemKey && (this.activeItemKey.startsWith(key + '_') || this.activeItemKey === key);\n  }\n}\n\n@Component({\n  selector: 'p-contextMenu',\n  template: `\n    <div #container [ngClass]=\"'p-contextmenu p-component'\" [class]=\"styleClass\" [ngStyle]=\"style\">\n      <p-contextMenuSub [item]=\"model\" [root]=\"true\"></p-contextMenuSub>\n    </div>\n  `,\n  changeDetection: ChangeDetectionStrategy.OnPush,\n  encapsulation: ViewEncapsulation.None,\n  styleUrls: ['./contextmenu.css'],\n  host: {\n    class: 'p-element'\n  }\n})\nexport class ContextMenu implements AfterViewInit, OnDestroy {\n  @Input() model: MenuItem[];\n\n  @Input() global: boolean;\n\n  @Input() target: any;\n\n  @Input() style: any;\n\n  @Input() styleClass: string;\n\n  @Input() appendTo: any;\n\n  @Input() autoZIndex: boolean = true;\n\n  @Input() baseZIndex: number = 0;\n\n  @Input() triggerEvent: string = 'contextmenu';\n\n  @Output() onShow: EventEmitter<any> = new EventEmitter();\n\n  @Output() onHide: EventEmitter<any> = new EventEmitter();\n\n  @ViewChild('container') containerViewChild: ElementRef;\n\n  documentClickListener: any;\n\n  documentTriggerListener: any;\n\n  documentKeydownListener: any;\n\n  windowResizeListener: any;\n\n  triggerEventListener: any;\n\n  ngDestroy$ = new Subject();\n\n  preventDocumentDefault: boolean = false;\n\n  constructor(\n    public el: ElementRef,\n    public renderer: Renderer2,\n    public cd: ChangeDetectorRef,\n    public zone: NgZone,\n    public contextMenuService: ContextMenuService,\n    private config: PrimeNGConfig\n  ) {}\n\n  ngAfterViewInit() {\n    if (this.global) {\n      const documentTarget: any = this.el ? this.el.nativeElement.ownerDocument : 'document';\n\n      this.triggerEventListener = this.renderer.listen(documentTarget, this.triggerEvent, (event) => {\n        this.show(event);\n        event.preventDefault();\n      });\n    } else if (this.target) {\n      this.triggerEventListener = this.renderer.listen(this.target, this.triggerEvent, (event) => {\n        this.show(event);\n        event.preventDefault();\n      });\n    }\n\n    if (this.appendTo) {\n      if (this.appendTo === 'body') document.body.appendChild(this.containerViewChild.nativeElement);\n      else DomHandler.appendChild(this.containerViewChild.nativeElement, this.appendTo);\n    }\n  }\n\n  show(event?: MouseEvent) {\n    this.clearActiveItem();\n    this.position(event);\n    this.moveOnTop();\n    this.containerViewChild.nativeElement.style.display = 'block';\n    this.preventDocumentDefault = true;\n    DomHandler.fadeIn(this.containerViewChild.nativeElement, 250);\n    this.bindGlobalListeners();\n\n    if (event) {\n      event.preventDefault();\n    }\n\n    this.onShow.emit();\n  }\n\n  hide() {\n    this.containerViewChild.nativeElement.style.display = 'none';\n\n    if (this.autoZIndex) {\n      ZIndexUtils.clear(this.containerViewChild.nativeElement);\n    }\n\n    this.clearActiveItem();\n    this.unbindGlobalListeners();\n    this.onHide.emit();\n  }\n\n  moveOnTop() {\n    if (this.autoZIndex && this.containerViewChild && this.containerViewChild.nativeElement.style.display !== 'block') {\n      ZIndexUtils.set('menu', this.containerViewChild.nativeElement, this.baseZIndex + this.config.zIndex.menu);\n    }\n  }\n\n  toggle(event?: MouseEvent) {\n    if (this.containerViewChild.nativeElement.offsetParent) this.hide();\n    else this.show(event);\n  }\n\n  position(event?: MouseEvent) {\n    if (event) {\n      let left = event.pageX + 1;\n      let top = event.pageY + 1;\n      let width = this.containerViewChild.nativeElement.offsetParent\n        ? this.containerViewChild.nativeElement.offsetWidth\n        : DomHandler.getHiddenElementOuterWidth(this.containerViewChild.nativeElement);\n      let height = this.containerViewChild.nativeElement.offsetParent\n        ? this.containerViewChild.nativeElement.offsetHeight\n        : DomHandler.getHiddenElementOuterHeight(this.containerViewChild.nativeElement);\n      let viewport = DomHandler.getViewport();\n\n      //flip\n      if (left + width - document.scrollingElement.scrollLeft > viewport.width) {\n        left -= width;\n      }\n\n      //flip\n      if (top + height - document.scrollingElement.scrollTop > viewport.height) {\n        top -= height;\n      }\n\n      //fit\n      if (left < document.scrollingElement.scrollLeft) {\n        left = document.scrollingElement.scrollLeft;\n      }\n\n      //fit\n      if (top < document.scrollingElement.scrollTop) {\n        top = document.scrollingElement.scrollTop;\n      }\n\n      this.containerViewChild.nativeElement.style.left = left + 'px';\n      this.containerViewChild.nativeElement.style.top = top + 'px';\n    }\n  }\n\n  positionSubmenu(sublist) {\n    let parentMenuItem = sublist.parentElement.parentElement;\n    let viewport = DomHandler.getViewport();\n    let sublistWidth = sublist.offsetParent ? sublist.offsetWidth : DomHandler.getHiddenElementOuterWidth(sublist);\n    let sublistHeight = sublist.offsetHeight ? sublist.offsetHeight : DomHandler.getHiddenElementOuterHeight(sublist);\n    let itemOuterWidth = DomHandler.getOuterWidth(parentMenuItem.children[0]);\n    let itemOuterHeight = DomHandler.getOuterHeight(parentMenuItem.children[0]);\n    let containerOffset = DomHandler.getOffset(parentMenuItem.parentElement);\n\n    sublist.style.zIndex = ++DomHandler.zindex;\n\n    if (parseInt(containerOffset.top) + itemOuterHeight + sublistHeight > viewport.height - DomHandler.calculateScrollbarHeight()) {\n      sublist.style.removeProperty('top');\n      sublist.style.bottom = '0px';\n    } else {\n      sublist.style.removeProperty('bottom');\n      sublist.style.top = '0px';\n    }\n\n    if (parseInt(containerOffset.left) + itemOuterWidth + sublistWidth > viewport.width - DomHandler.calculateScrollbarWidth()) {\n      sublist.style.left = -sublistWidth + 'px';\n    } else {\n      sublist.style.left = itemOuterWidth + 'px';\n    }\n  }\n\n  isItemMatched(menuitem) {\n    return DomHandler.hasClass(menuitem, 'p-menuitem') && !DomHandler.hasClass(menuitem.children[0], 'p-disabled');\n  }\n\n  findNextItem(menuitem, isRepeated?) {\n    let nextMenuitem = menuitem.nextElementSibling;\n\n    if (nextMenuitem) {\n      return this.isItemMatched(nextMenuitem) ? nextMenuitem : this.findNextItem(nextMenuitem, isRepeated);\n    } else {\n      let firstItem = menuitem.parentElement.children[0];\n\n      return this.isItemMatched(firstItem) ? firstItem : !isRepeated ? this.findNextItem(firstItem, true) : null;\n    }\n  }\n\n  findPrevItem(menuitem, isRepeated?) {\n    let prevMenuitem = menuitem.previousElementSibling;\n\n    if (prevMenuitem) {\n      return this.isItemMatched(prevMenuitem) ? prevMenuitem : this.findPrevItem(prevMenuitem, isRepeated);\n    } else {\n      let lastItem = menuitem.parentElement.children[menuitem.parentElement.children.length - 1];\n\n      return this.isItemMatched(lastItem) ? lastItem : !isRepeated ? this.findPrevItem(lastItem, true) : null;\n    }\n  }\n\n  getActiveItem() {\n    let activeItemKey = this.contextMenuService.activeItemKey;\n\n    return activeItemKey == null\n      ? null\n      : DomHandler.findSingle(this.containerViewChild.nativeElement, '.p-menuitem[data-ik=\"' + activeItemKey + '\"]');\n  }\n\n  clearActiveItem() {\n    if (this.contextMenuService.activeItemKey) {\n      this.removeActiveFromSubLists(this.containerViewChild.nativeElement);\n      this.contextMenuService.reset();\n    }\n  }\n\n  removeActiveFromSubLists(el) {\n    let sublists = DomHandler.find(el, '.p-submenu-list-active');\n\n    for (let sublist of sublists) {\n      DomHandler.removeClass(sublist, 'p-submenu-list-active');\n    }\n  }\n\n  removeActiveFromSublist(menuitem) {\n    if (menuitem) {\n      let sublist = DomHandler.findSingle(menuitem, '.p-submenu-list');\n\n      if (sublist && DomHandler.hasClass(menuitem, 'p-submenu-list-active')) {\n        DomHandler.removeClass(menuitem, 'p-submenu-list-active');\n      }\n    }\n  }\n\n  bindGlobalListeners() {\n    if (!this.documentClickListener) {\n      const documentTarget: any = this.el ? this.el.nativeElement.ownerDocument : 'document';\n\n      this.documentClickListener = this.renderer.listen(documentTarget, 'click', (event) => {\n        if (this.containerViewChild.nativeElement.offsetParent && this.isOutsideClicked(event) && !event.ctrlKey && event.button !== 2) {\n          this.hide();\n        }\n      });\n\n      this.documentTriggerListener = this.renderer.listen(documentTarget, this.triggerEvent, (event) => {\n        if (this.containerViewChild.nativeElement.offsetParent && this.isOutsideClicked(event) && !this.preventDocumentDefault) {\n          this.hide();\n        }\n        this.preventDocumentDefault = false;\n      });\n    }\n\n    this.zone.runOutsideAngular(() => {\n      if (!this.windowResizeListener) {\n        this.windowResizeListener = this.onWindowResize.bind(this);\n        window.addEventListener('resize', this.windowResizeListener);\n      }\n    });\n\n    if (!this.documentKeydownListener) {\n      const documentTarget: any = this.el ? this.el.nativeElement.ownerDocument : 'document';\n\n      this.documentKeydownListener = this.renderer.listen(documentTarget, 'keydown', (event) => {\n        let activeItem = this.getActiveItem();\n\n        switch (event.key) {\n          case 'ArrowDown':\n            if (activeItem) {\n              this.removeActiveFromSublist(activeItem);\n              activeItem = this.findNextItem(activeItem);\n            } else {\n              let firstItem = DomHandler.findSingle(this.containerViewChild.nativeElement, '.p-menuitem-link').parentElement;\n              activeItem = this.isItemMatched(firstItem) ? firstItem : this.findNextItem(firstItem);\n            }\n\n            if (activeItem) {\n              this.contextMenuService.changeKey(activeItem.getAttribute('data-ik'));\n            }\n\n            event.preventDefault();\n            break;\n\n          case 'ArrowUp':\n            if (activeItem) {\n              this.removeActiveFromSublist(activeItem);\n              activeItem = this.findPrevItem(activeItem);\n            } else {\n              let sublist = DomHandler.findSingle(this.containerViewChild.nativeElement, 'ul');\n              let lastItem = sublist.children[sublist.children.length - 1];\n              activeItem = this.isItemMatched(lastItem) ? lastItem : this.findPrevItem(lastItem);\n            }\n\n            if (activeItem) {\n              this.contextMenuService.changeKey(activeItem.getAttribute('data-ik'));\n            }\n\n            event.preventDefault();\n            break;\n\n          case 'ArrowRight':\n            if (activeItem) {\n              let sublist = DomHandler.findSingle(activeItem, '.p-submenu-list');\n\n              if (sublist) {\n                DomHandler.addClass(sublist, 'p-submenu-list-active');\n\n                activeItem = DomHandler.findSingle(sublist, '.p-menuitem-link:not(.p-disabled)').parentElement;\n\n                if (activeItem) {\n                  this.contextMenuService.changeKey(activeItem.getAttribute('data-ik'));\n                }\n              }\n            }\n\n            event.preventDefault();\n            break;\n\n          case 'ArrowLeft':\n            if (activeItem) {\n              let sublist = activeItem.parentElement;\n\n              if (sublist && DomHandler.hasClass(sublist, 'p-submenu-list-active')) {\n                DomHandler.removeClass(sublist, 'p-submenu-list-active');\n\n                activeItem = sublist.parentElement.parentElement;\n\n                if (activeItem) {\n                  this.contextMenuService.changeKey(activeItem.getAttribute('data-ik'));\n                }\n              }\n            }\n\n            event.preventDefault();\n            break;\n\n          case 'Escape':\n            this.hide();\n            event.preventDefault();\n\n            break;\n\n          case 'Enter':\n            if (activeItem) {\n              this.handleItemClick(event, this.findModelItemFromKey(this.contextMenuService.activeItemKey), activeItem);\n            }\n\n            event.preventDefault();\n            break;\n\n          default:\n            break;\n        }\n      });\n    }\n  }\n\n  findModelItemFromKey(key) {\n    if (key == null || !this.model) {\n      return null;\n    }\n\n    let indexes = key.split('_');\n    return indexes.reduce((item, currentIndex) => {\n      return item ? item.items[currentIndex] : this.model[currentIndex];\n    }, null);\n  }\n\n  handleItemClick(event, item, menuitem) {\n    if (!item || item.disabled) {\n      return;\n    }\n\n    if (item.command) {\n      item.command({\n        originalEvent: event,\n        item: item\n      });\n    }\n\n    if (item.items) {\n      let childSublist = DomHandler.findSingle(menuitem, '.p-submenu-list');\n\n      if (childSublist) {\n        if (DomHandler.hasClass(childSublist, 'p-submenu-list-active')) {\n          this.removeActiveFromSubLists(menuitem);\n        } else {\n          DomHandler.addClass(childSublist, 'p-submenu-list-active');\n          this.positionSubmenu(childSublist);\n        }\n      }\n    }\n\n    if (!item.items) {\n      this.hide();\n    }\n  }\n\n  unbindGlobalListeners() {\n    if (this.documentClickListener) {\n      this.documentClickListener();\n      this.documentClickListener = null;\n    }\n\n    if (this.documentTriggerListener) {\n      this.documentTriggerListener();\n      this.documentTriggerListener = null;\n    }\n\n    if (this.windowResizeListener) {\n      window.removeEventListener('resize', this.windowResizeListener);\n      this.windowResizeListener = null;\n    }\n\n    if (this.documentKeydownListener) {\n      this.documentKeydownListener();\n      this.documentKeydownListener = null;\n    }\n  }\n\n  onWindowResize(event) {\n    if (this.containerViewChild.nativeElement.offsetParent) {\n      this.hide();\n    }\n  }\n\n  isOutsideClicked(event: Event) {\n    return !(\n      this.containerViewChild.nativeElement.isSameNode(event.target) || this.containerViewChild.nativeElement.contains(event.target)\n    );\n  }\n\n  ngOnDestroy() {\n    this.unbindGlobalListeners();\n\n    if (this.triggerEventListener) {\n      this.triggerEventListener();\n    }\n\n    if (this.containerViewChild && this.autoZIndex) {\n      ZIndexUtils.clear(this.containerViewChild.nativeElement);\n    }\n\n    if (this.appendTo) {\n      this.el.nativeElement.appendChild(this.containerViewChild.nativeElement);\n    }\n\n    this.ngDestroy$.next(true);\n    this.ngDestroy$.complete();\n  }\n}\n\n@NgModule({\n  imports: [CommonModule, RouterModule, RippleModule, TooltipModule],\n  exports: [ContextMenu, ContextMenuSub],\n  declarations: [ContextMenu, ContextMenuSub],\n  providers: [ContextMenuService]\n})\nexport class ContextMenuModule {}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public_api';\n"],"names":[],"mappings":"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"}