UNPKG

21.1 kBSource Map (JSON)View Raw
1{"version":3,"file":"primeng-contextmenu.js","sources":["../../src/app/components/contextmenu/contextmenu.ts","../../src/app/components/contextmenu/primeng-contextmenu.ts"],"sourcesContent":["import { NgModule,Component,ElementRef,AfterViewInit,OnDestroy,Input,Output,Renderer2,Inject,forwardRef,ViewChild,NgZone,EventEmitter,ChangeDetectionStrategy, ViewEncapsulation } from '@angular/core';\nimport { CommonModule } from '@angular/common';\nimport { DomHandler } from 'primeng/dom';\nimport { MenuItem } from 'primeng/api';\nimport { RippleModule } from 'primeng/ripple'; \nimport { RouterModule } from '@angular/router';\n\n@Component({\n selector: 'p-contextMenuSub',\n template: `\n <ul [ngClass]=\"{'p-submenu-list':!root}\">\n <ng-template ngFor let-child [ngForOf]=\"(root ? item : item.items)\">\n <li *ngIf=\"child.separator\" class=\"p-menu-separator\" [ngClass]=\"{'p-hidden': child.visible === false}\" role=\"separator\">\n <li *ngIf=\"!child.separator\" #item [ngClass]=\"{'p-menuitem':true,'p-menuitem-active':item==activeItem,'p-hidden': child.visible === false}\"\n (mouseenter)=\"onItemMouseEnter($event,item,child)\" role=\"none\">\n <a *ngIf=\"!child.routerLink\" [attr.href]=\"child.url ? child.url : null\" [attr.target]=\"child.target\" [attr.title]=\"child.title\" [attr.id]=\"child.id\" [attr.tabindex]=\"child.disabled ? null : '0'\" (click)=\"itemClick($event, child)\"\n [ngClass]=\"{'p-menuitem-link':true,'p-disabled':child.disabled}\" [ngStyle]=\"child.style\" [class]=\"child.styleClass\" pRipple\n [attr.aria-haspopup]=\"item.items != null\" [attr.aria-expanded]=\"item === activeItem\">\n <span class=\"p-menuitem-icon\" *ngIf=\"child.icon\" [ngClass]=\"child.icon\"></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-submenu-icon pi pi-angle-right\" *ngIf=\"child.items\"></span>\n </a>\n <a *ngIf=\"child.routerLink\" [routerLink]=\"child.routerLink\" [queryParams]=\"child.queryParams\" [routerLinkActive]=\"'p-menuitem-link-active'\" role=\"menuitem\"\n [routerLinkActiveOptions]=\"child.routerLinkActiveOptions||{exact:false}\" [attr.target]=\"child.target\" [attr.title]=\"child.title\" [attr.id]=\"child.id\" [attr.tabindex]=\"child.disabled ? null : '0'\"\n (click)=\"itemClick($event, child)\" [ngClass]=\"{'p-menuitem-link':true,'p-disabled':child.disabled}\"\n [ngStyle]=\"child.style\" [class]=\"child.styleClass\" pRipple\n [fragment]=\"child.fragment\" [queryParamsHandling]=\"child.queryParamsHandling\" [preserveFragment]=\"child.preserveFragment\" [skipLocationChange]=\"child.skipLocationChange\" [replaceUrl]=\"child.replaceUrl\" [state]=\"child.state\">\n <span class=\"p-menuitem-icon\" *ngIf=\"child.icon\" [ngClass]=\"child.icon\"></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-submenu-icon pi pi-angle-right\" *ngIf=\"child.items\"></span>\n </a>\n <p-contextMenuSub [parentActive]=\"item==activeItem\" [item]=\"child\" *ngIf=\"child.items\"></p-contextMenuSub>\n </li>\n </ng-template>\n </ul>\n `,\n encapsulation: ViewEncapsulation.None\n})\nexport class ContextMenuSub {\n\n @Input() item: MenuItem;\n\n @Input() root: boolean;\n\n @Input() get parentActive(): boolean {\n return this._parentActive;\n }\n set parentActive(value) {\n this._parentActive = value;\n if (!value) {\n this.activeItem = null;\n }\n }\n\n contextMenu: ContextMenu;\n\n constructor(@Inject(forwardRef(() => ContextMenu)) contextMenu) {\n this.contextMenu = contextMenu as ContextMenu;\n }\n\n activeItem: any;\n\n containerOffset: any;\n\n hideTimeout: any;\n\n _parentActive: boolean;\n\n onItemMouseEnter(event, item, menuitem) {\n if (this.hideTimeout) {\n clearTimeout(this.hideTimeout);\n this.hideTimeout = null;\n }\n\n if (menuitem.disabled) {\n return;\n }\n\n this.activeItem = item;\n\n let nextElement = item.children[0].nextElementSibling;\n if (nextElement) {\n let sublist = nextElement.children[0];\n sublist.style.zIndex = ++DomHandler.zindex;\n this.position(sublist, item);\n }\n }\n\n itemClick(event, item: MenuItem)  {\n if (item.disabled) {\n event.preventDefault();\n return;\n }\n\n if (item.command) {\n item.command({\n originalEvent: event,\n item: item\n });\n event.preventDefault();\n }\n\n if (item.items)\n event.preventDefault();\n else\n this.contextMenu.hide();\n }\n\n listClick(event) {\n this.activeItem = null;\n }\n\n position(sublist, item) {\n this.containerOffset = DomHandler.getOffset(item.parentElement)\n let viewport = DomHandler.getViewport();\n let sublistWidth = sublist.offsetParent ? sublist.offsetWidth : DomHandler.getHiddenElementOuterWidth(sublist);\n let itemOuterWidth = DomHandler.getOuterWidth(item.children[0]);\n let itemOuterHeight = DomHandler.getOuterHeight(item.children[0]);\n let sublistHeight = sublist.offsetHeight ? sublist.offsetHeight : DomHandler.getHiddenElementOuterHeight(sublist);\n\n if ((parseInt(this.containerOffset.top) + itemOuterHeight + sublistHeight) > (viewport.height - DomHandler.calculateScrollbarHeight())) {\n sublist.style.removeProperty('top');\n sublist.style.bottom = '0px';\n }\n else {\n sublist.style.removeProperty('bottom');\n sublist.style.top = '0px';\n }\n\n if ((parseInt(this.containerOffset.left) + itemOuterWidth + sublistWidth) > (viewport.width - DomHandler.calculateScrollbarWidth())) {\n sublist.style.left = -sublistWidth + 'px';\n }\n else {\n sublist.style.left = itemOuterWidth + 'px';\n }\n }\n\n}\n\n@Component({\n selector: 'p-contextMenu',\n template: `\n <div #container [ngClass]=\"'p-contextmenu p-component'\"\n [class]=\"styleClass\" [ngStyle]=\"style\">\n <p-contextMenuSub [item]=\"model\" [parentActive]=\"parentActive\" root=\"root\"></p-contextMenuSub>\n </div>\n `,\n changeDetection: ChangeDetectionStrategy.OnPush,\n encapsulation: ViewEncapsulation.None,\n styleUrls: ['./contextmenu.css']\n})\nexport class ContextMenu implements AfterViewInit, OnDestroy {\n\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 parentActive: boolean;\n\n documentClickListener: any;\n\n windowResizeListener: any;\n\n triggerEventListener: any;\n\n constructor(public el: ElementRef, public renderer: Renderer2, public zone: NgZone) { }\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 }\n else if (this.target) {\n this.triggerEventListener = this.renderer.listen(this.target, this.triggerEvent, (event) => {\n this.show(event);\n event.preventDefault();\n event.stopPropagation();\n });\n }\n\n if (this.appendTo) {\n if (this.appendTo === 'body')\n document.body.appendChild(this.containerViewChild.nativeElement);\n else\n DomHandler.appendChild(this.containerViewChild.nativeElement, this.appendTo);\n }\n }\n\n show(event?: MouseEvent) {\n this.position(event);\n this.moveOnTop();\n this.containerViewChild.nativeElement.style.display = 'block';\n this.parentActive = 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 this.parentActive = false;\n this.unbindGlobalListeners();\n this.onHide.emit();\n }\n\n moveOnTop() {\n if (this.autoZIndex) {\n this.containerViewChild.nativeElement.style.zIndex = String(this.baseZIndex + (++DomHandler.zindex));\n }\n }\n\n toggle(event?: MouseEvent) {\n if (this.containerViewChild.nativeElement.offsetParent)\n this.hide();\n else\n 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 ? this.containerViewChild.nativeElement.offsetWidth : DomHandler.getHiddenElementOuterWidth(this.containerViewChild.nativeElement);\n let height = this.containerViewChild.nativeElement.offsetParent ? this.containerViewChild.nativeElement.offsetHeight : DomHandler.getHiddenElementOuterHeight(this.containerViewChild.nativeElement);\n let viewport = DomHandler.getViewport();\n\n //flip\n if (left + width - document.body.scrollLeft > viewport.width) {\n left -= width;\n }\n\n //flip\n if (top + height - document.body.scrollTop > viewport.height) {\n top -= height;\n }\n\n //fit\n if (left < document.body.scrollLeft) {\n left = document.body.scrollLeft;\n }\n\n //fit\n if (top < document.body.scrollTop) {\n top = document.body.scrollTop;\n }\n\n this.containerViewChild.nativeElement.style.left = left + 'px';\n this.containerViewChild.nativeElement.style.top = top + 'px';\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.button !== 2) {\n this.hide();\n }\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\n unbindGlobalListeners() {\n if (this.documentClickListener) {\n this.documentClickListener();\n this.documentClickListener = null;\n }\n\n if (this.windowResizeListener) {\n window.removeEventListener('resize', this.windowResizeListener);\n this.windowResizeListener = 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 !(this.containerViewChild.nativeElement.isSameNode(event.target) || this.containerViewChild.nativeElement.contains(event.target));\n }\n\n ngOnDestroy() {\n this.unbindGlobalListeners();\n\n if (this.triggerEventListener) {\n this.triggerEventListener();\n }\n\n if (this.appendTo) {\n this.el.nativeElement.appendChild(this.containerViewChild.nativeElement);\n }\n }\n\n}\n\n@NgModule({\n imports: [CommonModule,RouterModule,RippleModule],\n exports: [ContextMenu,RouterModule],\n declarations: [ContextMenu,ContextMenuSub]\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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"}
\No newline at end of file