@ctrl/ngx-rightclick 1.1.3 → 3.0.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/LICENSE +1 -1
- package/README.md +5 -16
- package/bundles/ctrl-ngx-rightclick.umd.js +622 -658
- package/bundles/ctrl-ngx-rightclick.umd.js.map +1 -1
- package/bundles/ctrl-ngx-rightclick.umd.min.js +15 -1
- package/bundles/ctrl-ngx-rightclick.umd.min.js.map +1 -1
- package/context-menu-injector.d.ts +4 -4
- package/context-menu-trigger.directive.d.ts +1 -0
- package/context-menu.service.d.ts +2 -2
- package/context-submenu-trigger.directive.d.ts +3 -3
- package/ctrl-ngx-rightclick.metadata.json +1 -1
- package/esm2015/context-menu-injector.js +7 -52
- package/esm2015/context-menu-trigger.directive.js +52 -77
- package/esm2015/context-menu.module.js +16 -18
- package/esm2015/context-menu.service.js +19 -121
- package/esm2015/context-submenu-trigger.directive.js +38 -67
- package/esm2015/ctrl-ngx-rightclick.js +2 -6
- package/esm2015/menu.component.js +26 -64
- package/esm2015/public_api.js +7 -11
- package/esm5/context-menu-injector.js +8 -51
- package/esm5/context-menu-trigger.directive.js +54 -94
- package/esm5/context-menu.module.js +13 -16
- package/esm5/context-menu.service.js +20 -164
- package/esm5/context-submenu-trigger.directive.js +39 -88
- package/esm5/ctrl-ngx-rightclick.js +2 -6
- package/esm5/menu.component.js +26 -77
- package/esm5/public_api.js +7 -11
- package/fesm2015/ctrl-ngx-rightclick.js +143 -246
- package/fesm2015/ctrl-ngx-rightclick.js.map +1 -1
- package/fesm5/ctrl-ngx-rightclick.js +149 -336
- package/fesm5/ctrl-ngx-rightclick.js.map +1 -1
- package/menu.component.d.ts +1 -1
- package/package.json +5 -9
@@ -1 +1 @@
|
|
1
|
-
{"version":3,"file":"ctrl-ngx-rightclick.js.map","sources":["ng://@ctrl/ngx-rightclick/context-menu-injector.ts","ng://@ctrl/ngx-rightclick/context-menu.service.ts","ng://@ctrl/ngx-rightclick/context-menu-trigger.directive.ts","ng://@ctrl/ngx-rightclick/context-submenu-trigger.directive.ts","ng://@ctrl/ngx-rightclick/menu.component.ts","ng://@ctrl/ngx-rightclick/context-menu.module.ts"],"sourcesContent":["import { Injector, Type, InjectionToken, InjectFlags } from '@angular/core';\n\nimport { ActiveContextMenuSub } from './context-menu.service';\n\nexport class MenuPackage {\n constructor(public menu: ActiveContextMenuSub, public context: any) {}\n}\n\nexport class MenuInjector implements Injector {\n _menuContext: MenuPackage;\n constructor(\n private _activeContextMenu: ActiveContextMenuSub,\n private _parentInjector: Injector,\n private context: any,\n ) {\n this._menuContext = new MenuPackage(_activeContextMenu, context);\n }\n\n get<T>(token: any, notFoundValue?: T, flags?: InjectFlags): T | MenuPackage {\n if (token === MenuPackage) {\n return this._menuContext;\n }\n return this._parentInjector.get<T>(token, notFoundValue, flags);\n }\n}\n","import {\n Overlay,\n OverlayRef,\n ScrollStrategyOptions,\n} from '@angular/cdk/overlay';\nimport { ComponentPortal } from '@angular/cdk/portal';\nimport { ElementRef, Injectable, Injector, EventEmitter } from '@angular/core';\n\nimport { BehaviorSubject } from 'rxjs';\nimport { filter, take } from 'rxjs/operators';\n\nimport { MenuInjector } from './context-menu-injector';\n\nexport interface ActiveContextMenuSub {\n id: number;\n isTriggerHovered: BehaviorSubject<boolean>;\n isMenuHovered: BehaviorSubject<boolean>;\n submenu: boolean;\n}\nexport interface ActiveContextMenu extends ActiveContextMenuSub {\n overlayRef: OverlayRef;\n component: any;\n menuClose: EventEmitter<void>;\n menuAction: EventEmitter<any>;\n}\n\n@Injectable({ providedIn: 'root' })\nexport class ContextMenuService {\n menus: ActiveContextMenu[] = [];\n id = 0;\n\n constructor(\n private overlay: Overlay,\n private scrollStrategy: ScrollStrategyOptions,\n private _injector: Injector,\n ) {}\n\n /**\n *\n * @param $event triggering event\n * @param menuComponent the component to be shown\n * @param submenu is a menu within a menu\n * @param level if submenu, what level\n */\n show(\n $event: MouseEvent,\n menuComponent,\n context: any,\n menuClose: EventEmitter<any>,\n menuAction: EventEmitter<any>,\n submenu = false,\n level?: number,\n ): ActiveContextMenu {\n let target: any;\n if (!submenu) {\n this.closeAll();\n target = {\n getBoundingClientRect: (): ClientRect => ({\n bottom: $event.clientY,\n height: 0,\n left: $event.clientX,\n right: $event.clientX,\n top: $event.clientY,\n width: 0,\n }),\n };\n } else {\n // close other submenus\n this.closeAll(undefined, level);\n target = $event.target;\n }\n const el = new ElementRef(target);\n const positionStrategy = this.overlay\n .position()\n .flexibleConnectedTo(el)\n .withFlexibleDimensions(false);\n\n if (!submenu) {\n positionStrategy.withPositions([\n {\n originX: 'start',\n originY: 'bottom',\n overlayX: 'start',\n overlayY: 'top',\n },\n {\n originX: 'start',\n originY: 'top',\n overlayX: 'start',\n overlayY: 'bottom',\n },\n {\n originX: 'end',\n originY: 'top',\n overlayX: 'start',\n overlayY: 'top',\n },\n {\n originX: 'start',\n originY: 'top',\n overlayX: 'end',\n overlayY: 'top',\n },\n {\n originX: 'end',\n originY: 'center',\n overlayX: 'start',\n overlayY: 'center',\n },\n {\n originX: 'start',\n originY: 'center',\n overlayX: 'end',\n overlayY: 'center',\n },\n ]);\n } else {\n positionStrategy.withPositions([\n {\n originX: 'end',\n originY: 'top',\n overlayX: 'start',\n overlayY: 'top',\n },\n {\n originX: 'start',\n originY: 'top',\n overlayX: 'end',\n overlayY: 'top',\n },\n {\n originX: 'end',\n originY: 'bottom',\n overlayX: 'start',\n overlayY: 'bottom',\n },\n {\n originX: 'start',\n originY: 'bottom',\n overlayX: 'end',\n overlayY: 'bottom',\n },\n ]);\n }\n const t: ActiveContextMenuSub = {\n submenu,\n id: this.id++,\n isMenuHovered: new BehaviorSubject(false),\n isTriggerHovered: new BehaviorSubject(false),\n };\n const menuInjector = new MenuInjector(t, this._injector, context);\n const componentPortal = new ComponentPortal(\n menuComponent,\n undefined,\n menuInjector,\n );\n const overlayRef = this.overlay.create({\n positionStrategy,\n panelClass: 'ngx-contextmenu',\n scrollStrategy: this.scrollStrategy.close(),\n });\n const component = overlayRef.attach<any>(componentPortal);\n const res = { overlayRef, component, ...t, menuClose, menuAction };\n this.menus.push(res);\n return res;\n }\n getCurrentLevel() {\n return this.menus.length;\n }\n closeAll(context?: any, idx = 0) {\n for (let index = idx; index < this.menus.length; index++) {\n const menu = this.menus[index];\n this.destroyMenu(menu, context);\n }\n this.menus.splice(idx, this.menus.length);\n }\n destroyMenu(menu: ActiveContextMenu, context?: any) {\n menu.component.instance._state = 'exit';\n if (menu.component.instance.lazy) {\n menu.component.instance._animationDone\n .pipe(\n filter((event: any) => event.toState === 'exit'),\n take(1),\n )\n .subscribe(() => {\n menu.overlayRef.detach();\n menu.overlayRef.dispose();\n });\n } else {\n menu.overlayRef.detach();\n menu.overlayRef.dispose();\n }\n if (context) {\n menu.menuAction.next(context);\n }\n menu.menuClose.next();\n }\n close(menu: ActiveContextMenu, menuIndex: number, context?: any) {\n this.destroyMenu(menu, context);\n this.menus.splice(menuIndex, 1);\n }\n checkOutsideClick($event: MouseEvent) {\n for (const m of this.menus) {\n const clickedInside = m.component.location.nativeElement.contains(\n $event.target,\n );\n if (clickedInside) {\n $event.preventDefault();\n $event.stopPropagation();\n return;\n }\n }\n this.closeAll();\n }\n closeSubMenu(id: number): void {\n const menuIndex = this.menus.findIndex(n => n.id === id);\n if (menuIndex === -1 || menuIndex !== this.menus.length - 1) {\n return;\n }\n // make sure we can close the current menu\n const menu = this.menus[menuIndex];\n if (menu.isMenuHovered.getValue() || menu.isTriggerHovered.getValue()) {\n return;\n }\n // close all menus up if possible\n for (let index = this.menus.length - 1; index >= 1; index--) {\n const m = this.menus[index];\n if (!m.isMenuHovered.getValue() && !m.isTriggerHovered.getValue()) {\n this.close(m, index);\n } else {\n return;\n }\n }\n }\n}\n","import {\n Directive,\n HostListener,\n Input,\n Output,\n EventEmitter,\n OnDestroy,\n OnInit,\n} from '@angular/core';\n\nimport { Subscription } from 'rxjs';\n\nimport { ContextMenuService, ActiveContextMenu } from './context-menu.service';\n\n@Directive({\n selector: '[contextMenuTrigger]',\n exportAs: 'contextMenuTrigger',\n})\nexport class ContextMenuTriggerDirective implements OnDestroy, OnInit {\n @Input() contextMenuTrigger: any;\n @Input() menuContext: any;\n @Input() holdToDisplay = 1000;\n @Output() menuAction = new EventEmitter<any>();\n @Output() menuClose = new EventEmitter<void>();\n menu: ActiveContextMenu;\n visible = false;\n private mouseDownTimeoutId: any;\n private sub: Subscription;\n\n @HostListener('contextmenu', ['$event'])\n handleMenu($event: MouseEvent) {\n $event.preventDefault();\n this.menu = this.contextMenuService.show(\n $event,\n this.contextMenuTrigger,\n this.menuContext,\n this.menuClose,\n this.menuAction,\n );\n this.visible = true;\n }\n\n @HostListener('touchstart', ['$event'])\n handleMouseDown($event: any) {\n if (this.holdToDisplay >= 0) {\n $event.stopPropagation();\n $event.clientY = $event.touches[0].clientY;\n $event.clientX = $event.touches[0].clientX;\n\n this.mouseDownTimeoutId = setTimeout(\n () => this.handleMenu($event),\n this.holdToDisplay,\n );\n }\n }\n\n @HostListener('touchend')\n handleMouseUp() {\n clearTimeout(this.mouseDownTimeoutId);\n }\n\n constructor(private contextMenuService: ContextMenuService) {}\n\n ngOnInit() {\n this.sub = this.menuClose.subscribe(() => this.visible = false);\n }\n ngOnDestroy() {\n this.sub.unsubscribe();\n }\n}\n","import {\n Directive,\n HostListener,\n Input,\n OnDestroy,\n Output,\n EventEmitter,\n} from '@angular/core';\n\nimport {\n ActiveContextMenu,\n ContextMenuService,\n} from './context-menu.service';\n\n@Directive({ selector: '[contextSubmenuTrigger]' })\nexport class ContextSubmenuTriggerDirective implements OnDestroy {\n @Input() hoverDelay = 500;\n @Input() openDelay = 200;\n @Input() contextSubmenuTrigger: any;\n @Input() menuContext: any;\n @Output() menuAction = new EventEmitter<any>();\n @Output() menuClose = new EventEmitter<void>();\n menu: ActiveContextMenu;\n opentimer: any;\n closetimer: any;\n visible = false;\n level = 1;\n\n @HostListener('click', ['$event', 'true'])\n handleSubMenuClick($event: MouseEvent) {\n event.preventDefault();\n event.stopPropagation();\n clearTimeout(this.opentimer);\n clearTimeout(this.closetimer);\n this.menu = this.contextMenuService.show(\n $event,\n this.contextSubmenuTrigger,\n this.menuContext,\n this.menuClose,\n this.menuAction,\n true,\n this.level,\n );\n this.visible = true;\n }\n\n @HostListener('mouseover', ['$event'])\n handleSubMenuEnter($event: MouseEvent) {\n if (this.menu) {\n this.menu.isTriggerHovered.next(true);\n }\n clearTimeout(this.closetimer);\n this.opentimer = setTimeout(() => {\n this.menu = this.contextMenuService.show(\n $event,\n this.contextSubmenuTrigger,\n this.menuContext,\n this.menuClose,\n this.menuAction,\n true,\n this.level,\n );\n this.visible = true;\n this.opentimer = null;\n }, this.openDelay);\n }\n\n /**\n * submenu hides after cursor has exited for a period of time\n */\n @HostListener('mouseout', ['$event'])\n handleSubMenuExit() {\n clearTimeout(this.opentimer);\n if (this.menu) {\n this.menu.isTriggerHovered.next(false);\n }\n this.closetimer = setTimeout(() => {\n if (this.menu) {\n this.menu.isTriggerHovered.next(false);\n this.contextMenuService.closeSubMenu(this.menu.id);\n this.menu = undefined;\n }\n this.visible = false;\n }, this.hoverDelay);\n }\n\n constructor(private contextMenuService: ContextMenuService) {\n // get current level\n setTimeout(() => (this.level = this.contextMenuService.getCurrentLevel()));\n }\n\n /**\n * if overwritten make sure to clear timeouts\n */\n ngOnDestroy() {\n clearTimeout(this.opentimer);\n clearTimeout(this.closetimer);\n }\n}\n","import { Component, HostListener } from '@angular/core';\nimport { AnimationEvent } from '@angular/animations';\n\nimport { ContextMenuService } from './context-menu.service';\nimport { MenuPackage } from './context-menu-injector';\nimport { Subject } from 'rxjs';\n\n@Component({\n selector: 'app-menu',\n template: ``,\n})\nexport class MenuComponent {\n /** State of the dialog animation. */\n _state: 'void' | 'enter' | 'exit' = 'enter';\n _animationDone = new Subject<AnimationEvent>();\n /** set lazy to False if you do not have animations */\n lazy = true;\n closetimer: any;\n\n @HostListener('mouseover')\n handleMouseover() {\n if (!this.menuPackage.menu.submenu) {\n return;\n }\n this.menuPackage.menu.isMenuHovered.next(true);\n clearTimeout(this.closetimer);\n }\n\n @HostListener('mouseleave')\n handleMouseleave() {\n if (!this.menuPackage.menu.submenu) {\n return;\n }\n this.menuPackage.menu.isMenuHovered.next(false);\n this.closetimer = setTimeout(() => {\n this.contextMenuService.closeSubMenu(this.menuPackage.menu.id);\n }, 500);\n }\n\n @HostListener('document:click', ['$event'])\n handleWindowClick($event: MouseEvent) {\n this.contextMenuService.checkOutsideClick($event);\n }\n\n constructor(\n public menuPackage: MenuPackage,\n public contextMenuService: ContextMenuService,\n ) {}\n\n /** Callback that is invoked when the menu animation completes. */\n _onAnimationDone(event: AnimationEvent) {\n this._animationDone.next(event);\n }\n}\n","import { NgModule } from '@angular/core';\nimport { OverlayModule } from '@angular/cdk/overlay';\nimport { PortalModule } from '@angular/cdk/portal';\n\nimport { ContextMenuTriggerDirective } from './context-menu-trigger.directive';\nimport { ContextSubmenuTriggerDirective } from './context-submenu-trigger.directive';\nimport { MenuComponent } from './menu.component';\n\n@NgModule({\n declarations: [\n ContextMenuTriggerDirective,\n ContextSubmenuTriggerDirective,\n MenuComponent,\n ],\n exports: [ContextMenuTriggerDirective, ContextSubmenuTriggerDirective],\n imports: [PortalModule, OverlayModule],\n})\nexport class ContextMenuModule {}\n"],"names":[],"mappings":";;;;;;;;;;AAIA,MAAa,WAAW;;;;;IACtB,YAAmB,IAA0B,EAAS,OAAY;QAA/C,SAAI,GAAJ,IAAI,CAAsB;QAAS,YAAO,GAAP,OAAO,CAAK;KAAI;CACvE;MAEY,YAAY;;;;;;IAEvB,YACU,kBAAwC,EACxC,eAAyB,EACzB,OAAY;QAFZ,uBAAkB,GAAlB,kBAAkB,CAAsB;QACxC,oBAAe,GAAf,eAAe,CAAU;QACzB,YAAO,GAAP,OAAO,CAAK;QAEpB,IAAI,CAAC,YAAY,GAAG,IAAI,WAAW,CAAC,kBAAkB,EAAE,OAAO,CAAC,CAAC;KAClE;;;;;;;;IAED,GAAG,CAAI,KAAU,EAAE,aAAiB,EAAE,KAAmB;QACvD,IAAI,KAAK,KAAK,WAAW,EAAE;YACzB,OAAO,IAAI,CAAC,YAAY,CAAC;SAC1B;QACD,OAAO,IAAI,CAAC,eAAe,CAAC,GAAG,CAAI,KAAK,EAAE,aAAa,EAAE,KAAK,CAAC,CAAC;KACjE;CACF;;;;;;ACxBD,MA2Ba,kBAAkB;;;;;;IAI7B,YACU,OAAgB,EAChB,cAAqC,EACrC,SAAmB;QAFnB,YAAO,GAAP,OAAO,CAAS;QAChB,mBAAc,GAAd,cAAc,CAAuB;QACrC,cAAS,GAAT,SAAS,CAAU;QAN7B,UAAK,GAAwB,EAAE,CAAC;QAChC,OAAE,GAAG,CAAC,CAAC;KAMH;;;;;;;;;;;;IASJ,IAAI,CACF,MAAkB,EAClB,aAAa,EACb,OAAY,EACZ,SAA4B,EAC5B,UAA6B,EAC7B,OAAO,GAAG,KAAK,EACf,KAAc;;YAEV,MAAW;QACf,IAAI,CAAC,OAAO,EAAE;YACZ,IAAI,CAAC,QAAQ,EAAE,CAAC;YAChB,MAAM,GAAG;gBACP,qBAAqB,EAAE,OAAmB;oBACxC,MAAM,EAAE,MAAM,CAAC,OAAO;oBACtB,MAAM,EAAE,CAAC;oBACT,IAAI,EAAE,MAAM,CAAC,OAAO;oBACpB,KAAK,EAAE,MAAM,CAAC,OAAO;oBACrB,GAAG,EAAE,MAAM,CAAC,OAAO;oBACnB,KAAK,EAAE,CAAC;iBACT,CAAC;aACH,CAAC;SACH;aAAM;;YAEL,IAAI,CAAC,QAAQ,CAAC,SAAS,EAAE,KAAK,CAAC,CAAC;YAChC,MAAM,GAAG,MAAM,CAAC,MAAM,CAAC;SACxB;;cACK,EAAE,GAAG,IAAI,UAAU,CAAC,MAAM,CAAC;;cAC3B,gBAAgB,GAAG,IAAI,CAAC,OAAO;aAClC,QAAQ,EAAE;aACV,mBAAmB,CAAC,EAAE,CAAC;aACvB,sBAAsB,CAAC,KAAK,CAAC;QAEhC,IAAI,CAAC,OAAO,EAAE;YACZ,gBAAgB,CAAC,aAAa,CAAC;gBAC7B;oBACE,OAAO,EAAE,OAAO;oBAChB,OAAO,EAAE,QAAQ;oBACjB,QAAQ,EAAE,OAAO;oBACjB,QAAQ,EAAE,KAAK;iBAChB;gBACD;oBACE,OAAO,EAAE,OAAO;oBAChB,OAAO,EAAE,KAAK;oBACd,QAAQ,EAAE,OAAO;oBACjB,QAAQ,EAAE,QAAQ;iBACnB;gBACD;oBACE,OAAO,EAAE,KAAK;oBACd,OAAO,EAAE,KAAK;oBACd,QAAQ,EAAE,OAAO;oBACjB,QAAQ,EAAE,KAAK;iBAChB;gBACD;oBACE,OAAO,EAAE,OAAO;oBAChB,OAAO,EAAE,KAAK;oBACd,QAAQ,EAAE,KAAK;oBACf,QAAQ,EAAE,KAAK;iBAChB;gBACD;oBACE,OAAO,EAAE,KAAK;oBACd,OAAO,EAAE,QAAQ;oBACjB,QAAQ,EAAE,OAAO;oBACjB,QAAQ,EAAE,QAAQ;iBACnB;gBACD;oBACE,OAAO,EAAE,OAAO;oBAChB,OAAO,EAAE,QAAQ;oBACjB,QAAQ,EAAE,KAAK;oBACf,QAAQ,EAAE,QAAQ;iBACnB;aACF,CAAC,CAAC;SACJ;aAAM;YACL,gBAAgB,CAAC,aAAa,CAAC;gBAC7B;oBACE,OAAO,EAAE,KAAK;oBACd,OAAO,EAAE,KAAK;oBACd,QAAQ,EAAE,OAAO;oBACjB,QAAQ,EAAE,KAAK;iBAChB;gBACD;oBACE,OAAO,EAAE,OAAO;oBAChB,OAAO,EAAE,KAAK;oBACd,QAAQ,EAAE,KAAK;oBACf,QAAQ,EAAE,KAAK;iBAChB;gBACD;oBACE,OAAO,EAAE,KAAK;oBACd,OAAO,EAAE,QAAQ;oBACjB,QAAQ,EAAE,OAAO;oBACjB,QAAQ,EAAE,QAAQ;iBACnB;gBACD;oBACE,OAAO,EAAE,OAAO;oBAChB,OAAO,EAAE,QAAQ;oBACjB,QAAQ,EAAE,KAAK;oBACf,QAAQ,EAAE,QAAQ;iBACnB;aACF,CAAC,CAAC;SACJ;;cACK,CAAC,GAAyB;YAC9B,OAAO;YACP,EAAE,EAAE,IAAI,CAAC,EAAE,EAAE;YACb,aAAa,EAAE,IAAI,eAAe,CAAC,KAAK,CAAC;YACzC,gBAAgB,EAAE,IAAI,eAAe,CAAC,KAAK,CAAC;SAC7C;;cACK,YAAY,GAAG,IAAI,YAAY,CAAC,CAAC,EAAE,IAAI,CAAC,SAAS,EAAE,OAAO,CAAC;;cAC3D,eAAe,GAAG,IAAI,eAAe,CACzC,aAAa,EACb,SAAS,EACT,YAAY,CACb;;cACK,UAAU,GAAG,IAAI,CAAC,OAAO,CAAC,MAAM,CAAC;YACrC,gBAAgB;YAChB,UAAU,EAAE,iBAAiB;YAC7B,cAAc,EAAE,IAAI,CAAC,cAAc,CAAC,KAAK,EAAE;SAC5C,CAAC;;cACI,SAAS,GAAG,UAAU,CAAC,MAAM,CAAM,eAAe,CAAC;;cACnD,GAAG,mBAAK,UAAU,EAAE,SAAS,IAAK,CAAC,IAAE,SAAS,EAAE,UAAU,GAAE;QAClE,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;QACrB,OAAO,GAAG,CAAC;KACZ;;;;IACD,eAAe;QACb,OAAO,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC;KAC1B;;;;;;IACD,QAAQ,CAAC,OAAa,EAAE,GAAG,GAAG,CAAC;QAC7B,KAAK,IAAI,KAAK,GAAG,GAAG,EAAE,KAAK,GAAG,IAAI,CAAC,KAAK,CAAC,MAAM,EAAE,KAAK,EAAE,EAAE;;kBAClD,IAAI,GAAG,IAAI,CAAC,KAAK,CAAC,KAAK,CAAC;YAC9B,IAAI,CAAC,WAAW,CAAC,IAAI,EAAE,OAAO,CAAC,CAAC;SACjC;QACD,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC,GAAG,EAAE,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC;KAC3C;;;;;;IACD,WAAW,CAAC,IAAuB,EAAE,OAAa;QAChD,IAAI,CAAC,SAAS,CAAC,QAAQ,CAAC,MAAM,GAAG,MAAM,CAAC;QACxC,IAAI,IAAI,CAAC,SAAS,CAAC,QAAQ,CAAC,IAAI,EAAE;YAChC,IAAI,CAAC,SAAS,CAAC,QAAQ,CAAC,cAAc;iBACnC,IAAI,CACH,MAAM,CAAC,CAAC,KAAU,KAAK,KAAK,CAAC,OAAO,KAAK,MAAM,CAAC,EAChD,IAAI,CAAC,CAAC,CAAC,CACR;iBACA,SAAS,CAAC;gBACT,IAAI,CAAC,UAAU,CAAC,MAAM,EAAE,CAAC;gBACzB,IAAI,CAAC,UAAU,CAAC,OAAO,EAAE,CAAC;aAC3B,CAAC,CAAC;SACN;aAAM;YACL,IAAI,CAAC,UAAU,CAAC,MAAM,EAAE,CAAC;YACzB,IAAI,CAAC,UAAU,CAAC,OAAO,EAAE,CAAC;SAC3B;QACD,IAAI,OAAO,EAAE;YACX,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;SAC/B;QACD,IAAI,CAAC,SAAS,CAAC,IAAI,EAAE,CAAC;KACvB;;;;;;;IACD,KAAK,CAAC,IAAuB,EAAE,SAAiB,EAAE,OAAa;QAC7D,IAAI,CAAC,WAAW,CAAC,IAAI,EAAE,OAAO,CAAC,CAAC;QAChC,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC,SAAS,EAAE,CAAC,CAAC,CAAC;KACjC;;;;;IACD,iBAAiB,CAAC,MAAkB;QAClC,KAAK,MAAM,CAAC,IAAI,IAAI,CAAC,KAAK,EAAE;;kBACpB,aAAa,GAAG,CAAC,CAAC,SAAS,CAAC,QAAQ,CAAC,aAAa,CAAC,QAAQ,CAC/D,MAAM,CAAC,MAAM,CACd;YACD,IAAI,aAAa,EAAE;gBACjB,MAAM,CAAC,cAAc,EAAE,CAAC;gBACxB,MAAM,CAAC,eAAe,EAAE,CAAC;gBACzB,OAAO;aACR;SACF;QACD,IAAI,CAAC,QAAQ,EAAE,CAAC;KACjB;;;;;IACD,YAAY,CAAC,EAAU;;cACf,SAAS,GAAG,IAAI,CAAC,KAAK,CAAC,SAAS,CAAC,CAAC,IAAI,CAAC,CAAC,EAAE,KAAK,EAAE,CAAC;QACxD,IAAI,SAAS,KAAK,CAAC,CAAC,IAAI,SAAS,KAAK,IAAI,CAAC,KAAK,CAAC,MAAM,GAAG,CAAC,EAAE;YAC3D,OAAO;SACR;;;cAEK,IAAI,GAAG,IAAI,CAAC,KAAK,CAAC,SAAS,CAAC;QAClC,IAAI,IAAI,CAAC,aAAa,CAAC,QAAQ,EAAE,IAAI,IAAI,CAAC,gBAAgB,CAAC,QAAQ,EAAE,EAAE;YACrE,OAAO;SACR;;QAED,KAAK,IAAI,KAAK,GAAG,IAAI,CAAC,KAAK,CAAC,MAAM,GAAG,CAAC,EAAE,KAAK,IAAI,CAAC,EAAE,KAAK,EAAE,EAAE;;kBACrD,CAAC,GAAG,IAAI,CAAC,KAAK,CAAC,KAAK,CAAC;YAC3B,IAAI,CAAC,CAAC,CAAC,aAAa,CAAC,QAAQ,EAAE,IAAI,CAAC,CAAC,CAAC,gBAAgB,CAAC,QAAQ,EAAE,EAAE;gBACjE,IAAI,CAAC,KAAK,CAAC,CAAC,EAAE,KAAK,CAAC,CAAC;aACtB;iBAAM;gBACL,OAAO;aACR;SACF;KACF;;;YA/MF,UAAU,SAAC,EAAE,UAAU,EAAE,MAAM,EAAE;;;;YAzBhC,OAAO;YAEP,qBAAqB;YAGU,QAAQ;;;;;;;;ACNzC,MAkBa,2BAA2B;;;;IA2CtC,YAAoB,kBAAsC;QAAtC,uBAAkB,GAAlB,kBAAkB,CAAoB;QAxCjD,kBAAa,GAAG,IAAI,CAAC;QACpB,eAAU,GAAG,IAAI,YAAY,EAAO,CAAC;QACrC,cAAS,GAAG,IAAI,YAAY,EAAQ,CAAC;QAE/C,YAAO,GAAG,KAAK,CAAC;KAoC8C;;;;;IA/B9D,UAAU,CAAC,MAAkB;QAC3B,MAAM,CAAC,cAAc,EAAE,CAAC;QACxB,IAAI,CAAC,IAAI,GAAG,IAAI,CAAC,kBAAkB,CAAC,IAAI,CACtC,MAAM,EACN,IAAI,CAAC,kBAAkB,EACvB,IAAI,CAAC,WAAW,EAChB,IAAI,CAAC,SAAS,EACd,IAAI,CAAC,UAAU,CAChB,CAAC;QACF,IAAI,CAAC,OAAO,GAAG,IAAI,CAAC;KACrB;;;;;IAGD,eAAe,CAAC,MAAW;QACzB,IAAI,IAAI,CAAC,aAAa,IAAI,CAAC,EAAE;YAC3B,MAAM,CAAC,eAAe,EAAE,CAAC;YACzB,MAAM,CAAC,OAAO,GAAG,MAAM,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC;YAC3C,MAAM,CAAC,OAAO,GAAG,MAAM,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC;YAE3C,IAAI,CAAC,kBAAkB,GAAG,UAAU,CAClC,MAAM,IAAI,CAAC,UAAU,CAAC,MAAM,CAAC,EAC7B,IAAI,CAAC,aAAa,CACnB,CAAC;SACH;KACF;;;;IAGD,aAAa;QACX,YAAY,CAAC,IAAI,CAAC,kBAAkB,CAAC,CAAC;KACvC;;;;IAID,QAAQ;QACN,IAAI,CAAC,GAAG,GAAG,IAAI,CAAC,SAAS,CAAC,SAAS,CAAC,MAAM,IAAI,CAAC,OAAO,GAAG,KAAK,CAAC,CAAC;KACjE;;;;IACD,WAAW;QACT,IAAI,CAAC,GAAG,CAAC,WAAW,EAAE,CAAC;KACxB;;;YAtDF,SAAS,SAAC;gBACT,QAAQ,EAAE,sBAAsB;gBAChC,QAAQ,EAAE,oBAAoB;aAC/B;;;;YALQ,kBAAkB;;;iCAOxB,KAAK;0BACL,KAAK;4BACL,KAAK;yBACL,MAAM;wBACN,MAAM;yBAMN,YAAY,SAAC,aAAa,EAAE,CAAC,QAAQ,CAAC;8BAatC,YAAY,SAAC,YAAY,EAAE,CAAC,QAAQ,CAAC;4BAcrC,YAAY,SAAC,UAAU;;;;;;;ACxD1B,MAea,8BAA8B;;;;IAuEzC,YAAoB,kBAAsC;QAAtC,uBAAkB,GAAlB,kBAAkB,CAAoB;QAtEjD,eAAU,GAAG,GAAG,CAAC;QACjB,cAAS,GAAG,GAAG,CAAC;QAGf,eAAU,GAAG,IAAI,YAAY,EAAO,CAAC;QACrC,cAAS,GAAG,IAAI,YAAY,EAAQ,CAAC;QAI/C,YAAO,GAAG,KAAK,CAAC;QAChB,UAAK,GAAG,CAAC,CAAC;;QA8DR,UAAU,CAAC,OAAO,IAAI,CAAC,KAAK,GAAG,IAAI,CAAC,kBAAkB,CAAC,eAAe,EAAE,CAAC,CAAC,CAAC;KAC5E;;;;;IA5DD,kBAAkB,CAAC,MAAkB;QACnC,KAAK,CAAC,cAAc,EAAE,CAAC;QACvB,KAAK,CAAC,eAAe,EAAE,CAAC;QACxB,YAAY,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC;QAC7B,YAAY,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC;QAC9B,IAAI,CAAC,IAAI,GAAG,IAAI,CAAC,kBAAkB,CAAC,IAAI,CACtC,MAAM,EACN,IAAI,CAAC,qBAAqB,EAC1B,IAAI,CAAC,WAAW,EAChB,IAAI,CAAC,SAAS,EACd,IAAI,CAAC,UAAU,EACf,IAAI,EACJ,IAAI,CAAC,KAAK,CACX,CAAC;QACF,IAAI,CAAC,OAAO,GAAG,IAAI,CAAC;KACrB;;;;;IAGD,kBAAkB,CAAC,MAAkB;QACnC,IAAI,IAAI,CAAC,IAAI,EAAE;YACb,IAAI,CAAC,IAAI,CAAC,gBAAgB,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;SACvC;QACD,YAAY,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC;QAC9B,IAAI,CAAC,SAAS,GAAG,UAAU,CAAC;YAC1B,IAAI,CAAC,IAAI,GAAG,IAAI,CAAC,kBAAkB,CAAC,IAAI,CACtC,MAAM,EACN,IAAI,CAAC,qBAAqB,EAC1B,IAAI,CAAC,WAAW,EAChB,IAAI,CAAC,SAAS,EACd,IAAI,CAAC,UAAU,EACf,IAAI,EACJ,IAAI,CAAC,KAAK,CACX,CAAC;YACF,IAAI,CAAC,OAAO,GAAG,IAAI,CAAC;YACpB,IAAI,CAAC,SAAS,GAAG,IAAI,CAAC;SACvB,EAAE,IAAI,CAAC,SAAS,CAAC,CAAC;KACpB;;;;;IAMD,iBAAiB;QACf,YAAY,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC;QAC7B,IAAI,IAAI,CAAC,IAAI,EAAE;YACb,IAAI,CAAC,IAAI,CAAC,gBAAgB,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;SACxC;QACD,IAAI,CAAC,UAAU,GAAG,UAAU,CAAC;YAC3B,IAAI,IAAI,CAAC,IAAI,EAAE;gBACb,IAAI,CAAC,IAAI,CAAC,gBAAgB,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;gBACvC,IAAI,CAAC,kBAAkB,CAAC,YAAY,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;gBACnD,IAAI,CAAC,IAAI,GAAG,SAAS,CAAC;aACvB;YACD,IAAI,CAAC,OAAO,GAAG,KAAK,CAAC;SACtB,EAAE,IAAI,CAAC,UAAU,CAAC,CAAC;KACrB;;;;;IAUD,WAAW;QACT,YAAY,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC;QAC7B,YAAY,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC;KAC/B;;;YAnFF,SAAS,SAAC,EAAE,QAAQ,EAAE,yBAAyB,EAAE;;;;YAHhD,kBAAkB;;;yBAKjB,KAAK;wBACL,KAAK;oCACL,KAAK;0BACL,KAAK;yBACL,MAAM;wBACN,MAAM;iCAON,YAAY,SAAC,OAAO,EAAE,CAAC,QAAQ,EAAE,MAAM,CAAC;iCAkBxC,YAAY,SAAC,WAAW,EAAE,CAAC,QAAQ,CAAC;gCAwBpC,YAAY,SAAC,UAAU,EAAE,CAAC,QAAQ,CAAC;;;;;;;ACtEtC,MAWa,aAAa;;;;;IAiCxB,YACS,WAAwB,EACxB,kBAAsC;QADtC,gBAAW,GAAX,WAAW,CAAa;QACxB,uBAAkB,GAAlB,kBAAkB,CAAoB;;;;QAjC/C,WAAM,GAA8B,OAAO,CAAC;QAC5C,mBAAc,GAAG,IAAI,OAAO,EAAkB,CAAC;;;;QAE/C,SAAI,GAAG,IAAI,CAAC;KA+BR;;;;IA3BJ,eAAe;QACb,IAAI,CAAC,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC,OAAO,EAAE;YAClC,OAAO;SACR;QACD,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC,aAAa,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;QAC/C,YAAY,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC;KAC/B;;;;IAGD,gBAAgB;QACd,IAAI,CAAC,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC,OAAO,EAAE;YAClC,OAAO;SACR;QACD,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC,aAAa,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;QAChD,IAAI,CAAC,UAAU,GAAG,UAAU,CAAC;YAC3B,IAAI,CAAC,kBAAkB,CAAC,YAAY,CAAC,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;SAChE,EAAE,GAAG,CAAC,CAAC;KACT;;;;;IAGD,iBAAiB,CAAC,MAAkB;QAClC,IAAI,CAAC,kBAAkB,CAAC,iBAAiB,CAAC,MAAM,CAAC,CAAC;KACnD;;;;;;IAQD,gBAAgB,CAAC,KAAqB;QACpC,IAAI,CAAC,cAAc,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;KACjC;;;YA7CF,SAAS,SAAC;gBACT,QAAQ,EAAE,UAAU;gBACpB,QAAQ,EAAE,EAAE;aACb;;;;YANQ,WAAW;YADX,kBAAkB;;;8BAgBxB,YAAY,SAAC,WAAW;+BASxB,YAAY,SAAC,YAAY;gCAWzB,YAAY,SAAC,gBAAgB,EAAE,CAAC,QAAQ,CAAC;;;;;;;ACvC5C,MAiBa,iBAAiB;;;YAT7B,QAAQ,SAAC;gBACR,YAAY,EAAE;oBACZ,2BAA2B;oBAC3B,8BAA8B;oBAC9B,aAAa;iBACd;gBACD,OAAO,EAAE,CAAC,2BAA2B,EAAE,8BAA8B,CAAC;gBACtE,OAAO,EAAE,CAAC,YAAY,EAAE,aAAa,CAAC;aACvC;;;;;;;;;;;;;;;"}
|
1
|
+
{"version":3,"file":"ctrl-ngx-rightclick.js","sources":["ng://@ctrl/ngx-rightclick/context-menu-injector.ts","ng://@ctrl/ngx-rightclick/context-menu.service.ts","ng://@ctrl/ngx-rightclick/context-menu-trigger.directive.ts","ng://@ctrl/ngx-rightclick/context-submenu-trigger.directive.ts","ng://@ctrl/ngx-rightclick/menu.component.ts","ng://@ctrl/ngx-rightclick/context-menu.module.ts","ng://@ctrl/ngx-rightclick/ctrl-ngx-rightclick.ts"],"sourcesContent":["import { Injector, Type, InjectionToken, InjectFlags } from '@angular/core';\n\nimport { ActiveContextMenuSub } from './context-menu.service';\n\nexport class MenuPackage {\n constructor(public menu: ActiveContextMenuSub, public context: any) {}\n}\n\nexport class MenuInjector implements Injector {\n menuContext: MenuPackage;\n constructor(\n private activeContextMenu: ActiveContextMenuSub,\n private parentInjector: Injector,\n private context: any,\n ) {\n this.menuContext = new MenuPackage(activeContextMenu, context);\n }\n\n get<T>(token: any, notFoundValue?: T, flags?: InjectFlags): T | MenuPackage {\n if (token === MenuPackage) {\n return this.menuContext;\n }\n return this.parentInjector.get<T>(token, notFoundValue, flags);\n }\n}\n","import {\n Overlay,\n OverlayRef,\n ScrollStrategyOptions,\n} from '@angular/cdk/overlay';\nimport { ComponentPortal } from '@angular/cdk/portal';\nimport { ElementRef, Injectable, Injector, EventEmitter } from '@angular/core';\n\nimport { BehaviorSubject } from 'rxjs';\nimport { filter, take } from 'rxjs/operators';\n\nimport { MenuInjector } from './context-menu-injector';\n\nexport interface ActiveContextMenuSub {\n id: number;\n isTriggerHovered: BehaviorSubject<boolean>;\n isMenuHovered: BehaviorSubject<boolean>;\n submenu: boolean;\n}\nexport interface ActiveContextMenu extends ActiveContextMenuSub {\n overlayRef: OverlayRef;\n component: any;\n menuClose: EventEmitter<void>;\n menuAction: EventEmitter<any>;\n}\n\n@Injectable({ providedIn: 'root' })\nexport class ContextMenuService {\n menus: ActiveContextMenu[] = [];\n id = 0;\n\n constructor(\n private overlay: Overlay,\n private scrollStrategy: ScrollStrategyOptions,\n private injector: Injector,\n ) {}\n\n /**\n *\n * @param $event triggering event\n * @param menuComponent the component to be shown\n * @param submenu is a menu within a menu\n * @param level if submenu, what level\n */\n show(\n $event: MouseEvent,\n menuComponent,\n context: any,\n menuClose: EventEmitter<any>,\n menuAction: EventEmitter<any>,\n submenu = false,\n level?: number,\n ): ActiveContextMenu {\n let target: any;\n if (!submenu) {\n this.closeAll();\n target = {\n getBoundingClientRect: (): ClientRect => ({\n bottom: $event.clientY,\n height: 0,\n left: $event.clientX,\n right: $event.clientX,\n top: $event.clientY,\n width: 0,\n }),\n };\n } else {\n // close other submenus\n this.closeAll(undefined, level);\n target = $event.target;\n }\n const el = new ElementRef(target);\n const positionStrategy = this.overlay\n .position()\n .flexibleConnectedTo(el)\n .withFlexibleDimensions(false);\n\n if (!submenu) {\n positionStrategy.withPositions([\n {\n originX: 'start',\n originY: 'bottom',\n overlayX: 'start',\n overlayY: 'top',\n },\n {\n originX: 'start',\n originY: 'top',\n overlayX: 'start',\n overlayY: 'bottom',\n },\n {\n originX: 'end',\n originY: 'top',\n overlayX: 'start',\n overlayY: 'top',\n },\n {\n originX: 'start',\n originY: 'top',\n overlayX: 'end',\n overlayY: 'top',\n },\n {\n originX: 'end',\n originY: 'center',\n overlayX: 'start',\n overlayY: 'center',\n },\n {\n originX: 'start',\n originY: 'center',\n overlayX: 'end',\n overlayY: 'center',\n },\n ]);\n } else {\n positionStrategy.withPositions([\n {\n originX: 'end',\n originY: 'top',\n overlayX: 'start',\n overlayY: 'top',\n },\n {\n originX: 'start',\n originY: 'top',\n overlayX: 'end',\n overlayY: 'top',\n },\n {\n originX: 'end',\n originY: 'bottom',\n overlayX: 'start',\n overlayY: 'bottom',\n },\n {\n originX: 'start',\n originY: 'bottom',\n overlayX: 'end',\n overlayY: 'bottom',\n },\n ]);\n }\n const t: ActiveContextMenuSub = {\n submenu,\n id: this.id++,\n isMenuHovered: new BehaviorSubject(false),\n isTriggerHovered: new BehaviorSubject(false),\n };\n const menuInjector = new MenuInjector(t, this.injector, context);\n const componentPortal = new ComponentPortal(\n menuComponent,\n undefined,\n menuInjector,\n );\n const overlayRef = this.overlay.create({\n positionStrategy,\n panelClass: 'ngx-contextmenu',\n scrollStrategy: this.scrollStrategy.close(),\n });\n const component = overlayRef.attach<any>(componentPortal);\n const res = { overlayRef, component, ...t, menuClose, menuAction };\n this.menus.push(res);\n return res;\n }\n getCurrentLevel() {\n return this.menus.length;\n }\n closeAll(context?: any, idx = 0) {\n for (let index = idx; index < this.menus.length; index++) {\n const menu = this.menus[index];\n this.destroyMenu(menu, context);\n }\n this.menus.splice(idx, this.menus.length);\n }\n destroyMenu(menu: ActiveContextMenu, context?: any) {\n menu.component.instance._state = 'exit';\n if (menu.component.instance.lazy) {\n menu.component.instance._animationDone\n .pipe(\n filter((event: any) => event.toState === 'exit'),\n take(1),\n )\n .subscribe(() => {\n menu.overlayRef.detach();\n menu.overlayRef.dispose();\n });\n } else {\n menu.overlayRef.detach();\n menu.overlayRef.dispose();\n }\n if (context) {\n menu.menuAction.next(context);\n }\n menu.menuClose.next();\n }\n close(menu: ActiveContextMenu, menuIndex: number, context?: any) {\n this.destroyMenu(menu, context);\n this.menus.splice(menuIndex, 1);\n }\n checkOutsideClick($event: MouseEvent) {\n for (const m of this.menus) {\n const clickedInside = m.component.location.nativeElement.contains(\n $event.target,\n );\n if (clickedInside) {\n $event.preventDefault();\n $event.stopPropagation();\n return;\n }\n }\n this.closeAll();\n }\n closeSubMenu(id: number): void {\n const menuIndex = this.menus.findIndex(n => n.id === id);\n if (menuIndex === -1 || menuIndex !== this.menus.length - 1) {\n return;\n }\n // make sure we can close the current menu\n const menu = this.menus[menuIndex];\n if (menu.isMenuHovered.getValue() || menu.isTriggerHovered.getValue()) {\n return;\n }\n // close all menus up if possible\n for (let index = this.menus.length - 1; index >= 1; index--) {\n const m = this.menus[index];\n if (!m.isMenuHovered.getValue() && !m.isTriggerHovered.getValue()) {\n this.close(m, index);\n } else {\n return;\n }\n }\n }\n}\n","import {\n Directive,\n HostListener,\n Input,\n Output,\n EventEmitter,\n OnDestroy,\n OnInit,\n} from '@angular/core';\nimport { Subscription } from 'rxjs';\n\nimport { ContextMenuService, ActiveContextMenu } from './context-menu.service';\n\n@Directive({\n selector: '[contextMenuTrigger]',\n exportAs: 'contextMenuTrigger',\n})\nexport class ContextMenuTriggerDirective implements OnDestroy, OnInit {\n @Input() contextMenuTrigger: any;\n @Input() menuContext: any;\n @Input() holdToDisplay = 1000;\n @Output() menuAction = new EventEmitter<any>();\n @Output() menuClose = new EventEmitter<void>();\n @Output() beforeOpen = new EventEmitter<any>();\n\n menu: ActiveContextMenu;\n visible = false;\n private mouseDownTimeoutId: any;\n private sub: Subscription;\n\n @HostListener('contextmenu', ['$event'])\n handleMenu($event: MouseEvent) {\n let preventOpen = false;\n this.beforeOpen.emit({\n menuContext: this.menuContext,\n event: $event,\n preventOpen: () => {\n preventOpen = true;\n },\n });\n\n if (preventOpen) {\n return;\n }\n\n $event.preventDefault();\n this.menu = this.contextMenuService.show(\n $event,\n this.contextMenuTrigger,\n this.menuContext,\n this.menuClose,\n this.menuAction,\n );\n this.visible = true;\n }\n\n @HostListener('touchstart', ['$event'])\n handleMouseDown($event: any) {\n if (this.holdToDisplay >= 0) {\n $event.stopPropagation();\n $event.clientY = $event.touches[0].clientY;\n $event.clientX = $event.touches[0].clientX;\n\n this.mouseDownTimeoutId = setTimeout(\n () => this.handleMenu($event),\n this.holdToDisplay,\n );\n }\n }\n\n @HostListener('touchend')\n handleMouseUp() {\n clearTimeout(this.mouseDownTimeoutId);\n }\n\n constructor(private contextMenuService: ContextMenuService) {}\n\n ngOnInit() {\n this.sub = this.menuClose.subscribe(() => (this.visible = false));\n }\n\n ngOnDestroy() {\n this.sub.unsubscribe();\n }\n}\n","import {\n Directive,\n HostListener,\n Input,\n OnDestroy,\n Output,\n EventEmitter,\n} from '@angular/core';\n\nimport { ActiveContextMenu, ContextMenuService } from './context-menu.service';\n\n@Directive({ selector: '[contextSubmenuTrigger]' })\nexport class ContextSubmenuTriggerDirective implements OnDestroy {\n @Input() hoverDelay = 500;\n @Input() openDelay = 200;\n @Input() contextSubmenuTrigger?: any;\n @Input() menuContext?: any;\n @Output() menuAction = new EventEmitter<any>();\n @Output() menuClose = new EventEmitter<void>();\n menu: ActiveContextMenu;\n opentimer: any;\n closetimer: any;\n visible = false;\n level = 1;\n\n constructor(private contextMenuService: ContextMenuService) {\n // get current level\n setTimeout(() => (this.level = this.contextMenuService.getCurrentLevel()));\n }\n\n @HostListener('click', ['$event'])\n handleSubMenuClick($event: MouseEvent) {\n $event.preventDefault();\n $event.stopPropagation();\n clearTimeout(this.opentimer);\n clearTimeout(this.closetimer);\n this.menu = this.contextMenuService.show(\n $event,\n this.contextSubmenuTrigger,\n this.menuContext,\n this.menuClose,\n this.menuAction,\n true,\n this.level,\n );\n this.visible = true;\n }\n\n @HostListener('mouseover', ['$event'])\n handleSubMenuEnter($event: MouseEvent) {\n if (this.menu) {\n this.menu.isTriggerHovered.next(true);\n }\n clearTimeout(this.closetimer);\n this.opentimer = setTimeout(() => {\n this.menu = this.contextMenuService.show(\n $event,\n this.contextSubmenuTrigger,\n this.menuContext,\n this.menuClose,\n this.menuAction,\n true,\n this.level,\n );\n this.visible = true;\n this.opentimer = null;\n }, this.openDelay);\n }\n\n /**\n * submenu hides after cursor has exited for a period of time\n */\n @HostListener('mouseout')\n handleSubMenuExit() {\n clearTimeout(this.opentimer);\n if (this.menu) {\n this.menu.isTriggerHovered.next(false);\n }\n this.closetimer = setTimeout(() => {\n if (this.menu) {\n this.menu.isTriggerHovered.next(false);\n this.contextMenuService.closeSubMenu(this.menu.id);\n this.menu = undefined;\n }\n this.visible = false;\n }, this.hoverDelay);\n }\n\n /**\n * if overwritten make sure to clear timeouts\n */\n ngOnDestroy() {\n clearTimeout(this.opentimer);\n clearTimeout(this.closetimer);\n }\n}\n","import { Component, HostListener, HostBinding } from '@angular/core';\nimport { AnimationEvent } from '@angular/animations';\n\nimport { ContextMenuService } from './context-menu.service';\nimport { MenuPackage } from './context-menu-injector';\nimport { Subject } from 'rxjs';\n\n@Component({\n selector: 'app-menu',\n template: ``,\n})\nexport class MenuComponent {\n /** State of the dialog animation. */\n _state: 'void' | 'enter' | 'exit' = 'enter';\n _animationDone = new Subject<AnimationEvent>();\n /** set lazy to False if you do not have animations */\n lazy = true;\n closetimer: any;\n\n constructor(\n public menuPackage: MenuPackage,\n public contextMenuService: ContextMenuService,\n ) {}\n\n @HostListener('mouseover')\n handleMouseover() {\n if (!this.menuPackage.menu.submenu) {\n return;\n }\n this.menuPackage.menu.isMenuHovered.next(true);\n clearTimeout(this.closetimer);\n }\n\n @HostListener('mouseleave')\n handleMouseleave() {\n if (!this.menuPackage.menu.submenu) {\n return;\n }\n this.menuPackage.menu.isMenuHovered.next(false);\n this.closetimer = setTimeout(() => {\n this.contextMenuService.closeSubMenu(this.menuPackage.menu.id);\n }, 500);\n }\n\n @HostListener('document:click', ['$event'])\n handleWindowClick($event: MouseEvent) {\n this.contextMenuService.checkOutsideClick($event);\n }\n\n /** Callback that is invoked when the menu animation completes. */\n @HostListener('@menu.done', ['$event'])\n _onAnimationDone(event: AnimationEvent) {\n this._animationDone.next(event);\n }\n}\n","import { NgModule } from '@angular/core';\nimport { OverlayModule } from '@angular/cdk/overlay';\nimport { PortalModule } from '@angular/cdk/portal';\n\nimport { ContextMenuTriggerDirective } from './context-menu-trigger.directive';\nimport { ContextSubmenuTriggerDirective } from './context-submenu-trigger.directive';\nimport { MenuComponent } from './menu.component';\n\n@NgModule({\n declarations: [\n ContextMenuTriggerDirective,\n ContextSubmenuTriggerDirective,\n MenuComponent,\n ],\n exports: [ContextMenuTriggerDirective, ContextSubmenuTriggerDirective],\n imports: [PortalModule, OverlayModule],\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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"}
|