{"version":3,"file":"binom-sdk-utils-el-dimension.mjs","sources":["../../../../../../binom/public/sdks/sdk-utils/el-dimension/src/bn-el-dimension-util.ts","../../../../../../binom/public/sdks/sdk-utils/el-dimension/src/binom-sdk-utils-el-dimension.ts"],"sourcesContent":["export class BnElDimensionUtil {\n    static getHeight(el: HTMLElement): number { return el.offsetHeight; }\n    static getWidth(el: HTMLElement): number { return el.offsetWidth; }\n\n    static getDimension(el: HTMLElement): { width: number, height: number } {\n        return {\n            width: el.offsetWidth,\n            height: el.offsetHeight\n        };\n    }\n\n    public static getOffset(el:HTMLElement) {\n        const rect = el.getBoundingClientRect();\n        return {\n            top: rect.top + (window.scrollY || document.documentElement.scrollTop || document.body.scrollTop || 0),\n            left: rect.left + (window.scrollX || document.documentElement.scrollLeft || document.body.scrollLeft || 0)\n        };\n    }\n\n    static getOffsetTop(el: HTMLElement): number {\n        let offsetTop = 0;\n        while (el) {\n            offsetTop += el.offsetTop;\n            el = el.offsetParent as HTMLElement;\n        }\n        return offsetTop;\n    }\n\n    public static getHorizontalPadding(el: HTMLElement): number {\n        const style = getComputedStyle(el);\n        return parseFloat(style.paddingLeft) + parseFloat(style.paddingRight);\n    }\n\n    public static getHorizontalMargin(el: HTMLElement): number {\n        const style = getComputedStyle(el);\n        return parseFloat(style.marginLeft) + parseFloat(style.marginRight);\n    }\n\n    public static innerWidth(el: HTMLElement): number {\n        const style = getComputedStyle(el);\n        return el.clientWidth - parseFloat(style.paddingLeft) - parseFloat(style.paddingRight);\n    }\n\n    public static width(el: HTMLElement): number { return el.clientWidth; }\n\n    public static getInnerHeight(el: HTMLElement): number {\n        const style = getComputedStyle(el);\n        return el.clientHeight - parseFloat(style.paddingTop) - parseFloat(style.paddingBottom);\n    }\n\n    public static getOuterWidth(el: HTMLElement, includeMargin = true): number {\n        let width = el.offsetWidth;\n        if (includeMargin) {\n            const style = getComputedStyle(el);\n            width += parseFloat(style.marginLeft) + parseFloat(style.marginRight);\n        }\n        return width;\n    }\n\n    public static getOuterHeight(el: HTMLElement, includeMargin = true): number {\n        let height = el.offsetHeight;\n        if (includeMargin) {\n            const style = getComputedStyle(el);\n            height += parseFloat(style.marginTop) + parseFloat(style.marginBottom);\n        }\n        return height;\n    }\n\n    // Viewport-Detection\n    public static isInViewport(el: HTMLElement, threshold = 0): boolean {\n        if (typeof window === 'undefined') return false;\n\n        const rect = el.getBoundingClientRect();\n        const windowHeight = window.innerHeight || document.documentElement.clientHeight;\n        const windowWidth = window.innerWidth || document.documentElement.clientWidth;\n\n        const vertInView = (rect.top <= windowHeight + threshold) && ((rect.top + rect.height) >= -threshold);\n        const horInView = (rect.left <= windowWidth + threshold) && ((rect.left + rect.width) >= -threshold);\n\n        return vertInView && horInView;\n    }\n\n    public static getViewportSize(): { width: number; height: number } {\n        if (typeof window === 'undefined') {\n            return { width: 0, height: 0 };\n        }\n        return {\n            width: window.innerWidth || document.documentElement.clientWidth,\n            height: window.innerHeight || document.documentElement.clientHeight\n        };\n    }\n\n    public static getViewportRect(): DOMRect {\n        if (typeof window === 'undefined') {\n            return new DOMRect(0, 0, 0, 0);\n        }\n        return new DOMRect(0, 0, window.innerWidth, window.innerHeight);\n    }\n\n    // Scroll-Positionen\n    public static getScrollPosition(element?: HTMLElement): { x: number; y: number } {\n        if (typeof window === 'undefined') {\n            return { x: 0, y: 0 };\n        }\n\n        if (element) {\n            return {\n                x: element.scrollLeft,\n                y: element.scrollTop\n            };\n        }\n\n        return {\n            x: window.scrollX || window.pageXOffset || document.documentElement.scrollLeft || document.body.scrollLeft || 0,\n            y: window.scrollY || window.pageYOffset || document.documentElement.scrollTop || document.body.scrollTop || 0\n        };\n    }\n\n    public static scrollToElement(el: HTMLElement, behavior: ScrollBehavior = 'smooth'): void {\n        if (typeof window === 'undefined') return;\n\n        el.scrollIntoView({\n            behavior,\n            block: 'start',\n            inline: 'nearest'\n        });\n    }\n\n    public static scrollToPosition(x: number, y: number, behavior: ScrollBehavior = 'smooth'): void {\n        if (typeof window === 'undefined') return;\n\n        window.scrollTo({\n            left: x,\n            top: y,\n            behavior\n        });\n    }\n\n    public static scrollToTop(behavior: ScrollBehavior = 'smooth'): void {\n        this.scrollToPosition(0, 0, behavior);\n    }\n\n    public static scrollToBottom(behavior: ScrollBehavior = 'smooth'): void {\n        if (typeof window === 'undefined') return;\n        const documentHeight = Math.max(\n            document.body.scrollHeight,\n            document.body.offsetHeight,\n            document.documentElement.clientHeight,\n            document.documentElement.scrollHeight,\n            document.documentElement.offsetHeight\n        );\n        this.scrollToPosition(0, documentHeight - window.innerHeight, behavior);\n    }\n\n    // Responsive-Breaks\n    public static getCurrentBreakpoint(breakpoints: { [key: string]: number } = {\n        xs: 0,\n        sm: 576,\n        md: 768,\n        lg: 992,\n        xl: 1200,\n        xxl: 1400\n    }): string {\n        const { width } = this.getViewportSize();\n        const sortedBreakpoints = Object.entries(breakpoints)\n            .sort(([, a], [, b]) => b - a);\n\n        for (const [name, minWidth] of sortedBreakpoints) {\n            if (width >= minWidth) {\n                return name;\n            }\n        }\n\n        return 'xs';\n    }\n\n    public static isBreakpoint(breakpoint: string, currentBreakpoint?: string): boolean {\n        const current = currentBreakpoint || this.getCurrentBreakpoint();\n        return current === breakpoint;\n    }\n\n    public static isBreakpointUp(breakpoint: string, breakpoints?: { [key: string]: number }): boolean {\n        const bps = breakpoints || {\n            xs: 0, sm: 576, md: 768, lg: 992, xl: 1200, xxl: 1400\n        };\n        const { width } = this.getViewportSize();\n        return width >= (bps[breakpoint] || 0);\n    }\n\n    public static isBreakpointDown(breakpoint: string, breakpoints?: { [key: string]: number }): boolean {\n        const bps = breakpoints || {\n            xs: 0, sm: 576, md: 768, lg: 992, xl: 1200, xxl: 1400\n        };\n        const { width } = this.getViewportSize();\n        const bpWidth = bps[breakpoint];\n        if (!bpWidth) return false;\n\n        // Find next breakpoint\n        const sortedBreakpoints = Object.entries(bps)\n            .sort(([, a], [, b]) => a - b);\n        const currentIndex = sortedBreakpoints.findIndex(([name]) => name === breakpoint);\n\n        if (currentIndex === -1) return false;\n        if (currentIndex === sortedBreakpoints.length - 1) return true; // Last breakpoint\n\n        const nextBreakpoint = sortedBreakpoints[currentIndex + 1][1];\n        return width < nextBreakpoint;\n    }\n\n    // Intersection Observer Helper\n    public static observeIntersection(\n        el: HTMLElement,\n        callback: (entry: IntersectionObserverEntry) => void,\n        options?: IntersectionObserverInit\n    ): IntersectionObserver | null {\n        if (typeof window === 'undefined' || !('IntersectionObserver' in window)) {\n            return null;\n        }\n\n        const observer = new IntersectionObserver((entries) => {\n            entries.forEach(callback);\n        }, options);\n\n        observer.observe(el);\n        return observer;\n    }\n\n    // Resize Observer Helper\n    public static observeResize(\n        el: HTMLElement,\n        callback: (entry: ResizeObserverEntry) => void\n    ): ResizeObserver | null {\n        if (typeof window === 'undefined' || !('ResizeObserver' in window)) {\n            return null;\n        }\n\n        const observer = new ResizeObserver((entries) => {\n            entries.forEach(callback);\n        });\n\n        observer.observe(el);\n        return observer;\n    }\n}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":[],"mappings":"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"}