{"version":3,"file":"binom-sdk-utils-date-time.mjs","sources":["../../../../../../binom/public/sdks/sdk-utils/date-time/src/bn-date-utils.ts","../../../../../../binom/public/sdks/sdk-utils/date-time/src/binom-sdk-utils-date-time.ts"],"sourcesContent":["export class BnDateUtils {\n    /**\n     * Check if a value is a valid Date object\n     */\n    public static isValidDate(value: unknown): value is Date {\n        return value instanceof Date && !isNaN(value.getTime());\n    }\n\n    /**\n     * Format a date to a string using locale options\n     */\n    public static formatDate(\n        date: Date,\n        locale: string = 'de-DE',\n        options?: Intl.DateTimeFormatOptions\n    ): string {\n        if (!this.isValidDate(date)) return '';\n\n        const defaultOptions: Intl.DateTimeFormatOptions = {\n            year: 'numeric',\n            month: '2-digit',\n            day: '2-digit'\n        };\n\n        return new Intl.DateTimeFormat(locale, { ...defaultOptions, ...options }).format(date);\n    }\n\n    /**\n     * Format a date to ISO string (YYYY-MM-DD)\n     */\n    public static formatToIsoDate(date: Date): string {\n        if (!this.isValidDate(date)) return '';\n        return date.toISOString().split('T')[0];\n    }\n\n    /**\n     * Format time to HH:MM:SS\n     */\n    public static formatTime(date: Date): string {\n        if (!this.isValidDate(date)) return '';\n\n        const hours = date.getHours().toString().padStart(2, '0');\n        const minutes = date.getMinutes().toString().padStart(2, '0');\n        const seconds = date.getSeconds().toString().padStart(2, '0');\n\n        return `${hours}:${minutes}:${seconds}`;\n    }\n\n    /**\n     * Add days to a date\n     */\n    public static addDays(date: Date, days: number): Date {\n        if (!this.isValidDate(date)) return new Date();\n        const result = new Date(date);\n        result.setDate(result.getDate() + days);\n        return result;\n    }\n\n    /**\n     * Add months to a date\n     */\n    public static addMonths(date: Date, months: number): Date {\n        if (!this.isValidDate(date)) return new Date();\n        const result = new Date(date);\n        result.setMonth(result.getMonth() + months);\n        return result;\n    }\n\n    /**\n     * Add years to a date\n     */\n    public static addYears(date: Date, years: number): Date {\n        if (!this.isValidDate(date)) return new Date();\n        const result = new Date(date);\n        result.setFullYear(result.getFullYear() + years);\n        return result;\n    }\n\n    /**\n     * Get the difference between two dates in days\n     */\n    public static getDaysDifference(date1: Date, date2: Date): number {\n        if (!this.isValidDate(date1) || !this.isValidDate(date2)) return 0;\n\n        const timeDiff = date2.getTime() - date1.getTime();\n        return Math.ceil(timeDiff / (1000 * 3600 * 24));\n    }\n\n    /**\n     * Check if a date is today\n     */\n    public static isToday(date: Date): boolean {\n        if (!this.isValidDate(date)) return false;\n\n        const today = new Date();\n        return date.toDateString() === today.toDateString();\n    }\n\n    /**\n     * Check if a date is in the past\n     */\n    public static isPast(date: Date): boolean {\n        if (!this.isValidDate(date)) return false;\n        return date < new Date();\n    }\n\n    /**\n     * Check if a date is in the future\n     */\n    public static isFuture(date: Date): boolean {\n        if (!this.isValidDate(date)) return false;\n        return date > new Date();\n    }\n\n    /**\n     * Get the start of day (00:00:00)\n     */\n    public static startOfDay(date: Date): Date {\n        if (!this.isValidDate(date)) return new Date();\n        const result = new Date(date);\n        result.setHours(0, 0, 0, 0);\n        return result;\n    }\n\n    /**\n     * Get the end of day (23:59:59.999)\n     */\n    public static endOfDay(date: Date): Date {\n        if (!this.isValidDate(date)) return new Date();\n        const result = new Date(date);\n        result.setHours(23, 59, 59, 999);\n        return result;\n    }\n\n    /**\n     * Check if two dates are on the same day\n     */\n    public static isSameDay(date1: Date, date2: Date): boolean {\n        if (!this.isValidDate(date1) || !this.isValidDate(date2)) return false;\n\n        return date1.getFullYear() === date2.getFullYear() &&\n               date1.getMonth() === date2.getMonth() &&\n               date1.getDate() === date2.getDate();\n    }\n\n    /**\n     * Parse a date string in various formats\n     */\n    public static parseDate(dateString: string): Date | null {\n        if (!dateString || typeof dateString !== 'string') return null;\n\n        // Try ISO format first\n        const isoDate = new Date(dateString);\n        if (this.isValidDate(isoDate)) return isoDate;\n\n        // Try DD.MM.YYYY format (German)\n        const germanMatch = dateString.match(/^(\\d{1,2})\\.(\\d{1,2})\\.(\\d{4})$/);\n        if (germanMatch) {\n            const [, day, month, year] = germanMatch;\n            const parsed = new Date(parseInt(year), parseInt(month) - 1, parseInt(day));\n            if (this.isValidDate(parsed)) return parsed;\n        }\n\n        // Try MM/DD/YYYY format (US)\n        const usMatch = dateString.match(/^(\\d{1,2})\\/(\\d{1,2})\\/(\\d{4})$/);\n        if (usMatch) {\n            const [, month, day, year] = usMatch;\n            const parsed = new Date(parseInt(year), parseInt(month) - 1, parseInt(day));\n            if (this.isValidDate(parsed)) return parsed;\n        }\n\n        return null;\n    }\n\n    /**\n     * Get relative time string (e.g., \"vor 2 Tagen\", \"in 3 Stunden\")\n     */\n    public static getRelativeTime(date: Date, locale: string = 'de'): string {\n        if (!this.isValidDate(date)) return '';\n\n        const now = new Date();\n        const diffInMs = date.getTime() - now.getTime();\n        const diffInMinutes = Math.floor(Math.abs(diffInMs) / (1000 * 60));\n        const diffInHours = Math.floor(Math.abs(diffInMs) / (1000 * 60 * 60));\n        const diffInDays = Math.floor(Math.abs(diffInMs) / (1000 * 60 * 60 * 24));\n\n        const isPast = diffInMs < 0;\n        const rtf = new Intl.RelativeTimeFormat(locale, { numeric: 'auto' });\n\n        if (diffInMinutes < 1) {\n            return isPast ? 'gerade eben' : 'in Kürze';\n        } else if (diffInMinutes < 60) {\n            return rtf.format(isPast ? -diffInMinutes : diffInMinutes, 'minute');\n        } else if (diffInHours < 24) {\n            return rtf.format(isPast ? -diffInHours : diffInHours, 'hour');\n        } else if (diffInDays < 7) {\n            return rtf.format(isPast ? -diffInDays : diffInDays, 'day');\n        } else {\n            return this.formatDate(date, locale, {\n                year: 'numeric',\n                month: 'short',\n                day: 'numeric'\n            });\n        }\n    }\n}","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":[],"mappings":"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"}