ngb-context-menu
Version:
A simple context menu library, based on ng-bootstrap library
1 lines • 9.17 kB
Source Map (JSON)
{"version":3,"file":"ngb-context-menu.mjs","sources":["../../../projects/ngb-context-menu/src/lib/components/context-menu/context-menu.component.ts","../../../projects/ngb-context-menu/src/lib/components/context-menu/context-menu.component.html","../../../projects/ngb-context-menu/src/lib/directives/context-menu.directive.ts","../../../projects/ngb-context-menu/src/lib/ngb-context-menu.module.ts","../../../projects/ngb-context-menu/src/public-api.ts","../../../projects/ngb-context-menu/src/ngb-context-menu.ts"],"sourcesContent":["import { Component, EventEmitter, Input, OnDestroy, Output, ViewChild } from '@angular/core';\nimport { NgbDropdown } from '@ng-bootstrap/ng-bootstrap';\nimport { NgbContextMenuItem, ContextMenuPosition } from '../../models/context-menu.model';\n\n@Component({\n selector: 'ngb-context-menu',\n templateUrl: './context-menu.component.html',\n styleUrls: ['./context-menu.component.scss'],\n})\nexport class ContextMenuComponent implements OnDestroy {\n @ViewChild('myContextMenu')\n myContextMenu!: NgbDropdown | null;\n\n @Input()\n menuItems: NgbContextMenuItem[] | null = [];\n\n @Output()\n selectedMenuItem: EventEmitter<number> | null = new EventEmitter<number>();\n\n contextMenuPosition: ContextMenuPosition | null = { x: '0px', y: '0px' };\n\n onContextMenu(event: MouseEvent): void {\n event.preventDefault();\n this.myContextMenu?.open();\n\n if (this.contextMenuPosition) {\n this.contextMenuPosition.x = !!event?.clientX ? event.clientX + 'px' : this.contextMenuPosition.x + 'px';\n this.contextMenuPosition.y = !!event?.clientY ? event.clientY + 'px' : this.contextMenuPosition.y + 'px';\n }\n }\n\n ngOnDestroy(): void {\n this.myContextMenu = null;\n this.menuItems = null;\n this.selectedMenuItem = null;\n this.contextMenuPosition = null;\n }\n}\n","<div\n ngbDropdown\n #myContextMenu=\"ngbDropdown\"\n [style.position]=\"'fixed'\"\n [style.left]=\"contextMenuPosition?.x\"\n [style.top]=\"contextMenuPosition?.y\"\n [style.z-index]=\"1099\"\n>\n <div ngbDropdownMenu class=\"ngb-context-menu\">\n <ng-container *ngFor=\"let item of menuItems\">\n <ng-container *ngIf=\"item.isDivider; else menuItem\">\n <div class=\"dropdown-divider ngb-context-menu-divider\"></div>\n </ng-container>\n <ng-template #menuItem>\n <div ngbDropdownItem [disabled]=\"!!item.disabled\" (click)=\"selectedMenuItem?.emit(item.id)\" class=\"ngb-context-menu-item\">\n <span *ngIf=\"item.icon\" class=\"ngb-icon {{item.icon}}\" [title]=\"item.iconTitle\"></span>\n <span>{{ item.label }}</span>\n </div>\n </ng-template>\n </ng-container>\n </div>\n</div>\n","import { ComponentRef, Directive, EventEmitter, HostListener, Input, OnInit, Output, ViewContainerRef } from '@angular/core';\nimport { NgbDropdown } from '@ng-bootstrap/ng-bootstrap';\nimport {NgbContextMenuItem} from \"../models/context-menu.model\";\nimport {ContextMenuComponent} from \"../components/context-menu/context-menu.component\";\n\n@Directive({\n selector: '[ngbContextMenu]',\n providers: [NgbDropdown],\n})\nexport class ContextMenuDirective implements OnInit {\n @Input()\n menuItems: NgbContextMenuItem[] = [];\n\n @Output()\n selectedMenuItem: EventEmitter<number> = new EventEmitter<number>();\n\n contextMenuComponentRef!: ComponentRef<ContextMenuComponent>;\n\n constructor(public viewContainerRef: ViewContainerRef) {}\n\n @HostListener('contextmenu', ['$event'])\n onRightClick(event: MouseEvent): void {\n event.preventDefault();\n this.contextMenuComponentRef.instance.onContextMenu(event);\n }\n\n ngOnInit(): void {\n this.contextMenuComponentRef = this.viewContainerRef.createComponent(ContextMenuComponent);\n this.contextMenuComponentRef.instance.menuItems = this.menuItems;\n this.contextMenuComponentRef.instance.selectedMenuItem?.subscribe((selectedId: number) => this.selectedMenuItem.emit(selectedId));\n }\n}\n","import { NgModule } from '@angular/core';\nimport {ContextMenuComponent} from \"./components/context-menu/context-menu.component\";\nimport {NgbDropdownModule} from \"@ng-bootstrap/ng-bootstrap\";\nimport {ContextMenuDirective} from \"./directives/context-menu.directive\";\nimport {BrowserModule} from \"@angular/platform-browser\";\nimport {FormsModule} from \"@angular/forms\";\n\n\n\n@NgModule({\n declarations: [\n ContextMenuComponent,\n ContextMenuDirective,\n ],\n imports: [\n BrowserModule,\n FormsModule,\n NgbDropdownModule\n ],\n exports: [\n ContextMenuComponent,\n ContextMenuDirective\n ]\n})\nexport class NgbContextMenuModule { }\n","/*\n * Public API Surface of ngb-context-menu\n */\n\nexport * from './lib/components/context-menu/context-menu.component';\nexport * from './lib/models/context-menu.model';\nexport * from './lib/directives/context-menu.directive';\nexport * from './lib/ngb-context-menu.module';\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public-api';\n"],"names":[],"mappings":"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"}