UNPKG

14.8 kBSource Map (JSON)View Raw
1{"version":3,"sources":["ng://primeng/menu/menu.ts"],"names":["MenuItemContent","menu","this","Inject","args","forwardRef","Menu","__decorate","Input","Component","selector","template","__param","el","renderer","cd","autoZIndex","baseZIndex","showTransitionOptions","hideTransitionOptions","onShow","EventEmitter","onHide","prototype","toggle","event","visible","hide","show","preventDocumentDefault","target","currentTarget","onOverlayAnimationStart","toState","popup","container","element","moveOnTop","emit","appendOverlay","DomHandler","absolutePosition","bindDocumentClickListener","bindDocumentResizeListener","onOverlayHide","appendTo","document","body","appendChild","restoreOverlayAppend","nativeElement","style","zIndex","String","zindex","detectChanges","onWindowResize","itemClick","item","disabled","preventDefault","url","command","originalEvent","_this","documentClickListener","listen","unbindDocumentClickListener","documentResizeListener","bind","window","addEventListener","unbindDocumentResizeListener","removeEventListener","ngOnDestroy","hasSubMenu","model","_b","__values","_c","next","done","value","items","ElementRef","Renderer2","ChangeDetectorRef","ViewChild","Output","animations","trigger","state","transform","opacity","transition","animate","changeDetection","ChangeDetectionStrategy","Default","MenuModule","NgModule","imports","CommonModule","RouterModule","exports","declarations"],"mappings":"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","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"]}
\No newline at end of file