{"version":3,"file":"primeng-menubar.umd.js","sources":["../../src/app/components/menubar/menubar.ts","../../src/app/components/menubar/primeng-menubar.ts"],"sourcesContent":["import { NgModule, Component, ElementRef, Input, Renderer2, OnDestroy,ChangeDetectorRef, ChangeDetectionStrategy, ViewEncapsulation, AfterContentInit, ContentChildren, QueryList, TemplateRef, ViewChild, Output, EventEmitter } from '@angular/core';\nimport { CommonModule } from '@angular/common';\nimport { DomHandler } from 'primeng/dom';\nimport { MenuItem, PrimeTemplate } from 'primeng/api';\nimport { RouterModule } from '@angular/router';\nimport { RippleModule } from 'primeng/ripple';  \n\n@Component({\n    selector: 'p-menubarSub',\n    template: `\n        <ul [ngClass]=\"{'p-submenu-list': !root, 'p-menubar-root-list': root}\" [attr.role]=\"root ? 'menubar' : 'menu'\">\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\" #listItem [ngClass]=\"{'p-menuitem':true, 'p-menuitem-active': child === activeItem, 'p-hidden': child.visible === false}\" [ngStyle]=\"child.style\" [class]=\"child.styleClass\" role=\"none\">\n                    <a *ngIf=\"!child.routerLink\" [attr.href]=\"child.url\" [attr.data-automationid]=\"child.automationId\" [attr.target]=\"child.target\" [attr.title]=\"child.title\" [attr.id]=\"child.id\" role=\"menuitem\"\n                        (click)=\"onItemClick($event, child)\" (mouseenter)=\"onItemMouseEnter($event,child)\" \n                         [ngClass]=\"{'p-menuitem-link':true,'p-disabled':child.disabled}\" [attr.tabindex]=\"child.disabled ? null : '0'\" [attr.aria-haspopup]=\"item.items != null\" [attr.aria-expanded]=\"item === activeItem\" pRipple>\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\" *ngIf=\"child.items\" [ngClass]=\"{'pi-angle-down':root,'pi-angle-right':!root}\"></span>\n                    </a>\n                    <a *ngIf=\"child.routerLink\" [routerLink]=\"child.routerLink\" [attr.data-automationid]=\"child.automationId\" [queryParams]=\"child.queryParams\" [routerLinkActive]=\"'p-menuitem-link-active'\" [routerLinkActiveOptions]=\"child.routerLinkActiveOptions||{exact:false}\"\n                        [attr.target]=\"child.target\" [attr.title]=\"child.title\" [attr.id]=\"child.id\" [attr.tabindex]=\"child.disabled ? null : '0'\" role=\"menuitem\"\n                        (click)=\"onItemClick($event, child)\" (mouseenter)=\"onItemMouseEnter($event,child)\" \n                        [ngClass]=\"{'p-menuitem-link':true,'p-disabled':child.disabled}\"\n                        [fragment]=\"child.fragment\" [queryParamsHandling]=\"child.queryParamsHandling\" [preserveFragment]=\"child.preserveFragment\" [skipLocationChange]=\"child.skipLocationChange\" [replaceUrl]=\"child.replaceUrl\" [state]=\"child.state\" pRipple>\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\" *ngIf=\"child.items\" [ngClass]=\"{'pi-angle-down':root,'pi-angle-right':!root}\"></span>\n                    </a>\n                    <p-menubarSub [parentActive]=\"child === activeItem\" [item]=\"child\" *ngIf=\"child.items\" [mobileActive]=\"mobileActive\" [autoDisplay]=\"autoDisplay\" (leafClick)=\"onLeafClick()\"></p-menubarSub>\n                </li>\n            </ng-template>\n        </ul>\n    `,\n    encapsulation: ViewEncapsulation.None\n})\nexport class MenubarSub implements OnDestroy {\n\n    @Input() item: MenuItem;\n\n    @Input() root: boolean;\n\n    @Input() autoZIndex: boolean = true;\n\n    @Input() baseZIndex: number = 0;\n\n    @Input() mobileActive: boolean;\n\n    @Input() autoDisplay: boolean;\n\n    @Input() get parentActive():boolean \n    {\n        return this._parentActive;\n    }\n    set parentActive(value) {\n        if (!this.root) {\n            this._parentActive = value;\n\n            if (!value)\n                this.activeItem = null;\n        }\n    }\n\n    @Output() leafClick: EventEmitter<any> = new EventEmitter();\n\n    _parentActive: boolean;\n\n    documentClickListener: any;\n\n    menuHoverActive: boolean = false;\n\n    activeItem: any;\n\n    constructor(public el: ElementRef, public renderer: Renderer2, private cd: ChangeDetectorRef) { }\n\n    onItemClick(event, item) {\n        if (item.disabled) {\n            event.preventDefault();\n            return;\n        }\n\n        if (!item.url && !item.routerLink) {\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) {\n            if (this.activeItem && item === this.activeItem) {\n                this.activeItem = null;\n                this.unbindDocumentClickListener();\n            }\n            else {\n                this.activeItem = item;\n                if (this.root) {\n                    this.bindDocumentClickListener();\n                }\n            }\n        }\n\n        if (!item.items) {\n            this.onLeafClick();\n        }\n    }\n\n    onItemMouseEnter(event, item) {\n        if (item.disabled || this.mobileActive) {\n            event.preventDefault();\n            return;\n        }\n\n        if (this.root) {\n            if (this.activeItem || this.autoDisplay) {\n                this.activeItem = item;\n                this.bindDocumentClickListener();\n            }\n        }\n        else {\n            this.activeItem = item;\n            this.bindDocumentClickListener();\n        }\n    }\n\n    onLeafClick() {\n        this.activeItem = null;\n        if (this.root) {\n            this.unbindDocumentClickListener();\n        }\n\n        this.leafClick.emit();\n    }\n\n    bindDocumentClickListener() {\n        if (!this.documentClickListener) {\n            this.documentClickListener = (event) => {\n                if (this.el && !this.el.nativeElement.contains(event.target)) {\n                    this.activeItem = null;\n                    this.cd.markForCheck();\n                    this.unbindDocumentClickListener();\n                }\n            };\n\n            document.addEventListener('click', this.documentClickListener);\n        }\n    }\n\n    unbindDocumentClickListener() {\n        if (this.documentClickListener) {\n            document.removeEventListener('click', this.documentClickListener);\n            this.documentClickListener = null;\n        }\n    }\n\n    ngOnDestroy() {\n        this.unbindDocumentClickListener();\n    }\n}\n\n@Component({\n    selector: 'p-menubar',\n    template: `\n        <div [ngClass]=\"{'p-menubar p-component':true, 'p-menubar-mobile-active': mobileActive}\" [class]=\"styleClass\" [ngStyle]=\"style\">\n            <div class=\"p-menubar-start\" *ngIf=\"startTemplate\">\n                <ng-container *ngTemplateOutlet=\"startTemplate\"></ng-container>\n            </div>\n            <a #menubutton tabindex=\"0\" class=\"p-menubar-button\" (click)=\"toggle($event)\">\n                <i class=\"pi pi-bars\"></i>\n            </a>\n            <p-menubarSub #rootmenu [item]=\"model\" root=\"root\" [baseZIndex]=\"baseZIndex\" (leafClick)=\"onLeafClick()\" [autoZIndex]=\"autoZIndex\" [mobileActive]=\"mobileActive\" [autoDisplay]=\"autoDisplay\"></p-menubarSub>\n            <div class=\"p-menubar-end\" *ngIf=\"endTemplate; else legacy\">\n                <ng-container *ngTemplateOutlet=\"endTemplate\"></ng-container>\n            </div>\n            <ng-template #legacy>\n                <div class=\"p-menubar-end\">\n                    <ng-content></ng-content>\n                </div>\n            </ng-template>\n        </div>\n    `,\n    changeDetection: ChangeDetectionStrategy.OnPush,\n    encapsulation: ViewEncapsulation.None,\n    styleUrls: ['./menubar.css']\n})\nexport class Menubar implements AfterContentInit, OnDestroy {\n\n    @Input() model: MenuItem[];\n\n    @Input() style: any;\n\n    @Input() styleClass: string;\n\n    @Input() autoZIndex: boolean = true;\n\n    @Input() baseZIndex: number = 0;\n\n    @Input() autoDisplay: boolean;\n\n    @ContentChildren(PrimeTemplate) templates: QueryList<any>;\n\n    @ViewChild('menubutton') menubutton: ElementRef;\n\n    @ViewChild('rootmenu') rootmenu: MenubarSub;\n\n    startTemplate: TemplateRef<any>;\n\n    endTemplate: TemplateRef<any>;\n\n    mobileActive: boolean;\n\n    outsideClickListener: any;\n\n    constructor(public el: ElementRef, public renderer: Renderer2, public cd: ChangeDetectorRef) { }\n\n    ngAfterContentInit() {\n        this.templates.forEach((item) => {\n            switch(item.getType()) {\n                case 'start':\n                    this.startTemplate = item.template;\n                break;\n\n                case 'end':\n                    this.endTemplate = item.template;\n                break;\n            }\n        });\n    }\n\n    toggle(event) {\n        this.mobileActive = !this.mobileActive;\n        let rootmenu = DomHandler.findSingle(this.el.nativeElement,\".p-menubar-root-list\")\n        rootmenu.style.zIndex = String(DomHandler.generateZIndex());\n        this.bindOutsideClickListener();\n        event.preventDefault();\n    }\n\n    bindOutsideClickListener() {\n        if (!this.outsideClickListener) {\n            this.outsideClickListener = (event) => {\n                if (this.mobileActive && this.rootmenu.el.nativeElement !== event.target && !this.rootmenu.el.nativeElement.contains(event.target)\n                    && this.menubutton.nativeElement !== event.target && !this.menubutton.nativeElement.contains(event.target)) {\n                    this.mobileActive = false;\n                    this.cd.markForCheck();\n                }\n            };\n            document.addEventListener('click', this.outsideClickListener);\n        }\n    }\n\n    onLeafClick() {\n        this.mobileActive = false;\n        this.unbindOutsideClickListener();\n    }\n\n    unbindOutsideClickListener() {\n        if (this.outsideClickListener) {\n            document.removeEventListener('click', this.outsideClickListener);\n            this.outsideClickListener = null;\n        }\n    }\n\n    ngOnDestroy() {\n        this.unbindOutsideClickListener();\n    }\n}\n\n@NgModule({\n    imports: [CommonModule,RouterModule,RippleModule],\n    exports: [Menubar,RouterModule],\n    declarations: [Menubar,MenubarSub]\n})\nexport class MenubarModule { }\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public_api';\n"],"names":["EventEmitter","Component","ViewEncapsulation","Input","Output","DomHandler","PrimeTemplate","ChangeDetectionStrategy","ContentChildren","ViewChild","CommonModule","RouterModule","RippleModule","NgModule"],"mappings":"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"}