UNPKG

15.6 kBSource Map (JSON)View Raw
1{"version":3,"file":"primeng-menu.umd.js","sources":["ng://primeng/menu/menu.ts"],"sourcesContent":["import {NgModule,Component,ElementRef,OnDestroy,Input,Output,EventEmitter,Renderer2,ViewChild,Inject,forwardRef,ChangeDetectorRef,ChangeDetectionStrategy} from '@angular/core';\nimport {trigger,state,style,transition,animate,AnimationEvent} from '@angular/animations';\nimport {CommonModule} from '@angular/common';\nimport {DomHandler} from 'primeng/dom';\nimport {MenuItem} from 'primeng/api';\nimport {RouterModule} from '@angular/router';\n\n@Component({\n selector: '[pMenuItemContent]',\n template: `\n <a *ngIf=\"!item.routerLink\" [attr.href]=\"item.url||null\" class=\"ui-menuitem-link ui-corner-all\" [attr.tabindex]=\"item.tabindex ? item.tabindex : '0'\" [attr.data-automationid]=\"item.automationId\" [attr.target]=\"item.target\" [attr.title]=\"item.title\" [attr.id]=\"item.id\"\n [ngClass]=\"{'ui-state-disabled':item.disabled}\" (click)=\"menu.itemClick($event, item)\" role=\"menuitem\">\n <span class=\"ui-menuitem-icon\" *ngIf=\"item.icon\" [ngClass]=\"item.icon\"></span>\n <span class=\"ui-menuitem-text\">{{item.label}}</span>\n </a>\n <a *ngIf=\"item.routerLink\" [routerLink]=\"item.routerLink\" [attr.data-automationid]=\"item.automationId\" [queryParams]=\"item.queryParams\" [routerLinkActive]=\"'ui-menuitem-link-active'\"\n [routerLinkActiveOptions]=\"item.routerLinkActiveOptions||{exact:false}\" class=\"ui-menuitem-link ui-corner-all\" [attr.target]=\"item.target\" [attr.id]=\"item.id\" [attr.tabindex]=\"item.tabindex ? item.tabindex : '0'\" \n [attr.title]=\"item.title\" [ngClass]=\"{'ui-state-disabled':item.disabled}\" (click)=\"menu.itemClick($event, item)\" role=\"menuitem\"\n [fragment]=\"item.fragment\" [queryParamsHandling]=\"item.queryParamsHandling\" [preserveFragment]=\"item.preserveFragment\" [skipLocationChange]=\"item.skipLocationChange\" [replaceUrl]=\"item.replaceUrl\" [state]=\"item.state\">\n <span class=\"ui-menuitem-icon\" *ngIf=\"item.icon\" [ngClass]=\"item.icon\"></span>\n <span class=\"ui-menuitem-text\">{{item.label}}</span>\n </a>\n `\n})\nexport class MenuItemContent {\n\n @Input(\"pMenuItemContent\") item: MenuItem;\n\n menu: Menu;\n \n constructor(@Inject(forwardRef(() => Menu)) menu) {\n this.menu = menu as Menu;\n }\n}\n\n@Component({\n selector: 'p-menu',\n template: `\n <div #container [ngClass]=\"{'ui-menu ui-widget ui-widget-content ui-corner-all': true, 'ui-menu-dynamic ui-shadow': popup}\"\n [class]=\"styleClass\" [ngStyle]=\"style\" (click)=\"preventDocumentDefault=true\" *ngIf=\"!popup || visible\"\n [@overlayAnimation]=\"{value: 'visible', params: {showTransitionParams: showTransitionOptions, hideTransitionParams: hideTransitionOptions}}\" [@.disabled]=\"popup !== true\" (@overlayAnimation.start)=\"onOverlayAnimationStart($event)\">\n <ul>\n <ng-template ngFor let-submenu [ngForOf]=\"model\" *ngIf=\"hasSubMenu()\">\n <li class=\"ui-menu-separator ui-widget-content\" *ngIf=\"submenu.separator\" [ngClass]=\"{'ui-helper-hidden': submenu.visible === false}\"></li>\n <li class=\"ui-submenu-header ui-widget-header ui-corner-all\" [attr.data-automationid]=\"submenu.automationId\" *ngIf=\"!submenu.separator\" [ngClass]=\"{'ui-helper-hidden': submenu.visible === false}\">{{submenu.label}}</li>\n <ng-template ngFor let-item [ngForOf]=\"submenu.items\">\n <li class=\"ui-menu-separator ui-widget-content\" *ngIf=\"item.separator\" [ngClass]=\"{'ui-helper-hidden': (item.visible === false || submenu.visible === false)}\"></li>\n <li class=\"ui-menuitem ui-widget ui-corner-all\" *ngIf=\"!item.separator\" [pMenuItemContent]=\"item\" [ngClass]=\"{'ui-helper-hidden': (item.visible === false || submenu.visible === false)}\" [ngStyle]=\"item.style\" [class]=\"item.styleClass\"></li>\n </ng-template>\n </ng-template>\n <ng-template ngFor let-item [ngForOf]=\"model\" *ngIf=\"!hasSubMenu()\">\n <li class=\"ui-menu-separator ui-widget-content\" *ngIf=\"item.separator\" [ngClass]=\"{'ui-helper-hidden': item.visible === false}\"></li>\n <li class=\"ui-menuitem ui-widget ui-corner-all\" *ngIf=\"!item.separator\" [pMenuItemContent]=\"item\" [ngClass]=\"{'ui-helper-hidden': item.visible === false}\" [ngStyle]=\"item.style\" [class]=\"item.styleClass\"></li>\n </ng-template>\n </ul>\n </div>\n `,\n animations: [\n trigger('overlayAnimation', [\n state('void', style({\n transform: 'translateY(5%)',\n opacity: 0\n })),\n state('visible', style({\n transform: 'translateY(0)',\n opacity: 1\n })),\n transition('void => visible', animate('{{showTransitionParams}}')),\n transition('visible => void', animate('{{hideTransitionParams}}'))\n ])\n ],\n changeDetection: ChangeDetectionStrategy.Default\n})\nexport class Menu implements OnDestroy {\n\n @Input() model: MenuItem[];\n\n @Input() popup: boolean;\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() showTransitionOptions: string = '225ms ease-out';\n\n @Input() hideTransitionOptions: string = '195ms ease-in';\n\n @ViewChild('container') containerViewChild: ElementRef;\n\n @Output() onShow: EventEmitter<any> = new EventEmitter();\n \n @Output() onHide: EventEmitter<any> = new EventEmitter();\n \n container: HTMLDivElement;\n \n documentClickListener: any;\n\n documentResizeListener: any;\n \n preventDocumentDefault: boolean;\n\n target: any;\n\n visible: boolean;\n \n constructor(public el: ElementRef, public renderer: Renderer2,private cd: ChangeDetectorRef) {}\n\n toggle(event) {\n if (this.visible)\n this.hide();\n else\n this.show(event);\n\n this.preventDocumentDefault = true;\n }\n\n show(event) {\n this.target = event.currentTarget;\n this.visible = true;\n this.preventDocumentDefault = true;\n }\n\n onOverlayAnimationStart(event: AnimationEvent) {\n switch(event.toState) {\n case 'visible':\n if (this.popup) {\n this.container = event.element;\n this.moveOnTop();\n this.onShow.emit({});\n this.appendOverlay();\n DomHandler.absolutePosition(this.container, this.target);\n this.bindDocumentClickListener();\n this.bindDocumentResizeListener();\n }\n break;\n\n case 'void':\n this.onOverlayHide();\n this.onHide.emit({});\n break;\n }\n }\n\n appendOverlay() {\n if (this.appendTo) {\n if (this.appendTo === 'body')\n document.body.appendChild(this.container);\n else\n DomHandler.appendChild(this.container, this.appendTo);\n }\n }\n\n restoreOverlayAppend() {\n if (this.container && this.appendTo) {\n this.el.nativeElement.appendChild(this.container);\n }\n }\n \n moveOnTop() {\n if (this.autoZIndex) {\n this.container.style.zIndex = String(this.baseZIndex + (++DomHandler.zindex));\n }\n }\n \n hide() {\n this.visible = false;\n this.cd.detectChanges();\n }\n\n onWindowResize() {\n this.hide();\n }\n \n itemClick(event, item: MenuItem) {\n if (item.disabled) {\n event.preventDefault();\n return;\n }\n \n if (!item.url) {\n event.preventDefault();\n }\n \n if (item.command) {\n item.command({\n originalEvent: event,\n item: item\n });\n }\n \n if (this.popup) {\n this.hide();\n }\n }\n\n bindDocumentClickListener() {\n if (!this.documentClickListener) {\n this.documentClickListener = this.renderer.listen('document', 'click', () => {\n if (!this.preventDocumentDefault) {\n this.hide();\n }\n\n this.preventDocumentDefault = false;\n });\n }\n }\n\n unbindDocumentClickListener() {\n if (this.documentClickListener) {\n this.documentClickListener();\n this.documentClickListener = null;\n }\n }\n\n bindDocumentResizeListener() {\n this.documentResizeListener = this.onWindowResize.bind(this);\n window.addEventListener('resize', this.documentResizeListener);\n }\n \n unbindDocumentResizeListener() {\n if (this.documentResizeListener) {\n window.removeEventListener('resize', this.documentResizeListener);\n this.documentResizeListener = null;\n }\n }\n\n onOverlayHide() {\n this.unbindDocumentClickListener();\n this.unbindDocumentResizeListener();\n this.preventDocumentDefault = false;\n this.target = null;\n }\n \n ngOnDestroy() {\n if (this.popup) {\n this.restoreOverlayAppend();\n this.onOverlayHide();\n }\n }\n \n hasSubMenu(): boolean {\n if (this.model) {\n for (var item of this.model) {\n if (item.items) {\n return true;\n }\n }\n }\n return false;\n }\n}\n\n@NgModule({\n imports: [CommonModule,RouterModule],\n exports: [Menu,RouterModule],\n declarations: [Menu,MenuItemContent]\n})\nexport class MenuModule { }\n"],"names":["Inject","forwardRef","Input","Component","EventEmitter","DomHandler","ElementRef","Renderer2","ChangeDetectorRef","ViewChild","Output","trigger","state","style","transition","animate","ChangeDetectionStrategy","NgModule","CommonModule","RouterModule"],"mappings":"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"}
\No newline at end of file