{"version":3,"file":"ironsource-fusion-ui-components-calendar-common-base.mjs","sources":["../../../projects/fusion-ui/components/calendar/common/base/calendar.config.ts","../../../projects/fusion-ui/components/calendar/common/base/calendar.service.ts","../../../projects/fusion-ui/components/calendar/common/base/calendar.base.component.ts","../../../projects/fusion-ui/components/calendar/common/base/ironsource-fusion-ui-components-calendar-common-base.ts"],"sourcesContent":["import {CalendarType} from '@ironsource/fusion-ui/components/calendar/entities';\n\nexport const HOVER_RANGE_CLASS = 'hover-range';\nexport const HOVER_CURRENT_CLASS = 'hover-current';\n\nexport const DAY_NAMES = ['Su', 'Mo', 'Tu', 'We', 'Th', 'Fr', 'Sa'];\n\nexport const DEFAULT_CALENDAR_COMPONENT_CONFIGURATION = {\n    month: new Date(),\n    allowFutureSelection: false,\n    parentDaterangeId: '',\n    selection: {\n        startDate: new Date(),\n        endDate: new Date()\n    },\n    maxDate: null,\n    calendarType: CalendarType.DATE_PICKER\n};\n","import {EventEmitter, Injectable, Output, Directive} from '@angular/core';\nimport {Day, Month} from '@ironsource/fusion-ui/components/calendar/entities';\n\n/* eslint-disable @angular-eslint/directive-class-suffix */\n@Directive()\n@Injectable({\n    providedIn: 'root'\n})\nexport class CalendarService {\n    @Output() dayHoverStart: EventEmitter<{parentDaterangeId: string; day: Day; hoveredElement: Node}> = new EventEmitter();\n    @Output() dayHoverEnd: EventEmitter<{parentDaterangeId: string}> = new EventEmitter();\n\n    parsedMonths: {[monthKey: string]: Month} = {};\n\n    daysInMonth(month: number, year: number): number {\n        return 32 - new Date(year, month, 32).getDate();\n    }\n\n    getMonthKey(month: Date): string {\n        return month.getFullYear().toString() + '_' + month.getMonth().toString();\n    }\n\n    getParsedMonth(month, maxDate?: Date): Month {\n        if (month) {\n            const key = maxDate ? `${this.getMonthKey(month)}-${maxDate.getDate()}` : this.getMonthKey(month);\n            return this.parsedMonths[key];\n        }\n        return {weeks: []};\n    }\n\n    createMonth(monthToCreateAsUtc: Date, maxDate?: Date): Month {\n        const parsedMonth: Month = {weeks: []};\n        const year = monthToCreateAsUtc.getFullYear();\n        const month = monthToCreateAsUtc.getMonth();\n        const firstDay = new Date(year, month, 1);\n        const firstDayInMonth = firstDay.getDay();\n        const now = this.getCurrentDateUTC();\n        const maxDay = this.daysInMonth(month, year);\n        const key = maxDate ? `${this.getMonthKey(monthToCreateAsUtc)}-${maxDate.getDate()}` : this.getMonthKey(monthToCreateAsUtc);\n        let day: Day;\n        let week: Day[];\n        let dayCounter = 1;\n\n        if (this.parsedMonths[key]) {\n            return this.parsedMonths[key];\n        }\n\n        for (let weekNum = 0; weekNum < 6; weekNum++) {\n            week = [];\n            for (let currDayInWeek = 0; currDayInWeek < 7; currDayInWeek++) {\n                day = {date: null, isToday: false, isInFuture: false};\n                if ((weekNum > 0 || currDayInWeek >= firstDayInMonth) && dayCounter <= maxDay) {\n                    day.date = new Date(year, month, dayCounter);\n                    dayCounter++;\n\n                    if (now < day.date || (maxDate && maxDate < day.date)) {\n                        day.isInFuture = true;\n                    }\n                    if (day.date.getTime() === now.getTime()) {\n                        day.isToday = true;\n                    }\n                }\n                week.push(day);\n            }\n            parsedMonth.weeks.push(week);\n        }\n        this.parsedMonths[key] = parsedMonth;\n\n        return parsedMonth;\n    }\n\n    getCurrentDateUTC(): Date {\n        const d = new Date();\n        return new Date(d.getUTCFullYear(), d.getUTCMonth(), d.getUTCDate());\n    }\n\n    getDateAsUTC(date: Date): Date {\n        return new Date(date.getUTCFullYear(), date.getUTCMonth(), date.getUTCDate());\n    }\n\n    compareDates(firstDate: Date, secondDate: Date): boolean {\n        return (\n            firstDate.getDate() === secondDate.getDate() &&\n            firstDate.getMonth() === secondDate.getMonth() &&\n            firstDate.getFullYear() === secondDate.getFullYear()\n        );\n    }\n}\n","import {Directive, EventEmitter, Input, OnInit, Output} from '@angular/core';\nimport {getDateDayTime, isNullOrUndefined} from '@ironsource/fusion-ui/utils';\nimport {CalendarComponentConfigurations} from './calendar-component-configurations';\nimport {DAY_NAMES, DEFAULT_CALENDAR_COMPONENT_CONFIGURATION} from './calendar.config';\nimport {CalendarService} from './calendar.service';\nimport {Day} from '@ironsource/fusion-ui/components/calendar/entities';\n\nconst DAY_UNIX_TIMESTAMP = 86400000;\n\n@Directive()\nexport abstract class CalendarBaseComponent implements OnInit {\n    @Input()\n    set configuration(configuration: CalendarComponentConfigurations) {\n        if (configuration.month) {\n            this.calendarService.createMonth(configuration.month, configuration.maxDate);\n        }\n        this._configurations = configuration;\n        if (!isNullOrUndefined(this._configurations.selection.date)) {\n            this._configurations.selection.startDate = this._configurations.selection.startDate ?? this._configurations.selection.date;\n            this._configurations.selection.endDate = this._configurations.selection.endDate ?? this._configurations.selection.date;\n        }\n    }\n\n    get configuration(): CalendarComponentConfigurations {\n        return this._configurations;\n    }\n\n    @Output() daySelected: EventEmitter<Day> = new EventEmitter();\n\n    /** @internal */\n    daysOfTheWeek = DAY_NAMES;\n    /** @internal */\n    _configurations: CalendarComponentConfigurations = DEFAULT_CALENDAR_COMPONENT_CONFIGURATION;\n\n    constructor(\n        /** @internal */\n        public calendarService: CalendarService\n    ) {}\n\n    ngOnInit() {\n        if (this.configuration.month) {\n            this.calendarService.createMonth(this.configuration.month, this.configuration.maxDate);\n        }\n    }\n\n    /** @internal */\n    selectDay(day: Day) {\n        this.daySelected.emit(day);\n    }\n    /** @internal */\n    isDisabled(day: Day): boolean {\n        return !day.date || (day.isInFuture && !this.configuration.allowFutureSelection) || this.isInMInMaxRange(day.date);\n    }\n    /** @internal */\n    isActive(value: Day): boolean {\n        if (\n            value.date &&\n            ((this.configuration.selection.startDate && this.configuration.selection.endDate) || this.configuration.selection.date)\n        ) {\n            return (\n                this.calendarService.compareDates(\n                    value.date,\n                    this.configuration.selection.startDate ?? this.configuration.selection.date\n                ) ||\n                this.calendarService.compareDates(value.date, this.configuration.selection.endDate ?? this.configuration.selection.date)\n            );\n        }\n        return false;\n    }\n    /** @internal */\n    dayHovered(day: Day, event: MouseEvent) {}\n    /** @internal */\n    hoverEnd() {}\n    /** @internal */\n    getDayClasses(day: Day) {\n        const selectedStartDateTimestamp = getDateDayTime(this.configuration.selection.startDate ?? this.configuration.selection.date);\n        const selectedEndDateTimestamp = getDateDayTime(this.configuration.selection.endDate ?? this.configuration.selection.date);\n        const dayDateTimestamp = getDateDayTime(day.date);\n\n        const isStartDate = dayDateTimestamp === selectedStartDateTimestamp;\n        const isEndDate = dayDateTimestamp === selectedEndDateTimestamp;\n\n        return {\n            today: day.isToday,\n            oneDaySelection: dayDateTimestamp && isStartDate && isEndDate,\n            selected: dayDateTimestamp >= selectedStartDateTimestamp && dayDateTimestamp <= selectedEndDateTimestamp,\n            selectedStart: dayDateTimestamp !== selectedEndDateTimestamp && isStartDate,\n            selectedEnd: isEndDate && dayDateTimestamp !== selectedStartDateTimestamp,\n            selectedDayAfterDay: (isEndDate || isStartDate) && selectedEndDateTimestamp === selectedStartDateTimestamp + DAY_UNIX_TIMESTAMP,\n            active: this.isActive(day),\n            disabled: this.isDisabled(day)\n        };\n    }\n\n    private isInMInMaxRange(date: Date): boolean {\n        const minDate: Date = this.configuration?.minDate;\n        const maxDate: Date = this.configuration?.maxDate;\n\n        const isBeforeMinDate = minDate ? date.getTime() < minDate.getTime() : false;\n        const isAfterMaxDate = maxDate ? date.getTime() > maxDate.getTime() : false;\n\n        return isBeforeMinDate || isAfterMaxDate;\n    }\n}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public-api';\n"],"names":["i1.CalendarService"],"mappings":"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"}