{"version":3,"file":"primeng-styleclass.mjs","sources":["../../src/app/components/styleclass/styleclass.ts","../../src/app/components/styleclass/primeng-styleclass.ts"],"sourcesContent":["import { CommonModule } from '@angular/common';\nimport { NgModule, Directive, ElementRef, Input, Renderer2, OnDestroy, AfterViewInit } from '@angular/core';\nimport { DomHandler } from 'primeng/dom';\n\n@Directive({\n    selector: '[pStyleClass]',\n    host: {\n        class: 'p-element'\n    }\n})\nexport class StyleClass implements AfterViewInit, OnDestroy {\n    constructor(public el: ElementRef, public renderer: Renderer2) {}\n\n    @Input('pStyleClass') selector: string;\n\n    @Input() enterClass: string;\n\n    @Input() enterActiveClass: string;\n\n    @Input() enterToClass: string;\n\n    @Input() leaveClass: string;\n\n    @Input() leaveActiveClass: string;\n\n    @Input() leaveToClass: string;\n\n    @Input() hideOnOutsideClick: boolean;\n\n    @Input() toggleClass: string;\n\n    eventListener: Function;\n\n    documentListener: Function;\n\n    target: HTMLElement;\n\n    enterListener: Function;\n\n    leaveListener: Function;\n\n    animating: boolean;\n\n    ngAfterViewInit() {\n        this.eventListener = this.renderer.listen(this.el.nativeElement, 'click', () => {\n            this.target = this.resolveTarget();\n\n            if (this.toggleClass) {\n                if (DomHandler.hasClass(this.target, this.toggleClass)) DomHandler.removeClass(this.target, this.toggleClass);\n                else DomHandler.addClass(this.target, this.toggleClass);\n            } else {\n                if (this.target.offsetParent === null) this.enter();\n                else this.leave();\n            }\n        });\n    }\n\n    enter() {\n        if (this.enterActiveClass) {\n            if (!this.animating) {\n                this.animating = true;\n\n                if (this.enterActiveClass === 'slidedown') {\n                    this.target.style.height = '0px';\n                    DomHandler.removeClass(this.target, 'hidden');\n                    this.target.style.maxHeight = this.target.scrollHeight + 'px';\n                    DomHandler.addClass(this.target, 'hidden');\n                    this.target.style.height = '';\n                }\n\n                DomHandler.addClass(this.target, this.enterActiveClass);\n                if (this.enterClass) {\n                    DomHandler.removeClass(this.target, this.enterClass);\n                }\n\n                this.enterListener = this.renderer.listen(this.target, 'animationend', () => {\n                    DomHandler.removeClass(this.target, this.enterActiveClass);\n                    if (this.enterToClass) {\n                        DomHandler.addClass(this.target, this.enterToClass);\n                    }\n                    this.enterListener();\n\n                    if (this.enterActiveClass === 'slidedown') {\n                        this.target.style.maxHeight = '';\n                    }\n                    this.animating = false;\n                });\n            }\n        } else {\n            if (this.enterClass) {\n                DomHandler.removeClass(this.target, this.enterClass);\n            }\n\n            if (this.enterToClass) {\n                DomHandler.addClass(this.target, this.enterToClass);\n            }\n        }\n\n        if (this.hideOnOutsideClick) {\n            this.bindDocumentListener();\n        }\n    }\n\n    leave() {\n        if (this.leaveActiveClass) {\n            if (!this.animating) {\n                this.animating = true;\n                DomHandler.addClass(this.target, this.leaveActiveClass);\n                if (this.leaveClass) {\n                    DomHandler.removeClass(this.target, this.leaveClass);\n                }\n\n                this.leaveListener = this.renderer.listen(this.target, 'animationend', () => {\n                    DomHandler.removeClass(this.target, this.leaveActiveClass);\n                    if (this.leaveToClass) {\n                        DomHandler.addClass(this.target, this.leaveToClass);\n                    }\n                    this.leaveListener();\n                    this.animating = false;\n                });\n            }\n        } else {\n            if (this.leaveClass) {\n                DomHandler.removeClass(this.target, this.leaveClass);\n            }\n\n            if (this.leaveToClass) {\n                DomHandler.addClass(this.target, this.leaveToClass);\n            }\n        }\n\n        if (this.hideOnOutsideClick) {\n            this.unbindDocumentListener();\n        }\n    }\n\n    resolveTarget() {\n        if (this.target) {\n            return this.target;\n        }\n\n        switch (this.selector) {\n            case '@next':\n                return this.el.nativeElement.nextElementSibling;\n\n            case '@prev':\n                return this.el.nativeElement.previousElementSibling;\n\n            case '@parent':\n                return this.el.nativeElement.parentElement;\n\n            case '@grandparent':\n                return this.el.nativeElement.parentElement.parentElement;\n\n            default:\n                return document.querySelector(this.selector);\n        }\n    }\n\n    bindDocumentListener() {\n        if (!this.documentListener) {\n            this.documentListener = this.renderer.listen(this.el.nativeElement.ownerDocument, 'click', (event) => {\n                if (!this.isVisible() || getComputedStyle(this.target).getPropertyValue('position') === 'static') this.unbindDocumentListener();\n                else if (this.isOutsideClick(event)) this.leave();\n            });\n        }\n    }\n\n    isVisible() {\n        return this.target.offsetParent !== null;\n    }\n\n    isOutsideClick(event: MouseEvent) {\n        return !this.el.nativeElement.isSameNode(event.target) && !this.el.nativeElement.contains(event.target) && !this.target.contains(<HTMLElement>event.target);\n    }\n\n    unbindDocumentListener() {\n        if (this.documentListener) {\n            this.documentListener();\n            this.documentListener = null;\n        }\n    }\n\n    ngOnDestroy() {\n        this.target = null;\n        if (this.eventListener) {\n            this.eventListener();\n        }\n        this.unbindDocumentListener();\n    }\n}\n\n@NgModule({\n    imports: [CommonModule],\n    exports: [StyleClass],\n    declarations: [StyleClass]\n})\nexport class StyleClassModule {}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public_api';\n"],"names":[],"mappings":"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"}