{"version":3,"file":"seniorsistemas-angular-components-utils.mjs","sources":["../../projects/angular-components/utils/src/lib/utils/breakpoints.ts","../../projects/angular-components/utils/src/lib/utils/utils.ts","../../projects/angular-components/utils/src/seniorsistemas-angular-components-utils.ts"],"sourcesContent":["export const Breakpoints = {\n    SM_MIN: 0 as const,\n    SM_MAX: 767 as const,\n    MD_MIN: 768 as const,\n    MD_MAX: 991 as const,\n    LG_MIN: 992 as const,\n    LG_MAX: 1199 as const,\n    XL_MIN: 1200 as const,\n    XL_MAX: Infinity,\n};\n","export type ElementPosition = {\n    top: number;\n    left: number;\n    right: number;\n    elementHeight: number;\n    elementWidth: number;\n    elementVerticalCenter: number;\n    elementHorizontalCenter: number;\n};\n\nexport type ElementLeftoverPosition = {\n    freeDistanceToBottom: number;\n    freeDistanceToTop: number;\n    freeDistanceToLeft: number;\n    freeDistanceToRight: number;\n};\n\nexport const randomHash = (prefix = 'id') => {\n    return `${prefix}-${Math.random().toString(36).substring(2, 9)}-${Date.now().toString(36)}`;\n};\nexport const isNullOrUndefined = (value: unknown) => value === null || value === undefined;\nexport const isMousePositionOutsideOfElement = (\n    event: MouseEvent | PointerEvent,\n    elementArea: {\n        top: number;\n        right: number;\n        left: number;\n        bottom: number;\n    },\n) => {\n    const eventX = event.clientX;\n    const eventY = event.clientY;\n    return (\n        eventX < elementArea.left ||\n        eventX >= elementArea.right ||\n        eventY < elementArea.top ||\n        eventY >= elementArea.bottom\n    );\n};\n\nexport const getElementPositionInfo = (element: HTMLElement): ElementPosition => {\n    const rect = element.getBoundingClientRect();\n    const scrollTop = window.scrollY || document.documentElement.scrollTop;\n    const scrollLeft = window.scrollX || document.documentElement.scrollLeft;\n\n    const elementHeight = rect.height;\n    const elementWidth = rect.width;\n    const elementVerticalCenter = elementHeight / 2;\n    const elementHorizontalCenter = elementWidth / 2;\n\n    return {\n        top: rect.top + scrollTop,\n        left: rect.left + scrollLeft,\n        right: rect.left + scrollLeft + elementWidth,\n        elementHeight,\n        elementWidth,\n        elementVerticalCenter,\n        elementHorizontalCenter,\n    };\n};\n\nexport const getElementLeftoverContentAvailable = (element: HTMLElement): ElementLeftoverPosition => {\n    const windowWidth = window.innerWidth;\n    const popoverElementTriggerRect = element.getBoundingClientRect();\n    const freeDistanceToBottom = window.innerHeight - popoverElementTriggerRect.bottom;\n    const freeDistanceToTop = popoverElementTriggerRect.top;\n    const freeDistanceToLeft = popoverElementTriggerRect.left;\n    const freeDistanceToRight = windowWidth - popoverElementTriggerRect.right;\n    return {\n        freeDistanceToBottom,\n        freeDistanceToTop,\n        freeDistanceToLeft,\n        freeDistanceToRight,\n    };\n};\n\nexport const enableScroll = (): void => {\n    document.body.style.overflow = 'auto';\n};\n\nexport const disableScroll = (): void => {\n    document.body.style.overflow = 'hidden';\n};\n\nexport function deepClone<T>(value: T, weakMap = new WeakMap()): T {\n    if (value !== null && typeof value === 'object') {\n        if (weakMap.has(value)) return weakMap.get(value);\n    }\n\n    if (value === null || typeof value !== 'object' || value instanceof Function) {\n        return value;\n    }\n\n    if (value instanceof Date) {\n        return new Date(value.getTime()) as any;\n    }\n\n    if (Array.isArray(value)) {\n        const arr: any[] = [];\n        weakMap.set(value, arr);\n        value.forEach((item, i) => {\n            arr[i] = deepClone(item, weakMap);\n        });\n        return arr as any;\n    }\n\n    if (value instanceof Map) {\n        const result = new Map();\n        weakMap.set(value, result);\n        value.forEach((v, k) => {\n            result.set(deepClone(k, weakMap), deepClone(v, weakMap));\n        });\n        return result as any;\n    }\n\n    if (value instanceof Set) {\n        const result = new Set();\n        weakMap.set(value, result);\n        value.forEach((v) => {\n            result.add(deepClone(v, weakMap));\n        });\n        return result as any;\n    }\n\n    if (ArrayBuffer.isView(value)) {\n        return new (value.constructor as any)(value) as any;\n    }\n    if (value instanceof ArrayBuffer) {\n        return value.slice(0) as any;\n    }\n\n    const obj = Object.create(Object.getPrototypeOf(value));\n    weakMap.set(value, obj);\n\n    const keys = Reflect.ownKeys(value);\n\n    keys.forEach((key) => {\n        const desc = Object.getOwnPropertyDescriptor(value, key)!;\n\n        if ('value' in desc) {\n            desc.value = deepClone((value as any)[key], weakMap);\n        }\n\n        Object.defineProperty(obj, key, desc);\n    });\n\n    return obj;\n}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public-api';\n"],"names":[],"mappings":"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"}