{"version":3,"file":"index.mjs","sources":["../../src/styleclass/BaseStyleClass.js","../../src/styleclass/StyleClass.js"],"sourcesContent":["import BaseDirective from '@primevue/core/basedirective';\nimport StyleClassStyle from 'primevue/styleclass/style';\n\nconst BaseStyleClass = BaseDirective.extend({\n    style: StyleClassStyle\n});\n\nexport default BaseStyleClass;\n","import { addClass, hasClass, removeClass } from '@primeuix/utils/dom';\nimport BaseStyleClass from './BaseStyleClass';\n\nconst StyleClass = BaseStyleClass.extend('styleclass', {\n    mounted(el, binding) {\n        el.setAttribute('data-pd-styleclass', true);\n\n        this.bind(el, binding);\n    },\n    unmounted(el) {\n        this.unbind(el);\n    },\n    methods: {\n        bind(el, binding) {\n            const target = this.resolveTarget(el, binding);\n\n            this.$el = target;\n\n            el.$_pstyleclass_clicklistener = () => {\n                if (binding.value.toggleClass) {\n                    if (hasClass(target, binding.value.toggleClass)) removeClass(target, binding.value.toggleClass);\n                    else addClass(target, binding.value.toggleClass);\n                } else {\n                    if (target.offsetParent === null) this.enter(target, el, binding);\n                    else this.leave(target, binding);\n                }\n            };\n\n            el.addEventListener('click', el.$_pstyleclass_clicklistener);\n        },\n        unbind(el) {\n            if (el.$_pstyleclass_clicklistener) {\n                el.removeEventListener('click', el.$_pstyleclass_clicklistener);\n                el.$_pstyleclass_clicklistener = null;\n            }\n\n            this.unbindDocumentListener(el);\n        },\n        enter(target, el, binding) {\n            if (binding.value.enterActiveClass) {\n                if (!target.$_pstyleclass_animating) {\n                    target.$_pstyleclass_animating = true;\n\n                    if (binding.value.enterActiveClass.includes('slidedown')) {\n                        target.style.height = '0px';\n                        removeClass(target, 'hidden');\n                        target.style.maxHeight = target.scrollHeight + 'px';\n                        addClass(target, 'hidden');\n                        target.style.height = '';\n                    }\n\n                    addClass(target, binding.value.enterActiveClass);\n\n                    if (binding.value.enterFromClass) {\n                        removeClass(target, binding.value.enterFromClass);\n                    }\n\n                    target.$p_styleclass_enterlistener = () => {\n                        removeClass(target, binding.value.enterActiveClass);\n\n                        if (binding.value.enterToClass) {\n                            addClass(target, binding.value.enterToClass);\n                        }\n\n                        target.removeEventListener('animationend', target.$p_styleclass_enterlistener);\n\n                        if (binding.value.enterActiveClass.includes('slidedown')) {\n                            target.style.maxHeight = '';\n                        }\n\n                        target.$_pstyleclass_animating = false;\n                    };\n\n                    target.addEventListener('animationend', target.$p_styleclass_enterlistener);\n                }\n            } else {\n                if (binding.value.enterFromClass) {\n                    removeClass(target, binding.value.enterFromClass);\n                }\n\n                if (binding.value.enterToClass) {\n                    addClass(target, binding.value.enterToClass);\n                }\n            }\n\n            if (binding.value.hideOnOutsideClick) {\n                this.bindDocumentListener(target, el, binding);\n            }\n        },\n        leave(target, binding) {\n            if (binding.value.leaveActiveClass) {\n                if (!target.$_pstyleclass_animating) {\n                    target.$_pstyleclass_animating = true;\n                    addClass(target, binding.value.leaveActiveClass);\n\n                    if (binding.value.leaveFromClass) {\n                        removeClass(target, binding.value.leaveFromClass);\n                    }\n\n                    target.$p_styleclass_leavelistener = () => {\n                        removeClass(target, binding.value.leaveActiveClass);\n\n                        if (binding.value.leaveToClass) {\n                            addClass(target, binding.value.leaveToClass);\n                        }\n\n                        target.removeEventListener('animationend', target.$p_styleclass_leavelistener);\n                        target.$_pstyleclass_animating = false;\n                    };\n\n                    target.addEventListener('animationend', target.$p_styleclass_leavelistener);\n                }\n            } else {\n                if (binding.value.leaveFromClass) {\n                    removeClass(target, binding.value.leaveFromClass);\n                }\n\n                if (binding.value.leaveToClass) {\n                    addClass(target, binding.value.leaveToClass);\n                }\n            }\n\n            if (binding.value.hideOnOutsideClick) {\n                this.unbindDocumentListener(target);\n            }\n        },\n        resolveTarget(el, binding) {\n            switch (binding.value.selector) {\n                case '@next':\n                    return el.nextElementSibling;\n\n                case '@prev':\n                    return el.previousElementSibling;\n\n                case '@parent':\n                    return el.parentElement;\n\n                case '@grandparent':\n                    return el.parentElement.parentElement;\n\n                default:\n                    return document.querySelector(binding.value.selector);\n            }\n        },\n        bindDocumentListener(target, el, binding) {\n            if (!target.$p_styleclass_documentlistener) {\n                target.$p_styleclass_documentlistener = (event) => {\n                    if (!this.isVisible(target) || getComputedStyle(target).getPropertyValue('position') === 'static') {\n                        this.unbindDocumentListener(target);\n                    } else if (this.isOutsideClick(event, target, el)) {\n                        this.leave(target, binding);\n                    }\n                };\n\n                target.ownerDocument.addEventListener('click', target.$p_styleclass_documentlistener);\n            }\n        },\n        unbindDocumentListener(target) {\n            if (target.$p_styleclass_documentlistener) {\n                target.ownerDocument.removeEventListener('click', target.$p_styleclass_documentlistener);\n                target.$p_styleclass_documentlistener = null;\n            }\n        },\n        isVisible(target) {\n            return target.offsetParent !== null;\n        },\n        isOutsideClick(event, target, el) {\n            return !el.isSameNode(event.target) && !el.contains(event.target) && !target.contains(event.target);\n        }\n    }\n});\n\nexport default StyleClass;\n"],"names":["BaseStyleClass","BaseDirective","extend","style","StyleClassStyle","StyleClass","mounted","el","binding","setAttribute","bind","unmounted","unbind","methods","_this","target","resolveTarget","$el","$_pstyleclass_clicklistener","value","toggleClass","hasClass","removeClass","addClass","offsetParent","enter","leave","addEventListener","removeEventListener","unbindDocumentListener","enterActiveClass","$_pstyleclass_animating","includes","height","maxHeight","scrollHeight","enterFromClass","$p_styleclass_enterlistener","enterToClass","hideOnOutsideClick","bindDocumentListener","leaveActiveClass","leaveFromClass","$p_styleclass_leavelistener","leaveToClass","selector","nextElementSibling","previousElementSibling","parentElement","document","querySelector","_this2","$p_styleclass_documentlistener","event","isVisible","getComputedStyle","getPropertyValue","isOutsideClick","ownerDocument","isSameNode","contains"],"mappings":"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"}