{"version":3,"file":"primeng-styleclass.mjs","sources":["../../src/styleclass/styleclass.ts","../../src/styleclass/primeng-styleclass.ts"],"sourcesContent":["import { booleanAttribute, Directive, ElementRef, HostListener, inject, input, NgModule, OnDestroy, Renderer2 } from '@angular/core';\nimport { addClass, getTargetElement, hasClass, isElement, 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    el = inject(ElementRef);\n\n    renderer = inject(Renderer2);\n\n    /**\n     * Selector to define the target element. Available selectors are '@next', '@prev', '@parent' and '@grandparent'.\n     * @group Props\n     */\n    selector = input<string | undefined>(undefined, { alias: 'pStyleClass' });\n\n    /**\n     * Style class to add when item begins to get displayed.\n     * @group Props\n     */\n    enterFromClass = input<string>();\n\n    /**\n     * Style class to add during enter animation.\n     * @group Props\n     */\n    enterActiveClass = input<string>();\n\n    /**\n     * Style class to add when item begins to get displayed.\n     * @group Props\n     */\n    enterToClass = input<string>();\n\n    /**\n     * Style class to add when item begins to get hidden.\n     * @group Props\n     */\n    leaveFromClass = input<string>();\n\n    /**\n     * Style class to add during leave animation.\n     * @group Props\n     */\n    leaveActiveClass = input<string>();\n\n    /**\n     * Style class to add when leave animation is completed.\n     * @group Props\n     */\n    leaveToClass = input<string>();\n\n    /**\n     * Whether to trigger leave animation when outside of the element is clicked.\n     * @group Props\n     */\n    hideOnOutsideClick = input(undefined, { transform: booleanAttribute });\n\n    /**\n     * Adds or removes a class when no enter-leave animation is required.\n     * @group Props\n     */\n    toggleClass = input<string>();\n\n    /**\n     * Whether to trigger leave animation when escape key pressed.\n     * @group Props\n     */\n    hideOnEscape = input(undefined, { transform: booleanAttribute });\n\n    /**\n     * Whether to trigger leave animation when the target element resized.\n     * @group Props\n     */\n    hideOnResize = input(undefined, { transform: booleanAttribute });\n\n    /**\n     * Target element to listen resize. Valid values are \"window\", \"document\" or target element selector.\n     * @group Props\n     */\n    resizeSelector = input<string>();\n\n    eventListener: VoidListener;\n\n    documentClickListener: VoidListener;\n\n    documentKeydownListener: VoidListener;\n\n    windowResizeListener: VoidListener;\n\n    resizeObserver: ResizeObserver | undefined;\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    _resizeTarget: any;\n\n    @HostListener('click')\n    clickListener() {\n        this.target ||= getTargetElement(this.selector(), this.el.nativeElement) as HTMLElement;\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        const toggleClass = this.toggleClass()!;\n        if (hasClass(this.target!, toggleClass)) removeClass(this.target!, toggleClass);\n        else addClass(this.target!, toggleClass);\n    }\n\n    enter() {\n        const enterActiveClass = this.enterActiveClass();\n        const enterFromClass = this.enterFromClass();\n        const enterToClass = this.enterToClass();\n\n        if (enterActiveClass) {\n            if (!this.animating) {\n                this.animating = true;\n\n                if (enterActiveClass.includes('slidedown')) {\n                    (this.target as HTMLElement).style.height = '0px';\n                    removeClass(this.target!, enterFromClass || 'hidden');\n                    (this.target as HTMLElement).style.maxHeight = (this.target as HTMLElement).scrollHeight + 'px';\n                    addClass(this.target!, enterFromClass || 'hidden');\n                    (this.target as HTMLElement).style.height = '';\n                }\n\n                addClass(this.target!, enterActiveClass);\n                if (enterFromClass) {\n                    removeClass(this.target!, enterFromClass);\n                }\n\n                this.enterListener = this.renderer.listen(this.target!, 'animationend', () => {\n                    removeClass(this.target!, enterActiveClass);\n                    if (enterToClass) {\n                        addClass(this.target!, enterToClass);\n                    }\n                    this.enterListener && this.enterListener();\n\n                    if (enterActiveClass.includes('slidedown')) {\n                        (this.target as HTMLElement).style.maxHeight = '';\n                    }\n                    this.animating = false;\n                });\n            }\n        } else {\n            if (enterFromClass) {\n                removeClass(this.target!, enterFromClass);\n            }\n\n            if (enterToClass) {\n                addClass(this.target!, enterToClass);\n            }\n        }\n\n        if (this.hideOnOutsideClick()) {\n            this.bindDocumentClickListener();\n        }\n\n        if (this.hideOnEscape()) {\n            this.bindDocumentKeydownListener();\n        }\n\n        if (this.hideOnResize()) {\n            this.bindResizeListener();\n        }\n    }\n\n    leave() {\n        const leaveActiveClass = this.leaveActiveClass();\n        const leaveFromClass = this.leaveFromClass();\n        const leaveToClass = this.leaveToClass();\n\n        if (leaveActiveClass) {\n            if (!this.animating) {\n                this.animating = true;\n                addClass(this.target!, leaveActiveClass);\n                if (leaveFromClass) {\n                    removeClass(this.target!, leaveFromClass);\n                }\n\n                this.leaveListener = this.renderer.listen(this.target!, 'animationend', () => {\n                    removeClass(this.target!, leaveActiveClass);\n                    if (leaveToClass) {\n                        addClass(this.target!, leaveToClass);\n                    }\n                    this.leaveListener && this.leaveListener();\n                    this.animating = false;\n                });\n            }\n        } else {\n            if (leaveFromClass) {\n                removeClass(this.target!, leaveFromClass);\n            }\n\n            if (leaveToClass) {\n                addClass(this.target!, leaveToClass);\n            }\n        }\n\n        if (this.hideOnOutsideClick()) {\n            this.unbindDocumentClickListener();\n        }\n\n        if (this.hideOnEscape()) {\n            this.unbindDocumentKeydownListener();\n        }\n\n        if (this.hideOnResize()) {\n            this.unbindResizeListener();\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.documentKeydownListener = this.renderer.listen(this.el.nativeElement.ownerDocument, 'keydown', (event) => {\n                const { key, keyCode, which } = 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    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    bindResizeListener() {\n        this._resizeTarget = getTargetElement(this.resizeSelector());\n        if (isElement(this._resizeTarget)) {\n            this.bindElementResizeListener();\n        } else {\n            this.bindWindowResizeListener();\n        }\n    }\n\n    unbindResizeListener() {\n        this.unbindWindowResizeListener();\n        this.unbindElementResizeListener();\n    }\n\n    bindWindowResizeListener() {\n        if (!this.windowResizeListener) {\n            this.windowResizeListener = this.renderer.listen(window, 'resize', () => {\n                if (!this.isVisible()) {\n                    this.unbindWindowResizeListener();\n                } else {\n                    this.leave();\n                }\n            });\n        }\n    }\n\n    unbindWindowResizeListener() {\n        if (this.windowResizeListener) {\n            this.windowResizeListener();\n            this.windowResizeListener = null;\n        }\n    }\n\n    bindElementResizeListener() {\n        if (!this.resizeObserver && this._resizeTarget) {\n            let isFirstResize = true;\n            this.resizeObserver = new ResizeObserver(() => {\n                if (isFirstResize) {\n                    isFirstResize = false;\n                    return;\n                }\n\n                if (this.isVisible()) {\n                    this.leave();\n                }\n            });\n            this.resizeObserver.observe(this._resizeTarget);\n        }\n    }\n\n    unbindElementResizeListener() {\n        if (this.resizeObserver) {\n            this.resizeObserver.disconnect();\n            this.resizeObserver = undefined;\n        }\n    }\n\n    ngOnDestroy() {\n        this.target = null;\n        this._resizeTarget = null;\n\n        if (this.eventListener) {\n            this.eventListener();\n        }\n        this.unbindDocumentClickListener();\n        this.unbindDocumentKeydownListener();\n        this.unbindResizeListener();\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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"}