{"version":3,"file":"primeng-tieredmenu.umd.js","sources":["../../src/app/components/tieredmenu/tieredmenu.ts","../../src/app/components/tieredmenu/primeng-tieredmenu.ts"],"sourcesContent":["import { NgModule, Component, ElementRef, Input, Renderer2, OnDestroy,ChangeDetectorRef, ChangeDetectionStrategy, ViewEncapsulation, Output, EventEmitter } from '@angular/core';\nimport { CommonModule } from '@angular/common';\nimport { ConnectedOverlayScrollHandler, DomHandler } from 'primeng/dom';\nimport { MenuItem } from 'primeng/api';\nimport { RouterModule } from '@angular/router';\nimport { RippleModule } from 'primeng/ripple';  \nimport { animate, style, transition, trigger, AnimationEvent } from '@angular/animations';\n\n@Component({\n    selector: 'p-tieredMenuSub',\n    template: `\n        <ul [ngClass]=\"{'p-submenu-list': !root}\">\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}\">\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\">\n                    <a *ngIf=\"!child.routerLink\" (keydown)=\"onItemKeyDown($event, child)\" [attr.href]=\"child.url\" [attr.data-automationid]=\"child.automationId\" [attr.target]=\"child.target\" [attr.title]=\"child.title\" [attr.id]=\"child.id\" \n                         (click)=\"onItemClick($event, child)\" (mouseenter)=\"onItemMouseEnter($event,child)\" \n                         [ngClass]=\"{'p-menuitem-link':true,'p-disabled':child.disabled}\"\n                         [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 pi-angle-right\" *ngIf=\"child.items\"></span>\n                    </a>\n                    <a *ngIf=\"child.routerLink\" (keydown)=\"onItemKeyDown($event, child)\" [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)\"  [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 pi-angle-right\" *ngIf=\"child.items\"></span>\n                    </a>\n                    <p-tieredMenuSub (keydownItem)=\"onChildItemKeyDown($event)\" [parentActive]=\"child === activeItem\" [item]=\"child\" *ngIf=\"child.items\" [mobileActive]=\"mobileActive\" [autoDisplay]=\"autoDisplay\" (leafClick)=\"onLeafClick()\" [popup]=\"popup\"></p-tieredMenuSub>\n                </li>\n            </ng-template>\n        </ul>\n    `,\n    encapsulation: ViewEncapsulation.None\n})\nexport class TieredMenuSub implements OnDestroy {\n\n    @Input() item: MenuItem;\n\n    @Input() root: boolean;\n\n    @Input() autoDisplay: boolean;\n\n    @Input() autoZIndex: boolean = true;\n\n    @Input() baseZIndex: number = 0;\n\n    @Input() mobileActive: boolean;\n\n    @Input() popup: 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    @Output() keydownItem: 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 || this.popup) {\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    onItemKeyDown(event, item) {\n        let listItem = event.currentTarget.parentElement;\n\n        switch (event.key) {\n            case 'ArrowDown':\n                var nextItem = this.findNextItem(listItem);\n                if (nextItem) {\n                    nextItem.children[0].focus();\n                }\n\n                event.preventDefault();\n            break;\n\n            case 'ArrowUp':\n                var prevItem = this.findPrevItem(listItem);\n                if (prevItem) {\n                    prevItem.children[0].focus();\n                }\n\n                event.preventDefault();\n            break;\n\n            case 'ArrowRight':\n                if (item.items) {\n                    this.activeItem = item;\n\n                    if (this.root) {\n                        this.bindDocumentClickListener();\n                    }\n\n                    setTimeout(() => {\n                        listItem.children[1].children[0].children[0].children[0].focus();\n                    }, 50);\n                }\n\n                event.preventDefault();\n            break;\n\n            default:\n            break;\n        }\n\n        this.keydownItem.emit({\n            originalEvent: event,\n            element: listItem\n        });\n    }\n\n    findNextItem(item) {\n        let nextItem = item.nextElementSibling;\n\n        if (nextItem)\n            return DomHandler.hasClass(nextItem, 'p-disabled') || !DomHandler.hasClass(nextItem, 'p-menuitem') ? this.findNextItem(nextItem) : nextItem;\n        else\n            return null;\n    }\n\n    findPrevItem(item) {\n        let prevItem = item.previousElementSibling;\n\n        if (prevItem)\n            return DomHandler.hasClass(prevItem, 'p-disabled') || !DomHandler.hasClass(prevItem, 'p-menuitem') ? this.findPrevItem(prevItem) : prevItem;\n        else\n            return null;\n    }\n\n    onChildItemKeyDown(event) {\n        if (event.originalEvent.key === 'ArrowLeft') {\n            this.activeItem = null;\n\n            if (this.root) {\n                this.unbindDocumentClickListener();\n            }\n\n            event.element.parentElement.parentElement.parentElement.children[0].focus();\n        }\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-tieredMenu',\n    template: `\n        <div [ngClass]=\"{'p-tieredmenu p-component':true, 'p-tieredmenu-overlay':popup}\" [class]=\"styleClass\" [ngStyle]=\"style\"\n            [@overlayAnimation]=\"{value: 'visible', params: {showTransitionParams: showTransitionOptions, hideTransitionParams: hideTransitionOptions}}\" [@.disabled]=\"popup !== true\"\n            (@overlayAnimation.start)=\"onOverlayAnimationStart($event)\" (click)=\"preventDocumentDefault=true\" *ngIf=\"!popup || visible\">\n            <p-tieredMenuSub [item]=\"model\" root=\"root\" [parentActive]=\"parentActive\" [baseZIndex]=\"baseZIndex\" [autoZIndex]=\"autoZIndex\" (leafClick)=\"onLeafClick()\" \n                [autoDisplay]=\"autoDisplay\" [popup]=\"popup\"></p-tieredMenuSub>\n        </div>\n    `,\n    animations: [\n        trigger('overlayAnimation', [\n            transition(':enter', [\n                style({opacity: 0, transform: 'scaleY(0.8)'}),\n                animate('{{showTransitionParams}}')\n              ]),\n              transition(':leave', [\n                animate('{{hideTransitionParams}}', style({ opacity: 0 }))\n              ])\n        ])\n    ],\n    changeDetection: ChangeDetectionStrategy.OnPush,\n    encapsulation: ViewEncapsulation.None,\n    styleUrls: ['./tieredmenu.css']\n})\nexport class TieredMenu 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() autoDisplay: boolean;\n\n    @Input() showTransitionOptions: string = '.12s cubic-bezier(0, 0, 0.2, 1)';\n\n    @Input() hideTransitionOptions: string = '.1s linear';\n\n    parentActive: boolean;\n\n    container: HTMLDivElement;\n\n    documentClickListener: any;\n\n    documentResizeListener: any;\n\n    preventDocumentDefault: boolean;\n\n    scrollHandler: any;\n\n    target: any;\n\n    visible: boolean;\n\n    constructor(public el: ElementRef, public renderer: Renderer2, public 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.parentActive = true;\n        this.preventDocumentDefault = true;\n        this.cd.markForCheck();\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.appendOverlay();\n                    DomHandler.absolutePosition(this.container, this.target);\n                    this.bindDocumentClickListener();\n                    this.bindDocumentResizeListener();\n                    this.bindScrollListener();\n                }\n            break;\n\n            case 'void':\n                this.onOverlayHide();\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.parentActive = false;\n        this.cd.markForCheck();\n    }\n\n    onWindowResize() {\n        this.hide();\n    }\n\n    onLeafClick() {\n        if (this.popup) {\n            this.hide();\n        }\n\n        this.unbindDocumentClickListener();\n    }\n\n    bindDocumentClickListener() {\n        if (!this.documentClickListener) {\n            const documentTarget: any = this.el ? this.el.nativeElement.ownerDocument : 'document';\n\n            this.documentClickListener = this.renderer.listen(documentTarget, 'click', () => {\n                if (!this.preventDocumentDefault && this.popup) {\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    bindScrollListener() {\n        if (!this.scrollHandler) {\n            this.scrollHandler = new ConnectedOverlayScrollHandler(this.target, () => {\n                if (this.visible) {\n                    this.hide();\n                }\n            });\n        }\n\n        this.scrollHandler.bindScrollListener();\n    }\n\n    unbindScrollListener() {\n        if (this.scrollHandler) {\n            this.scrollHandler.unbindScrollListener();\n        }\n    }\n\n    onOverlayHide() {\n        this.unbindDocumentClickListener();\n        this.unbindDocumentResizeListener();\n        this.unbindScrollListener();\n        this.preventDocumentDefault = false;\n        this.target = null;\n    }\n\n    ngOnDestroy() {\n        if (this.popup) {\n            if (this.scrollHandler) {\n                this.scrollHandler.destroy();\n                this.scrollHandler = null;\n            }\n\n            this.restoreOverlayAppend();\n            this.onOverlayHide();\n        }\n    }\n\n}\n\n@NgModule({\n    imports: [CommonModule,RouterModule,RippleModule],\n    exports: [TieredMenu,RouterModule],\n    declarations: [TieredMenu,TieredMenuSub]\n})\nexport class TieredMenuModule { }\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public_api';\n"],"names":["EventEmitter","DomHandler","Component","ViewEncapsulation","Input","Output","ConnectedOverlayScrollHandler","trigger","transition","style","animate","ChangeDetectionStrategy","CommonModule","RouterModule","RippleModule","NgModule"],"mappings":"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"}