UNPKG

19 kBSource Map (JSON)View Raw
1{"version":3,"sources":["ng://primeng/slidemenu/slidemenu.ts"],"names":["SlideMenuSub","slideMenu","this","backLabel","easing","prototype","itemClick","event","item","listitem","_this","disabled","preventDefault","url","command","originalEvent","items","animating","left","menuWidth","activeItem","setTimeout","effectDuration","popup","hide","ngOnDestroy","Inject","args","forwardRef","SlideMenu","__decorate","Input","Component","selector","template","__param","el","renderer","cd","viewportHeight","autoZIndex","baseZIndex","showTransitionOptions","hideTransitionOptions","onShow","EventEmitter","onHide","ngAfterViewChecked","viewportUpdated","containerViewChild","updateViewPort","Object","defineProperty","element","backwardViewChild","slideMenuContentViewChild","nativeElement","style","height","DomHandler","getHiddenElementOuterHeight","toggle","visible","show","preventDocumentDefault","detectChanges","target","currentTarget","onOverlayAnimationStart","toState","moveOnTop","emit","appendOverlay","absolutePosition","bindDocumentClickListener","bindDocumentResizeListener","onOverlayHide","appendTo","document","body","appendChild","restoreOverlayAppend","container","zIndex","String","zindex","onWindowResize","onClick","goBack","documentClickListener","listen","unbindDocumentClickListener","documentResizeListener","bind","window","addEventListener","unbindDocumentResizeListener","removeEventListener","ElementRef","Renderer2","ChangeDetectorRef","Output","ViewChild","animations","trigger","state","transform","opacity","transition","animate","changeDetection","ChangeDetectionStrategy","Default","SlideMenuModule","NgModule","imports","CommonModule","RouterModule","exports","declarations"],"mappings":"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","sourcesContent":["import {NgModule,Component,ElementRef,AfterViewChecked,OnDestroy,Input,Renderer2,Inject,forwardRef,ViewChild,Output,EventEmitter,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: 'p-slideMenuSub',\n template: `\n <ul [ngClass]=\"{'ui-slidemenu-rootlist':root, 'ui-submenu-list':!root, 'ui-active-submenu': (-slideMenu.left == (index * menuWidth))}\"\n [style.width.px]=\"menuWidth\" [style.left.px]=\"root ? slideMenu.left : slideMenu.menuWidth\"\n [style.transitionProperty]=\"root ? 'left' : 'none'\" [style.transitionDuration]=\"effectDuration + 'ms'\" [style.transitionTimingFunction]=\"easing\">\n <ng-template ngFor let-child [ngForOf]=\"(root ? item : item.items)\">\n <li *ngIf=\"child.separator\" class=\"ui-menu-separator ui-widget-content\" [ngClass]=\"{'ui-helper-hidden': child.visible === false}\">\n <li *ngIf=\"!child.separator\" #listitem [ngClass]=\"{'ui-menuitem ui-widget ui-corner-all':true,'ui-menuitem-active':listitem==activeItem,'ui-helper-hidden': child.visible === false}\"\n [class]=\"child.styleClass\" [ngStyle]=\"child.style\">\n <a *ngIf=\"!child.routerLink\" [href]=\"child.url||'#'\" class=\"ui-menuitem-link ui-corner-all\" [attr.target]=\"child.target\" [attr.title]=\"child.title\" [attr.id]=\"child.id\"\n [ngClass]=\"{'ui-state-disabled':child.disabled}\" [attr.tabindex]=\"child.tabindex ? child.tabindex : '0'\" \n (click)=\"itemClick($event, child, listitem)\">\n <span class=\"ui-menuitem-icon\" *ngIf=\"child.icon\" [ngClass]=\"child.icon\"></span>\n <span class=\"ui-menuitem-text\">{{child.label}}</span>\n <span class=\"ui-submenu-icon pi pi-fw pi-caret-right\" *ngIf=\"child.items\"></span>\n </a>\n <a *ngIf=\"child.routerLink\" [routerLink]=\"child.routerLink\" [queryParams]=\"child.queryParams\" [routerLinkActive]=\"'ui-menuitem-link-active'\" \n [routerLinkActiveOptions]=\"child.routerLinkActiveOptions||{exact:false}\" [href]=\"child.url||'#'\" class=\"ui-menuitem-link ui-corner-all\" \n [attr.target]=\"child.target\" [attr.title]=\"child.title\" [attr.id]=\"child.id\" [attr.tabindex]=\"child.tabindex ? child.tabindex : '0'\" \n [ngClass]=\"{'ui-state-disabled':child.disabled}\" \n (click)=\"itemClick($event, child, listitem)\"\n [fragment]=\"child.fragment\" [queryParamsHandling]=\"child.queryParamsHandling\" [preserveFragment]=\"child.preserveFragment\" [skipLocationChange]=\"child.skipLocationChange\" [replaceUrl]=\"child.replaceUrl\" [state]=\"child.state\">\n <span class=\"ui-menuitem-icon\" *ngIf=\"child.icon\" [ngClass]=\"child.icon\"></span>\n <span class=\"ui-menuitem-text\">{{child.label}}</span>\n <span class=\"ui-submenu-icon pi pi-fw pi-caret-right\" *ngIf=\"child.items\"></span>\n </a>\n <p-slideMenuSub class=\"ui-submenu\" [item]=\"child\" [index]=\"index + 1\" [menuWidth]=\"menuWidth\" *ngIf=\"child.items\"></p-slideMenuSub>\n </li>\n </ng-template>\n </ul>\n `\n})\nexport class SlideMenuSub implements OnDestroy {\n\n @Input() item: MenuItem;\n \n @Input() root: boolean;\n \n @Input() backLabel: string = 'Back';\n \n @Input() menuWidth: number;\n \n @Input() effectDuration: any;\n \n @Input() easing: string = 'ease-out';\n\n @Input() index: number;\n\n slideMenu: SlideMenu;\n \n constructor(@Inject(forwardRef(() => SlideMenu)) slideMenu) {\n this.slideMenu = slideMenu as SlideMenu;\n }\n \n activeItem: any;\n \n itemClick(event, item: MenuItem, listitem: any) {\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 (item.items && !this.slideMenu.animating) {\n this.slideMenu.left -= this.slideMenu.menuWidth;\n \n this.activeItem = listitem;\n this.slideMenu.animating = true;\n setTimeout(() => this.slideMenu.animating = false, this.effectDuration);\n }\n\n if (!item.items && this.slideMenu.popup) {\n this.slideMenu.hide();\n }\n }\n \n ngOnDestroy() {\n this.activeItem = null;\n }\n}\n\n@Component({\n selector: 'p-slideMenu',\n template: `\n <div #container [ngClass]=\"{'ui-slidemenu ui-widget ui-widget-content ui-corner-all':true, 'ui-slidemenu-dynamic ui-shadow':popup}\" \n [class]=\"styleClass\" [ngStyle]=\"style\" (click)=\"onClick($event)\"\n [@overlayAnimation]=\"{value: 'visible', params: {showTransitionParams: showTransitionOptions, hideTransitionParams: hideTransitionOptions}}\" [@.disabled]=\"popup !== true\" (@overlayAnimation.start)=\"onOverlayAnimationStart($event)\" *ngIf=\"!popup || visible\">\n <div class=\"ui-slidemenu-wrapper\" [style.height]=\"left ? viewportHeight + 'px' : 'auto'\">\n <div #slideMenuContent class=\"ui-slidemenu-content\">\n <p-slideMenuSub [item]=\"model\" root=\"root\" [index]=\"0\" [menuWidth]=\"menuWidth\" [effectDuration]=\"effectDuration\" [easing]=\"easing\"></p-slideMenuSub>\n </div>\n <div #backward class=\"ui-slidemenu-backward ui-widget-header ui-corner-all\" [style.display]=\"left ? 'block' : 'none'\" (click)=\"goBack()\">\n <span class=\"ui-slidemenu-backward-icon pi pi-fw pi-caret-left\"></span><span>{{backLabel}}</span>\n </div>\n </div>\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 SlideMenu implements AfterViewChecked, OnDestroy {\n\n @Input() model: MenuItem[];\n\n @Input() popup: boolean;\n\n @Input() style: any;\n\n @Input() styleClass: string;\n \n @Input() menuWidth: number = 190;\n \n @Input() viewportHeight: number = 180;\n \n @Input() effectDuration: any = 250;\n \n @Input() easing: string = 'ease-out';\n \n @Input() backLabel: string = 'Back';\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 @Output() onShow: EventEmitter<any> = new EventEmitter();\n\n @Output() onHide: EventEmitter<any> = new EventEmitter();\n\n containerViewChild: ElementRef;\n \n backwardViewChild: ElementRef;\n \n slideMenuContentViewChild: ElementRef;\n \n documentClickListener: any;\n\n documentResizeListener: any;\n \n preventDocumentDefault: boolean;\n \n left: number = 0;\n \n animating: boolean = false;\n \n target: any;\n\n visible: boolean;\n\n viewportUpdated: boolean;\n\n constructor(public el: ElementRef, public renderer: Renderer2, private cd: ChangeDetectorRef) {}\n\n ngAfterViewChecked() {\n if (!this.viewportUpdated && !this.popup && this.containerViewChild) {\n this.updateViewPort();\n this.viewportUpdated = true;\n }\n }\n\n @ViewChild('container') set container(element: ElementRef) {\n this.containerViewChild = element;\n }\n\n @ViewChild('backward') set backward(element: ElementRef) {\n this.backwardViewChild = element;\n }\n\n @ViewChild('slideMenuContent') set slideMenuContent(element: ElementRef) {\n this.slideMenuContentViewChild = element;\n }\n\n updateViewPort() {\n this.slideMenuContentViewChild.nativeElement.style.height = this.viewportHeight - DomHandler.getHiddenElementOuterHeight(this.backwardViewChild.nativeElement) + 'px';\n }\n \n toggle(event) {\n if (this.visible)\n this.hide();\n else\n this.show(event);\n\n this.preventDocumentDefault = true;\n this.cd.detectChanges();\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.updateViewPort();\n this.moveOnTop();\n this.onShow.emit({});\n this.appendOverlay();\n DomHandler.absolutePosition(this.containerViewChild.nativeElement, 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.containerViewChild.nativeElement);\n else\n DomHandler.appendChild(this.containerViewChild.nativeElement, this.appendTo);\n }\n }\n\n restoreOverlayAppend() {\n if (this.container && this.appendTo) {\n this.el.nativeElement.appendChild(this.containerViewChild.nativeElement);\n }\n }\n \n moveOnTop() {\n if (this.autoZIndex) {\n this.containerViewChild.nativeElement.style.zIndex = String(this.baseZIndex + (++DomHandler.zindex));\n }\n }\n\n hide() {\n this.visible = false;\n }\n\n onWindowResize() {\n this.hide();\n }\n \n onClick(event) {\n this.preventDocumentDefault = true;\n }\n \n goBack() {\n this.left += this.menuWidth;\n }\n\n bindDocumentClickListener() {\n if (!this.documentClickListener) {\n this.documentClickListener = this.renderer.listen('document', 'click', () => {\n if (!this.preventDocumentDefault) {\n this.hide();\n this.cd.detectChanges();\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 this.left = 0;\n }\n \n ngOnDestroy() {\n if (this.popup) {\n this.restoreOverlayAppend();\n this.onOverlayHide();\n }\n }\n\n}\n\n@NgModule({\n imports: [CommonModule,RouterModule],\n exports: [SlideMenu,RouterModule],\n declarations: [SlideMenu,SlideMenuSub]\n})\nexport class SlideMenuModule { }\n"]}
\No newline at end of file