{"version":3,"file":"primeng-styleclass.mjs","sources":["../../src/styleclass/styleclass.ts","../../src/styleclass/primeng-styleclass.ts"],"sourcesContent":["import { booleanAttribute, Directive, ElementRef, HostListener, Input, NgModule, NgZone, OnDestroy, Renderer2 } from '@angular/core';\nimport { addClass, hasClass, removeClass } from '@primeuix/utils';\nimport { VoidListener } from 'primeng/ts-helpers';\n\n/**\n * StyleClass manages css classes declaratively to during enter/leave animations or just to toggle classes on an element.\n * @group Components\n */\n@Directive({\n    selector: '[pStyleClass]',\n    standalone: true\n})\nexport class StyleClass implements OnDestroy {\n    constructor(\n        public el: ElementRef,\n        public renderer: Renderer2,\n        private zone: NgZone\n    ) {}\n    /**\n     * Selector to define the target element. Available selectors are '@next', '@prev', '@parent' and '@grandparent'.\n     * @group Props\n     */\n    @Input('pStyleClass') selector: string | undefined;\n    /**\n     * Style class to add when item begins to get displayed.\n     * @group Props\n     * @deprecated Use enterFromClass instead\n     */\n    @Input() set enterClass(value: string) {\n        this._enterClass = value;\n        console.log('enterClass is deprecated, use enterFromClass instead');\n    }\n    get enterClass() {\n        return this._enterClass;\n    }\n    /**\n     * Style class to add when item begins to get displayed.\n     * @group Props\n     */\n    @Input() enterFromClass: string | undefined;\n    /**\n     * Style class to add during enter animation.\n     * @group Props\n     */\n    @Input() enterActiveClass: string | undefined;\n    /**\n     * Style class to add when item begins to get displayed.\n     * @group Props\n     */\n    @Input() enterToClass: string | undefined;\n    /**\n     * Style class to add when item begins to get hidden.\n     * @group Props\n     * @deprecated Use leaveFromClass instead\n     */\n    @Input() set leaveClass(value: string) {\n        this._leaveClass = value;\n        console.log('leaveClass is deprecated, use leaveFromClass instead');\n    }\n    get leaveClass() {\n        return this._leaveClass;\n    }\n    /**\n     * Style class to add when item begins to get hidden.\n     * @group Props\n     */\n    @Input() leaveFromClass: string | undefined;\n    /**\n     * Style class to add during leave animation.\n     * @group Props\n     */\n    @Input() leaveActiveClass: string | undefined;\n    /**\n     * Style class to add when leave animation is completed.\n     * @group Props\n     */\n    @Input() leaveToClass: string | undefined;\n    /**\n     * Whether to trigger leave animation when outside of the element is clicked.\n     * @group Props\n     */\n    @Input({ transform: booleanAttribute }) hideOnOutsideClick: boolean | undefined;\n    /**\n     * Adds or removes a class when no enter-leave animation is required.\n     * @group Props\n     */\n    @Input() toggleClass: string | undefined;\n    /**\n     * Whether to trigger leave animation when escape key pressed.\n     * @group Props\n     */\n    @Input({ transform: booleanAttribute }) hideOnEscape: boolean | undefined;\n\n    eventListener: VoidListener;\n\n    documentClickListener: VoidListener;\n\n    documentKeydownListener: VoidListener;\n\n    target: HTMLElement | null | undefined;\n\n    enterListener: VoidListener;\n\n    leaveListener: VoidListener;\n\n    animating: boolean | undefined;\n\n    _enterClass: string | undefined;\n\n    _leaveClass: string | undefined;\n\n    @HostListener('click', ['$event'])\n    clickListener() {\n        this.target = this.resolveTarget();\n\n        if (this.toggleClass) {\n            this.toggle();\n        } else {\n            if ((this.target as HTMLElement)?.offsetParent === null) this.enter();\n            else this.leave();\n        }\n    }\n\n    toggle() {\n        if (hasClass(this.target, this.toggleClass as string)) removeClass(this.target, this.toggleClass as string);\n        else addClass(this.target, this.toggleClass as string);\n    }\n\n    enter() {\n        if (this.enterActiveClass) {\n            if (!this.animating) {\n                this.animating = true;\n\n                if (this.enterActiveClass === 'animate-slidedown') {\n                    (this.target as HTMLElement).style.height = '0px';\n                    removeClass(this.target, 'hidden');\n                    (this.target as HTMLElement).style.maxHeight = (this.target as HTMLElement).scrollHeight + 'px';\n                    addClass(this.target, 'hidden');\n                    (this.target as HTMLElement).style.height = '';\n                }\n\n                addClass(this.target, this.enterActiveClass);\n                if (this.enterClass || this.enterFromClass) {\n                    removeClass(this.target, this.enterClass || this.enterFromClass);\n                }\n\n                this.enterListener = this.renderer.listen(this.target, 'animationend', () => {\n                    removeClass(this.target, this.enterActiveClass as string);\n                    if (this.enterToClass) {\n                        addClass(this.target, this.enterToClass);\n                    }\n                    this.enterListener && this.enterListener();\n\n                    if (this.enterActiveClass === 'animate-slidedown') {\n                        (this.target as HTMLElement).style.maxHeight = '';\n                    }\n                    this.animating = false;\n                });\n            }\n        } else {\n            if (this.enterClass || this.enterFromClass) {\n                removeClass(this.target, this.enterClass || this.enterFromClass);\n            }\n\n            if (this.enterToClass) {\n                addClass(this.target, this.enterToClass);\n            }\n        }\n\n        if (this.hideOnOutsideClick) {\n            this.bindDocumentClickListener();\n        }\n\n        if (this.hideOnEscape) {\n            this.bindDocumentKeydownListener();\n        }\n    }\n\n    leave() {\n        if (this.leaveActiveClass) {\n            if (!this.animating) {\n                this.animating = true;\n                addClass(this.target, this.leaveActiveClass);\n                if (this.leaveClass || this.leaveFromClass) {\n                    removeClass(this.target, this.leaveClass || this.leaveFromClass);\n                }\n\n                this.leaveListener = this.renderer.listen(this.target, 'animationend', () => {\n                    removeClass(this.target, this.leaveActiveClass as string);\n                    if (this.leaveToClass) {\n                        addClass(this.target, this.leaveToClass);\n                    }\n                    this.leaveListener && this.leaveListener();\n                    this.animating = false;\n                });\n            }\n        } else {\n            if (this.leaveClass || this.leaveFromClass) {\n                removeClass(this.target, this.leaveClass || this.leaveFromClass);\n            }\n\n            if (this.leaveToClass) {\n                addClass(this.target, this.leaveToClass);\n            }\n        }\n\n        if (this.hideOnOutsideClick) {\n            this.unbindDocumentClickListener();\n        }\n\n        if (this.hideOnEscape) {\n            this.unbindDocumentKeydownListener();\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 as string);\n        }\n    }\n\n    bindDocumentClickListener() {\n        if (!this.documentClickListener) {\n            this.documentClickListener = this.renderer.listen(this.el.nativeElement.ownerDocument, 'click', (event) => {\n                if (!this.isVisible() || getComputedStyle(this.target as HTMLElement).getPropertyValue('position') === 'static') this.unbindDocumentClickListener();\n                else if (this.isOutsideClick(event)) this.leave();\n            });\n        }\n    }\n\n    bindDocumentKeydownListener() {\n        if (!this.documentKeydownListener) {\n            this.zone.runOutsideAngular(() => {\n                this.documentKeydownListener = this.renderer.listen(this.el.nativeElement.ownerDocument, 'keydown', (event) => {\n                    const { key, keyCode, which, type } = event;\n                    if (!this.isVisible() || getComputedStyle(this.target as HTMLElement).getPropertyValue('position') === 'static') this.unbindDocumentKeydownListener();\n                    if (this.isVisible() && key === 'Escape' && keyCode === 27 && which === 27) this.leave();\n                });\n            });\n        }\n    }\n\n    isVisible() {\n        return (this.target as HTMLElement).offsetParent !== null;\n    }\n\n    isOutsideClick(event: MouseEvent) {\n        return !this.el.nativeElement.isSameNode(event.target) && !this.el.nativeElement.contains(event.target) && !(this.target as HTMLElement).contains(<HTMLElement>event.target);\n    }\n\n    unbindDocumentClickListener() {\n        if (this.documentClickListener) {\n            this.documentClickListener();\n            this.documentClickListener = null;\n        }\n    }\n\n    unbindDocumentKeydownListener() {\n        if (this.documentKeydownListener) {\n            this.documentKeydownListener();\n            this.documentKeydownListener = null;\n        }\n    }\n\n    ngOnDestroy() {\n        this.target = null;\n        if (this.eventListener) {\n            this.eventListener();\n        }\n        this.unbindDocumentClickListener();\n        this.unbindDocumentKeydownListener();\n    }\n}\n\n@NgModule({\n    imports: [StyleClass],\n    exports: [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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"}