primeng
Version:
[](https://opensource.org/licenses/MIT) [](https://badge.fury.io/js/primeng) [{"object"==typeof exports&&"undefined"!=typeof module?t(exports,require("@angular/core"),require("@angular/animations"),require("@angular/common"),require("primeng/dom"),require("@angular/router")):"function"==typeof define&&define.amd?define("primeng/menu",["exports","@angular/core","@angular/animations","@angular/common","primeng/dom","@angular/router"],t):t(((e=e||self).primeng=e.primeng||{},e.primeng.menu={}),e.ng.core,e.ng.animations,e.ng.common,e.primeng.dom,e.ng.router)}(this,(function(e,t,n,i,o,r){"use strict";var a=this&&this.__decorate||function(e,t,n,i){var o,r=arguments.length,a=r<3?t:null===i?i=Object.getOwnPropertyDescriptor(t,n):i;if("object"==typeof Reflect&&"function"==typeof Reflect.decorate)a=Reflect.decorate(e,t,n,i);else for(var s=e.length-1;s>=0;s--)(o=e[s])&&(a=(r<3?o(a):r>3?o(t,n,a):o(t,n))||a);return r>3&&a&&Object.defineProperty(t,n,a),a},s=this&&this.__param||function(e,t){return function(n,i){t(n,i,e)}},u=this&&this.__values||function(e){var t="function"==typeof Symbol&&Symbol.iterator,n=t&&e[t],i=0;if(n)return n.call(e);if(e&&"number"==typeof e.length)return{next:function(){return e&&i>=e.length&&(e=void 0),{value:e&&e[i++],done:!e}}};throw new TypeError(t?"Object is not iterable.":"Symbol.iterator is not defined.")},l=function(){function e(e){this.menu=e}return e.ctorParameters=function(){return[{type:void 0,decorators:[{type:t.Inject,args:[t.forwardRef((function(){return m}))]}]}]},a([t.Input("pMenuItemContent")],e.prototype,"item",void 0),e=a([t.Component({selector:"[pMenuItemContent]",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 '}),s(0,t.Inject(t.forwardRef((function(){return m}))))],e)}(),m=function(){function e(e,n,i){this.el=e,this.renderer=n,this.cd=i,this.autoZIndex=!0,this.baseZIndex=0,this.showTransitionOptions="225ms ease-out",this.hideTransitionOptions="195ms ease-in",this.onShow=new t.EventEmitter,this.onHide=new t.EventEmitter}return e.prototype.toggle=function(e){this.visible?this.hide():this.show(e),this.preventDocumentDefault=!0},e.prototype.show=function(e){this.target=e.currentTarget,this.visible=!0,this.preventDocumentDefault=!0},e.prototype.onOverlayAnimationStart=function(e){switch(e.toState){case"visible":this.popup&&(this.container=e.element,this.moveOnTop(),this.onShow.emit({}),this.appendOverlay(),o.DomHandler.absolutePosition(this.container,this.target),this.bindDocumentClickListener(),this.bindDocumentResizeListener());break;case"void":this.onOverlayHide(),this.onHide.emit({})}},e.prototype.appendOverlay=function(){this.appendTo&&("body"===this.appendTo?document.body.appendChild(this.container):o.DomHandler.appendChild(this.container,this.appendTo))},e.prototype.restoreOverlayAppend=function(){this.container&&this.appendTo&&this.el.nativeElement.appendChild(this.container)},e.prototype.moveOnTop=function(){this.autoZIndex&&(this.container.style.zIndex=String(this.baseZIndex+ ++o.DomHandler.zindex))},e.prototype.hide=function(){this.visible=!1,this.cd.detectChanges()},e.prototype.onWindowResize=function(){this.hide()},e.prototype.itemClick=function(e,t){t.disabled?e.preventDefault():(t.url||e.preventDefault(),t.command&&t.command({originalEvent:e,item:t}),this.popup&&this.hide())},e.prototype.bindDocumentClickListener=function(){var e=this;this.documentClickListener||(this.documentClickListener=this.renderer.listen("document","click",(function(){e.preventDocumentDefault||e.hide(),e.preventDocumentDefault=!1})))},e.prototype.unbindDocumentClickListener=function(){this.documentClickListener&&(this.documentClickListener(),this.documentClickListener=null)},e.prototype.bindDocumentResizeListener=function(){this.documentResizeListener=this.onWindowResize.bind(this),window.addEventListener("resize",this.documentResizeListener)},e.prototype.unbindDocumentResizeListener=function(){this.documentResizeListener&&(window.removeEventListener("resize",this.documentResizeListener),this.documentResizeListener=null)},e.prototype.onOverlayHide=function(){this.unbindDocumentClickListener(),this.unbindDocumentResizeListener(),this.preventDocumentDefault=!1,this.target=null},e.prototype.ngOnDestroy=function(){this.popup&&(this.restoreOverlayAppend(),this.onOverlayHide())},e.prototype.hasSubMenu=function(){var e,t;if(this.model)try{for(var n=u(this.model),i=n.next();!i.done;i=n.next()){if(i.value.items)return!0}}catch(t){e={error:t}}finally{try{i&&!i.done&&(t=n.return)&&t.call(n)}finally{if(e)throw e.error}}return!1},e.ctorParameters=function(){return[{type:t.ElementRef},{type:t.Renderer2},{type:t.ChangeDetectorRef}]},a([t.Input()],e.prototype,"model",void 0),a([t.Input()],e.prototype,"popup",void 0),a([t.Input()],e.prototype,"style",void 0),a([t.Input()],e.prototype,"styleClass",void 0),a([t.Input()],e.prototype,"appendTo",void 0),a([t.Input()],e.prototype,"autoZIndex",void 0),a([t.Input()],e.prototype,"baseZIndex",void 0),a([t.Input()],e.prototype,"showTransitionOptions",void 0),a([t.Input()],e.prototype,"hideTransitionOptions",void 0),a([t.ViewChild("container")],e.prototype,"containerViewChild",void 0),a([t.Output()],e.prototype,"onShow",void 0),a([t.Output()],e.prototype,"onHide",void 0),e=a([t.Component({selector:"p-menu",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 ',animations:[n.trigger("overlayAnimation",[n.state("void",n.style({transform:"translateY(5%)",opacity:0})),n.state("visible",n.style({transform:"translateY(0)",opacity:1})),n.transition("void => visible",n.animate("{{showTransitionParams}}")),n.transition("visible => void",n.animate("{{hideTransitionParams}}"))])],changeDetection:t.ChangeDetectionStrategy.Default})],e)}(),p=function(){function e(){}return e=a([t.NgModule({imports:[i.CommonModule,r.RouterModule],exports:[m,r.RouterModule],declarations:[m,l]})],e)}();e.Menu=m,e.MenuItemContent=l,e.MenuModule=p,Object.defineProperty(e,"__esModule",{value:!0})}));
//# sourceMappingURL=primeng-menu.umd.min.js.map