{"version":3,"file":"ironsource-fusion-ui-components-daterange-common-base.mjs","sources":["../../../projects/fusion-ui/components/daterange/common/base/config.ts","../../../projects/fusion-ui/components/daterange/common/base/daterange.service.ts","../../../projects/fusion-ui/components/daterange/common/base/daterange.configuration.ts","../../../projects/fusion-ui/components/daterange/common/base/daterange.base.component.ts","../../../projects/fusion-ui/components/daterange/common/base/ironsource-fusion-ui-components-daterange-common-base.ts"],"sourcesContent":["import {DaterangePresets} from '@ironsource/fusion-ui/components/daterange/entities';\n\nexport const DEFAULT_DATE_FORMAT = 'd MMM, y';\nexport const DEFAULT_DATERANGE_PRESET_LIST = [\n    DaterangePresets.Today,\n    DaterangePresets.Yesterday,\n    DaterangePresets.Last7Days,\n    DaterangePresets.Last14Days,\n    DaterangePresets.Last30Days,\n    DaterangePresets.ThisMonth,\n    DaterangePresets.LastMonth\n];\nexport const DEFAULT_DATERANGE_PRESET_NAMES = {\n    [DaterangePresets.Today]: 'Today',\n    [DaterangePresets.Yesterday]: 'Yesterday',\n    [DaterangePresets.Last3Days]: 'Last 3 days',\n    [DaterangePresets.Last7Days]: 'Last 7 days',\n    [DaterangePresets.Last14Days]: 'Last 14 days',\n    [DaterangePresets.Last30Days]: 'Last 30 days',\n    [DaterangePresets.Last60Days]: 'Last 60 days',\n    [DaterangePresets.ThisMonth]: 'This month',\n    [DaterangePresets.LastMonth]: 'Last month'\n};\n","import {Injectable} from '@angular/core';\nimport {DateRange, DaterangeCustomPreset, DaterangePresets} from '@ironsource/fusion-ui/components/daterange/entities';\nimport {CalendarService} from '@ironsource/fusion-ui/components/calendar/common/base';\nimport {DEFAULT_DATERANGE_PRESET_LIST, DEFAULT_DATERANGE_PRESET_NAMES} from './config';\n\n@Injectable({\n    providedIn: 'root'\n})\nexport class DaterangeService {\n    constructor(protected calendarService: CalendarService) {}\n\n    defaultPresetList = DEFAULT_DATERANGE_PRESET_LIST;\n    presetDateFunctions = {\n        [DaterangePresets.Today]: (): DateRange => {\n            const now = this.calendarService.getCurrentDateUTC();\n            return {\n                endDate: now,\n                startDate: now\n            };\n        },\n        [DaterangePresets.Yesterday]: (): DateRange => {\n            const now = this.calendarService.getCurrentDateUTC();\n            return {\n                endDate: new Date(now.getFullYear(), now.getMonth(), now.getDate() - 1),\n                startDate: new Date(now.getFullYear(), now.getMonth(), now.getDate() - 1)\n            };\n        },\n        [DaterangePresets.Last3Days]: (): DateRange => {\n            const now = this.calendarService.getCurrentDateUTC();\n            return {\n                endDate: now,\n                startDate: new Date(now.getFullYear(), now.getMonth(), now.getDate() - 2)\n            };\n        },\n        [DaterangePresets.Last7Days]: (): DateRange => {\n            const now = this.calendarService.getCurrentDateUTC();\n            return {\n                endDate: now,\n                startDate: new Date(now.getFullYear(), now.getMonth(), now.getDate() - 6)\n            };\n        },\n        [DaterangePresets.Last14Days]: (): DateRange => {\n            const now = this.calendarService.getCurrentDateUTC();\n            return {\n                endDate: now,\n                startDate: new Date(now.getFullYear(), now.getMonth(), now.getDate() - 13)\n            };\n        },\n        [DaterangePresets.Last30Days]: (): DateRange => {\n            const now = this.calendarService.getCurrentDateUTC();\n            return {\n                endDate: now,\n                startDate: new Date(now.getFullYear(), now.getMonth(), now.getDate() - 29)\n            };\n        },\n        [DaterangePresets.ThisMonth]: (): DateRange => {\n            const now = this.calendarService.getCurrentDateUTC();\n            return {\n                startDate: new Date(now.getFullYear(), now.getMonth(), 1),\n                endDate: now\n            };\n        },\n        [DaterangePresets.LastMonth]: (): DateRange => {\n            const now = this.calendarService.getCurrentDateUTC();\n            return {\n                startDate: new Date(now.getFullYear(), now.getMonth() - 1, 1),\n                endDate: new Date(now.getFullYear(), now.getMonth(), 0)\n            };\n        },\n        [DaterangePresets.Last60Days]: (): DateRange => {\n            const now = this.calendarService.getCurrentDateUTC();\n            return {\n                endDate: now,\n                startDate: new Date(now.getFullYear(), now.getMonth(), now.getDate() - 59)\n            };\n        }\n    };\n\n    isCustomPreset(preset: DaterangePresets | DaterangeCustomPreset): boolean {\n        return preset.hasOwnProperty('label') && preset.hasOwnProperty('startDate') && preset.hasOwnProperty('endDate');\n    }\n\n    getPresetName(preset: DaterangePresets | DaterangeCustomPreset): string {\n        return this.isCustomPreset(preset)\n            ? (preset as DaterangeCustomPreset).label\n            : DEFAULT_DATERANGE_PRESET_NAMES[preset as DaterangePresets];\n    }\n\n    determinePreset(\n        daterange: DateRange,\n        availablePresets: DaterangePresets[] | DaterangeCustomPreset[] = null,\n        params?: any\n    ): DaterangePresets | DaterangeCustomPreset {\n        if (!availablePresets) {\n            availablePresets = this.defaultPresetList;\n        }\n        if (!daterange || !daterange.startDate || !daterange.endDate) {\n            return null;\n        }\n        return this.getPresetBySelectedDates(daterange, availablePresets);\n    }\n\n    getPresetRange(preset: DaterangePresets | DaterangeCustomPreset, params?: any): DateRange {\n        return this.isCustomPreset(preset)\n            ? {\n                  startDate: (preset as DaterangeCustomPreset).startDate,\n                  endDate: (preset as DaterangeCustomPreset).endDate\n              }\n            : this.presetDateFunctions[preset as DaterangePresets]();\n    }\n\n    getDefaultRange(): DateRange {\n        return this.presetDateFunctions[DaterangePresets.Last7Days]();\n    }\n\n    getCurrentDateUTC = function () {\n        return this.calendarService.getCurrentDateUTC();\n    };\n\n    getFullUTCDate(date = new Date()): Date {\n        return new Date(\n            date.getUTCFullYear(),\n            date.getUTCMonth(),\n            date.getUTCDate(),\n            date.getUTCHours(),\n            date.getUTCMinutes(),\n            date.getUTCSeconds()\n        );\n    }\n\n    private getPresetBySelectedDates(\n        daterange: DateRange,\n        availablePresets: DaterangePresets[] | DaterangeCustomPreset[]\n    ): DaterangePresets | DaterangeCustomPreset {\n        for (const preset of availablePresets) {\n            const presetRange = this.getPresetRange(preset);\n            if (this.isSameRange(daterange, presetRange)) {\n                return preset;\n            }\n        }\n        return null;\n    }\n\n    private isSameRange(selectedRange: DateRange, presetRange: DateRange): boolean {\n        return this.isSameDay(selectedRange.startDate, presetRange.startDate) && this.isSameDay(selectedRange.endDate, presetRange.endDate);\n    }\n\n    private isSameDay(date1: Date, date2: Date): boolean {\n        return date1.getFullYear() === date2.getFullYear() && date1.getMonth() === date2.getMonth() && date1.getDate() === date2.getDate();\n    }\n}\n","export const DEFAULT_PLACEHOLDER_TEXT = 'Select';\n","import {Directive, ElementRef, EventEmitter, Input, OnDestroy, OnInit, Output, TemplateRef, ViewChild} from '@angular/core';\nimport {ControlValueAccessor, FormControl, Validators} from '@angular/forms';\nimport {DatePipe} from '@angular/common';\nimport {BehaviorSubject, Subject} from 'rxjs';\nimport {isNullOrUndefined, isSameDates} from '@ironsource/fusion-ui/utils';\nimport {LogService} from '@ironsource/fusion-ui/services/log';\nimport {UniqueIdService} from '@ironsource/fusion-ui/services/unique-id';\nimport {DropdownSelectConfigurations} from '@ironsource/fusion-ui/components/dropdown-select/entities';\nimport {IconData} from '@ironsource/fusion-ui/components/icon/v1';\nimport {\n    DaterangeCustomPreset,\n    DaterangeOptions,\n    DaterangePresets,\n    DaterangeSelection\n} from '@ironsource/fusion-ui/components/daterange/entities';\nimport {CalendarComponentConfigurations} from '@ironsource/fusion-ui/components/calendar/common/base';\nimport {CalendarType, Day} from '@ironsource/fusion-ui/components/calendar/entities';\nimport {CalendarService} from '@ironsource/fusion-ui/components/calendar/common/base';\nimport {DEFAULT_DATE_FORMAT} from './config';\nimport {DaterangeService} from './daterange.service';\nimport {DEFAULT_PLACEHOLDER_TEXT} from './daterange.configuration';\nimport {ApiBase} from '@ironsource/fusion-ui/components/api-base';\nimport {map, takeUntil} from 'rxjs/operators';\nimport {InputConfiguration, InputSize} from '@ironsource/fusion-ui/components/input';\n\n@Directive()\nexport abstract class DaterangeBaseComponent extends ApiBase implements OnInit, OnDestroy, ControlValueAccessor {\n    /** @internal */\n    @Input() id: string;\n    /** @internal */\n    @Input() presetsHeaderTemplate: TemplateRef<any>;\n    /** @internal */\n    @Input() minDate: Date;\n    /** @internal */\n    @Input() maxDate: Date;\n    /** @internal */\n    @Input() extraParams: any;\n\n    @Input()\n    set options(value: DaterangeOptions) {\n        this.daterangeOptions = {...value};\n        this.onOptionsChanges();\n    }\n\n    get options(): DaterangeOptions {\n        return this.daterangeOptions;\n    }\n\n    /** @internal */\n    @Output() closed = new EventEmitter();\n    /** @internal */\n    @Output() applied = new EventEmitter();\n    /** @internal */\n    @Output() daySelected = new EventEmitter<DaterangeSelection>();\n\n    /** @internal */\n    @ViewChild('overlay') overlay: ElementRef;\n    /** @internal */\n    @ViewChild('chipContent', {static: true}) chipContent: TemplateRef<any>;\n    /** @internal */\n    @ViewChild('trigger') trigger: ElementRef;\n\n    /** @internal */\n    dropdownSelectConfigurations$ = new BehaviorSubject<DropdownSelectConfigurations>({});\n    /** @internal */\n    pevIconName: IconData;\n    /** @internal */\n    nextIconName: IconData;\n\n    /** @internal */\n    isOpen$ = new BehaviorSubject<boolean>(false);\n    /** @internal */\n    error = '';\n    /** @internal */\n    currentMonths: Date[] = [];\n    /** @internal */\n    defaultOptions: DaterangeOptions = {\n        calendarAmount: 2,\n        format: DEFAULT_DATE_FORMAT,\n        presets: [],\n        size: 'medium'\n    };\n    /** @internal */\n    selection: DaterangeSelection = {startDate: null, endDate: null};\n    /** @internal */\n    currentSelectionFormatted: string;\n    /** @internal */\n    selectionStarted: Day = null;\n    /** @internal */\n    originalSelection: DaterangeSelection = null;\n    /** @internal */\n    currentPreset: DaterangePresets | DaterangeCustomPreset = null;\n    /** @internal */\n    overlayAlign$ = new BehaviorSubject<string>('');\n    /** @internal */\n    selected$ = new BehaviorSubject<string>('');\n    /** @internal */\n    defaultPlaceholder = DEFAULT_PLACEHOLDER_TEXT;\n\n    /** @internal for time selector */\n    fcHasTimeSelector = new FormControl<boolean>(false);\n    /** @internal */\n    fcStartTime = new FormControl('00:00', [Validators.required]);\n    /** @internal */\n    fcEndTime = new FormControl('23:59', [Validators.required]);\n    /** @internal */\n    inputTimeOptions: InputConfiguration = {type: 'time', options: {width: '82px', size: 'small' as InputSize}};\n\n    protected daterangeOptions: DaterangeOptions;\n\n    public get isPresetsShown(): boolean {\n        return !!this.presetsHeaderTemplate || (Array.isArray(this.daterangeOptions.presets) && !!this.daterangeOptions.presets.length);\n    }\n\n    public get isSingleDatePicker(): boolean {\n        return this.options.calendarAmount === 1;\n    }\n\n    private originalMaxDate: Date;\n\n    private onDestroy$ = new Subject<void>();\n\n    constructor(\n        /** @internal */\n        public daterangeService: DaterangeService,\n        private calendarService: CalendarService,\n        private elemRef: ElementRef,\n        private logService: LogService,\n        private uniqueIdService: UniqueIdService\n    ) {\n        super();\n        this.defaultOptions.presets = [...this.daterangeService.defaultPresetList];\n    }\n\n    ngOnInit() {\n        this.contentTemplate = this.chipContent;\n        this.id = this.id || `fs-daterange-${this.uniqueIdService.getUniqueId()}`;\n        if (!isNullOrUndefined(this.maxDate)) {\n            this.originalMaxDate = this.maxDate;\n        }\n        this.onOptionsChanges();\n        this.resetState$\n            .asObservable()\n            .pipe(takeUntil(this.onDestroy$))\n            .subscribe(_ => {\n                this.writeValue(null);\n                this.propagateChange(null);\n            });\n    }\n\n    ngOnDestroy() {\n        this.resetState$.complete();\n        this.onDestroy$.next();\n        this.onDestroy$.complete();\n    }\n    /** @internal */\n    changeConfig(val: string) {\n        this.elemRef.nativeElement.style.setProperty('--fu-chip-max-width', val);\n    }\n    /** @internal */\n    valueSelected() {\n        return this.selected$\n            .asObservable()\n            .pipe(\n                map(value =>\n                    value !== (this.options?.placeholder || DEFAULT_PLACEHOLDER_TEXT)\n                        ? {value, isSelected: !!value}\n                        : {value: null, isSelected: false}\n                )\n            );\n    }\n    /** @internal */\n    open() {\n        this.trigger.nativeElement.click();\n    }\n    /** @internal */\n    selectPreset(preset, cohort?: number) {\n        this.selection = this.daterangeService.getPresetRange(preset, cohort);\n        this.currentPreset = preset;\n        this.initMonth(this.selection.endDate);\n    }\n    /** @internal */\n    getCalendarConfigurations(month: Date): CalendarComponentConfigurations {\n        return {\n            parentDaterangeId: this.id,\n            month,\n            minDate: this.minDate,\n            maxDate: this.maxDate,\n            allowFutureSelection: this.options.allowFutureSelection ?? !this.isSingleDatePicker,\n            selection: this.selection,\n            calendarType: this.isSingleDatePicker ? CalendarType.DATE_PICKER : CalendarType.DATE_RANGE\n        };\n    }\n    /** @internal */\n    toggle() {\n        if (!this.isOpen$.getValue() && !this.isComponentDisabled$.getValue()) {\n            this.calculateOverlayAlignPosition();\n            this.currentPreset = this.determinePreset(this.originalSelection, this.extraParams);\n            this.isOpen$.next(!this.isOpen$.getValue());\n            this.setPlaceholder({isOpen: true});\n        } else {\n            this.close();\n        }\n    }\n    /** @internal */\n    onOutsideClick(target: HTMLElement) {\n        if (this.validateClickOutside(target)) {\n            this.close();\n        }\n    }\n    /** @internal */\n    apply() {\n        if (this.isOpen$.getValue() && this.isTimeSelectorValid()) {\n            this.isOpen$.next(false);\n            // todo: check it\n            // if (this.selection?.endDate) {\n            //     this.selection.endDate;\n            // }\n\n            this.originalSelection = {...this.selection};\n            this.setPlaceholder({isOpen: false});\n            this.selectionStarted = null;\n            this.applied.emit();\n\n            const valueToPropagate = this.isSingleDatePicker\n                ? {date: this.originalSelection.startDate}\n                : this.originalSelection?.startDate && this.originalSelection?.endDate\n                ? this.setValueToPropagate(this.originalSelection)\n                : null;\n            this.selected$.next(this.getCurrentSelectionFormatted());\n\n            this.propagateChange(valueToPropagate);\n            this.clearRangeDaysLimit();\n        }\n    }\n    /** @internal */\n    close() {\n        if (this.isOpen$.getValue()) {\n            this.isOpen$.next(false);\n            if (!!this.originalSelection?.startDate && !!this.originalSelection?.endDate) {\n                this.initMonth(this.originalSelection.endDate);\n                this.selectionStarted = null;\n                this.selection = {...this.originalSelection};\n            } else {\n                this.selection = {endDate: null, startDate: null};\n            }\n            this.clearRangeDaysLimit();\n            this.closed.emit();\n            this.setPlaceholder({isOpen: false});\n        }\n    }\n    /** @internal */\n    onMonthChange(direction: string) {\n        let newMonth = null;\n        switch (direction) {\n            case 'next': {\n                const lastMonth = this.currentMonths[this.currentMonths.length - 1];\n                newMonth = new Date(lastMonth.getFullYear(), lastMonth.getMonth() + 1, lastMonth.getDate());\n                this.currentMonths.push(newMonth);\n                this.currentMonths.shift();\n                break;\n            }\n            case 'previous': {\n                const firstMonth = this.currentMonths[0];\n                newMonth = new Date(firstMonth.getFullYear(), firstMonth.getMonth() - 1, firstMonth.getDate());\n                this.currentMonths.unshift(newMonth);\n                this.currentMonths.pop();\n                break;\n            }\n        }\n    }\n    /** @internal */\n    onSelectDay(day: Day) {\n        this.currentPreset = null;\n\n        if (\n            this.selectionStarted &&\n            day.date >= this.selectionStarted.date &&\n            day.date.getTime() !== this.selectionStarted.date.getTime()\n        ) {\n            this.onSelectEndDate(day);\n        } else {\n            this.onSelectStartDate(day);\n        }\n\n        this.daySelected.emit(this.selection);\n        if (this.isSingleDatePicker) {\n            this.apply();\n        }\n    }\n    /** @internal */\n    getCurrentSelectionFormatted() {\n        let textToDisplay = this.daterangeOptions?.placeholder ?? DEFAULT_PLACEHOLDER_TEXT;\n        const preset = this.determinePreset(this.originalSelection);\n        if (preset && !this.extraParams) {\n            textToDisplay = this.daterangeService.getPresetName(preset);\n        } else if (!!this.originalSelection?.startDate && !!this.originalSelection?.endDate) {\n            const datePipe = new DatePipe('en-US');\n            const startDate = datePipe.transform(this.originalSelection.startDate, this.options.format);\n            const endDate = datePipe.transform(this.originalSelection.endDate, this.options.format);\n\n            const startTime = this.fcHasTimeSelector.value ? this.fcStartTime.value : '';\n            const endTime = this.fcHasTimeSelector.value ? this.fcEndTime.value : '';\n\n            textToDisplay = isSameDates(this.originalSelection.startDate, this.originalSelection.endDate)\n                ? `${startDate}${startTime ? ' start at  ' + startTime : ''}${endTime ? ' end at ' + endTime : ''}`\n                : `${startDate}${startTime ? ' at ' + startTime : ''} - ${endDate}${endTime ? ' at ' + endTime : ''}`;\n        }\n        this.currentSelectionFormatted = textToDisplay;\n        return textToDisplay;\n    }\n    /** @internal */\n    onWriteValue(value: DaterangeSelection): void {\n        if (value?.date || value?.startDate || value?.endDate) {\n            if (this.isSingleDatePicker) {\n                if (!value.date || value.startDate || value.endDate) {\n                    this.logService.error(new Error('Single Datepicker object should be {date: Date}'));\n                } else {\n                    value.startDate = value.date;\n                    value.endDate = value.date;\n                }\n            }\n\n            if (this.options.withTimeSelect && !!value.startTime && !!value.endTime) {\n                this.fcHasTimeSelector.setValue(true);\n                this.fcStartTime.setValue(value.startTime);\n                this.fcEndTime.setValue(value.endTime);\n            }\n\n            this.selection = {...value};\n\n            if (!!this.selection?.endDate) {\n                this.initMonth(this.selection.endDate);\n            }\n\n            this.originalSelection = {...this.selection};\n        } else {\n            this.selection = {endDate: null, startDate: null};\n            this.originalSelection = null;\n        }\n        this.selected$.next(this.getCurrentSelectionFormatted());\n        this.setPlaceholder();\n    }\n    /** @internal */\n    setPlaceholder(configurations: DropdownSelectConfigurations = {}) {\n        this.dropdownSelectConfigurations$.next({\n            ...this.dropdownSelectConfigurations$.getValue(),\n            placeholder: {value: this.getCurrentSelectionFormatted()},\n            ...configurations\n        });\n    }\n\n    private validateClickOutside(target: HTMLElement): boolean {\n        return !target.closest('td[data-datetime]');\n    }\n\n    private calculateOverlayAlignPosition() {\n        // in case no was calculation yet\n        if (this.overlayAlign$.getValue() === '') {\n            // do calculation for overlay alight position\n            setTimeout(() => {\n                this.overlayAlign$.next('right'); // default - align right\n                // because it will be put to DOM on next \"tick\" - use timeout '0'\n                const overlayClientRect = this.overlay.nativeElement.getBoundingClientRect();\n                const componentClientRect = this.elemRef.nativeElement.getBoundingClientRect();\n                if (overlayClientRect.width > componentClientRect.width) {\n                    // need check if has a place on left\n                    console.log('ov', this.overlay.nativeElement);\n                    console.log('ov', overlayClientRect);\n                    console.log('el', this.elemRef.nativeElement);\n                    console.log('el', componentClientRect);\n                    console.log('>>', componentClientRect.x + componentClientRect.width, overlayClientRect.width);\n\n                    if (!(componentClientRect.x + componentClientRect.width >= overlayClientRect.width)) {\n                        this.overlayAlign$.next('left');\n                    }\n                }\n            }, 0);\n        }\n    }\n\n    private determinePreset(range, params?) {\n        return this.daterangeService.determinePreset(range, this.options.presets, params);\n    }\n\n    private initMonth(date) {\n        this.currentMonths = [];\n        for (let i = 0; i < this.options.calendarAmount; i++) {\n            const month = new Date(date.getFullYear(), date.getMonth() - i, 1);\n            this.currentMonths.unshift(month);\n        }\n    }\n\n    protected onOptionsChanges(): void {\n        if (this.daterangeOptions) {\n            this.daterangeOptions = Object.assign({}, this.defaultOptions, this.daterangeOptions);\n        } else {\n            this.daterangeOptions = this.defaultOptions;\n        }\n        if (!!this.daterangeOptions?.placeholder) {\n            this.dropdownSelectConfigurations$.next({\n                ...this.dropdownSelectConfigurations$.getValue(),\n                placeholder: {value: this.daterangeOptions.placeholder}\n            });\n        }\n\n        if (!isNullOrUndefined(this.daterangeOptions?.overlayAlignPosition)) {\n            this.overlayAlign$.next(this.daterangeOptions.overlayAlignPosition);\n        }\n\n        this.initMonth(this.calendarService.getCurrentDateUTC());\n    }\n\n    private onSelectStartDate(day: Day): void {\n        this.selectionStarted = day;\n        this.selection = {startDate: day.date, endDate: day.date};\n        this.setRangeDaysLimit();\n    }\n\n    private onSelectEndDate(day: Day): void {\n        this.selection = {startDate: this.selectionStarted.date, endDate: day.date};\n        this.selectionStarted = null;\n        this.clearRangeDaysLimit();\n    }\n\n    private setRangeDaysLimit(): void {\n        if (!!this.daterangeOptions?.maxDaysInSelectedRange) {\n            const rangeMaxEndDate = new Date(this.selection.startDate);\n            rangeMaxEndDate.setDate(rangeMaxEndDate.getDate() + (this.daterangeOptions?.maxDaysInSelectedRange - 1));\n            this.maxDate = new Date(rangeMaxEndDate);\n        }\n    }\n\n    private clearRangeDaysLimit(): void {\n        if (!!this.daterangeOptions?.maxDaysInSelectedRange) {\n            this.maxDate = !isNullOrUndefined(this.originalMaxDate) ? this.originalMaxDate : null;\n        }\n    }\n\n    private isTimeSelectorValid(): boolean {\n        if (this.options?.withTimeSelect) {\n            if (this.fcHasTimeSelector.value) {\n                return this.fcStartTime.valid && this.fcEndTime.valid;\n            }\n        }\n        return true;\n    }\n\n    /** @internal */\n    setValueToPropagate(value: DaterangeSelection): DaterangeSelection {\n        if (this.fcHasTimeSelector.value) {\n            return {...value, startTime: this.fcStartTime.value, endTime: this.fcEndTime.value};\n        } else if (this.options.withTimeSelect) {\n            return {startDate: value.startDate, endDate: value.endDate};\n        }\n        return value;\n    }\n\n    /** @internal */\n    propagateChange = (_: DaterangeSelection) => {};\n    /** @internal */\n    writeValue(value: DaterangeSelection): void {\n        this.onWriteValue(value);\n    }\n    /** @internal */\n    registerOnChange(fn: any): void {\n        this.propagateChange = fn;\n    }\n    /** @internal */\n    registerOnTouched(): void {}\n}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public-api';\n"],"names":["i1.DaterangeService","i2"],"mappings":"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"}