{"version":3,"file":"fundamental-ngx-core-datetime-picker.mjs","sources":["../../../../libs/core/datetime-picker/tokens.ts","../../../../libs/core/datetime-picker/datetime-picker-mobile/datetime-picker-mobile.component.ts","../../../../libs/core/datetime-picker/datetime-picker-mobile/datetime-picker-mobile.component.html","../../../../libs/core/datetime-picker/errors.ts","../../../../libs/core/datetime-picker/datetime-picker.component.ts","../../../../libs/core/datetime-picker/datetime-picker.component.html","../../../../libs/core/datetime-picker/datetime-picker.module.ts","../../../../libs/core/datetime-picker/fundamental-ngx-core-datetime-picker.ts"],"sourcesContent":["import { InjectionToken } from '@angular/core';\nimport { MobileModeConfig } from '@fundamental-ngx/core/mobile-mode';\nimport { DateTimePicker } from './datetime-picker.model';\n\nexport const FD_DATETIME_PICKER_COMPONENT = new InjectionToken<DateTimePicker<any>>('FdDateTimePickerComponent');\nexport const FD_DATETIME_PICKER_MOBILE_CONFIG = new InjectionToken<MobileModeConfig>('FdDateTimePickerMobileConfig');\n","import { NgTemplateOutlet } from '@angular/common';\nimport { ChangeDetectionStrategy, Component, Inject, TemplateRef, ViewChild, ViewEncapsulation } from '@angular/core';\nimport { takeUntilDestroyed } from '@angular/core/rxjs-interop';\nimport { InitialFocusDirective, Nullable } from '@fundamental-ngx/cdk/utils';\nimport { ButtonBarComponent } from '@fundamental-ngx/core/bar';\nimport {\n    DialogBodyComponent,\n    DialogCloseButtonComponent,\n    DialogComponent,\n    DialogFooterComponent,\n    DialogHeaderComponent\n} from '@fundamental-ngx/core/dialog';\nimport { MobileModeBase, MobileModeControl } from '@fundamental-ngx/core/mobile-mode';\nimport { TitleComponent } from '@fundamental-ngx/core/title';\nimport { DateTimePicker } from '../datetime-picker.model';\nimport { FD_DATETIME_PICKER_COMPONENT, FD_DATETIME_PICKER_MOBILE_CONFIG } from '../tokens';\n\n@Component({\n    selector: 'fd-datetime-picker-mobile',\n    templateUrl: './datetime-picker-mobile.component.html',\n    encapsulation: ViewEncapsulation.None,\n    changeDetection: ChangeDetectionStrategy.OnPush,\n    imports: [\n        TitleComponent,\n        NgTemplateOutlet,\n        DialogComponent,\n        DialogBodyComponent,\n        DialogFooterComponent,\n        DialogHeaderComponent,\n        DialogCloseButtonComponent,\n        ButtonBarComponent,\n        InitialFocusDirective\n    ]\n})\nexport class DatetimePickerMobileComponent<D> extends MobileModeBase<DateTimePicker<D>> {\n    /** @hidden */\n    @ViewChild('dialogTemplate') dialogTemplate: TemplateRef<any>;\n\n    /** @hidden */\n    private _selectedBackup: Nullable<D>;\n\n    /** @hidden */\n    constructor(\n        @Inject(FD_DATETIME_PICKER_MOBILE_CONFIG)\n        public dateTimePickerConfig: { pickerTemplate: TemplateRef<any> },\n        @Inject(FD_DATETIME_PICKER_COMPONENT) datePickerComponent: DateTimePicker<D>\n    ) {\n        super(datePickerComponent, MobileModeControl.DATETIME_PICKER);\n\n        this._component.isOpenChange.subscribe((isOpen) => {\n            this._toggleDialog(isOpen);\n        });\n    }\n\n    /** @hidden */\n    handleApprove(): void {\n        this.dialogRef.close();\n        this._component.dialogApprove();\n    }\n\n    /** @hidden */\n    handleDismiss(): void {\n        this.dialogRef.dismiss();\n        this._component.dialogDismiss(this._selectedBackup);\n    }\n\n    /** @hidden */\n    private _toggleDialog(open: boolean): void {\n        if (open) {\n            this._selectedBackup = this._component.date!;\n            if (!this._dialogService.hasOpenDialogs()) {\n                this._open();\n            }\n        }\n    }\n\n    /** @hidden */\n    private _open(): void {\n        this.dialogRef = this._dialogService.open(this.dialogTemplate, {\n            mobile: true,\n            backdropClickCloseable: false,\n            disablePaddings: true,\n            ...this.dialogConfig,\n            container: this._elementRef.nativeElement\n        });\n\n        this._selectedBackup = this._component.date;\n\n        const refSub = this.dialogRef.afterClosed.pipe(takeUntilDestroyed(this._destroyRef)).subscribe({\n            error: (type) => {\n                if (type === 'escape') {\n                    this._component.dialogDismiss(this._selectedBackup);\n                    refSub.unsubscribe();\n                }\n            }\n        });\n    }\n}\n","<ng-template [fdDialogTemplate] let-dialog let-dialogConfig=\"dialogConfig\" #dialogTemplate>\n    <fd-dialog [dialogConfig]=\"dialogConfig\" [dialogRef]=\"dialog\">\n        <fd-dialog-header>\n            @if (mobileConfig.title) {\n                <h1 fd-title>{{ mobileConfig.title }}</h1>\n            }\n            @if (mobileConfig.hasCloseButton) {\n                <button title=\"Close\" fd-dialog-close-button [mobile]=\"true\" (click)=\"handleDismiss()\"></button>\n            }\n        </fd-dialog-header>\n        <fd-dialog-body>\n            <ng-template [ngTemplateOutlet]=\"dateTimePickerConfig.pickerTemplate || null\"></ng-template>\n        </fd-dialog-body>\n        <fd-dialog-footer>\n            @if (mobileConfig.approveButtonText) {\n                <fd-button-bar fdType=\"emphasized\" [label]=\"mobileConfig.approveButtonText!\" (click)=\"handleApprove()\">\n                </fd-button-bar>\n            }\n            @if (mobileConfig.cancelButtonText) {\n                <fd-button-bar fdkInitialFocus [label]=\"mobileConfig.cancelButtonText!\" (click)=\"handleDismiss()\">\n                </fd-button-bar>\n            }\n        </fd-dialog-footer>\n    </fd-dialog>\n</ng-template>\n","/** Creates an error to be thrown when attempting to use an invalid date implementation. */\nexport function createMissingDateImplementationError(provider: string): Error {\n    return Error(\n        `FdDatetimePicker: No provider found for ${provider}. You must import one of the following ` +\n            `modules at your application root: FdDatetimeModule, or provide a ` +\n            `custom implementation.`\n    );\n}\n","import {\n    AfterViewInit,\n    booleanAttribute,\n    ChangeDetectionStrategy,\n    ChangeDetectorRef,\n    Component,\n    ComponentRef,\n    ElementRef,\n    EventEmitter,\n    forwardRef,\n    inject,\n    Inject,\n    Injector,\n    input,\n    Input,\n    OnChanges,\n    OnDestroy,\n    OnInit,\n    Optional,\n    Output,\n    TemplateRef,\n    ViewChild,\n    ViewEncapsulation\n} from '@angular/core';\nimport { ControlValueAccessor, FormsModule, NG_VALIDATORS, NG_VALUE_ACCESSOR, Validator } from '@angular/forms';\nimport { Subscription } from 'rxjs';\nimport { filter } from 'rxjs/operators';\n\nimport {\n    CalendarComponent,\n    CalendarYearGrid,\n    DaysOfWeek,\n    FdCalendarView,\n    FdCalendarViewEnum\n} from '@fundamental-ngx/core/calendar';\nimport {\n    convertToDesiredFormat,\n    DATE_TIME_FORMATS,\n    DatetimeAdapter,\n    DateTimeFormats,\n    TranslateDayPeriodPipe\n} from '@fundamental-ngx/core/datetime';\nimport {\n    FormItemControl,\n    FormMessageComponent,\n    PopoverFormMessageService,\n    registerFormItemControl\n} from '@fundamental-ngx/core/form';\nimport { InputGroupComponent, InputGroupInputDirective } from '@fundamental-ngx/core/input-group';\nimport {\n    PopoverBodyComponent,\n    PopoverBodyFooterDirective,\n    PopoverComponent,\n    PopoverControlComponent,\n    PopoverService\n} from '@fundamental-ngx/core/popover';\nimport { Placement, SpecialDayRule } from '@fundamental-ngx/core/shared';\n\nimport { NgClass, NgTemplateOutlet } from '@angular/common';\nimport { FormStates } from '@fundamental-ngx/cdk/forms';\nimport { DynamicComponentService, FocusTrapService, Nullable } from '@fundamental-ngx/cdk/utils';\nimport { BarComponent, BarElementDirective, BarRightDirective } from '@fundamental-ngx/core/bar';\nimport { ButtonComponent } from '@fundamental-ngx/core/button';\nimport { MobileModeConfig } from '@fundamental-ngx/core/mobile-mode';\nimport { SegmentedButtonComponent } from '@fundamental-ngx/core/segmented-button';\nimport { TimeComponent } from '@fundamental-ngx/core/time';\nimport { FdTranslatePipe } from '@fundamental-ngx/i18n';\nimport { DatetimePickerMobileComponent } from './datetime-picker-mobile/datetime-picker-mobile.component';\nimport { DateTimePicker } from './datetime-picker.model';\nimport { createMissingDateImplementationError } from './errors';\nimport { FD_DATETIME_PICKER_COMPONENT, FD_DATETIME_PICKER_MOBILE_CONFIG } from './tokens';\n\n/**\n * The datetime picker component is an opinionated composition of the fd-popover,\n * fd-calendar and fd-time components to accomplish the UI pattern for picking a date and time.\n * Supports Angular Forms.\n * ```html\n * <fd-date-time-picker [(ngModel)]=\"dateTime\"></fd-date-time-picker>\n * ```\n */\n@Component({\n    selector: 'fd-datetime-picker',\n    templateUrl: './datetime-picker.component.html',\n    styleUrl: './datetime-picker.component.scss',\n    providers: [\n        {\n            provide: NG_VALUE_ACCESSOR,\n            useExisting: forwardRef(() => DatetimePickerComponent),\n            multi: true\n        },\n        {\n            provide: NG_VALIDATORS,\n            useExisting: forwardRef(() => DatetimePickerComponent),\n            multi: true\n        },\n        {\n            provide: FD_DATETIME_PICKER_COMPONENT,\n            useExisting: DatetimePickerComponent\n        },\n        registerFormItemControl(DatetimePickerComponent),\n        PopoverFormMessageService,\n        PopoverService,\n        DynamicComponentService\n    ],\n    encapsulation: ViewEncapsulation.None,\n    changeDetection: ChangeDetectionStrategy.OnPush,\n    host: {\n        class: 'fd-datetime'\n    },\n    imports: [\n        NgTemplateOutlet,\n        PopoverControlComponent,\n        PopoverBodyComponent,\n        PopoverBodyFooterDirective,\n        PopoverComponent,\n        InputGroupComponent,\n        InputGroupInputDirective,\n        FormsModule,\n        FormMessageComponent,\n        SegmentedButtonComponent,\n        ButtonComponent,\n        CalendarComponent,\n        NgClass,\n        TimeComponent,\n        BarComponent,\n        BarRightDirective,\n        BarElementDirective,\n        FdTranslatePipe,\n        TranslateDayPeriodPipe\n    ]\n})\nexport class DatetimePickerComponent<D>\n    implements\n        DateTimePicker<D>,\n        OnInit,\n        OnDestroy,\n        OnChanges,\n        AfterViewInit,\n        ControlValueAccessor,\n        Validator,\n        FormItemControl\n{\n    /** Placeholder for the inner input element. */\n    @Input()\n    placeholder = '';\n\n    /**\n     *  The placement of the popover. It can be one of: top, top-start, top-end, bottom,\n     *  bottom-start, bottom-end, right, right-start, right-end, left, left-start, left-end.\n     */\n    @Input()\n    placement: Placement = 'bottom-start';\n\n    /** The element to which the popover should be appended. */\n    @Input()\n    appendTo: ElementRef;\n\n    /** Whether the component is disabled. */\n    @Input()\n    disabled: boolean;\n\n    /** Id attribute for input element inside DateTimePicker component */\n    @Input()\n    inputId: string;\n\n    /** If it is mandatory field */\n    @Input()\n    required = false;\n\n    /** Define a custom datetime format. Can be a string for DayjsDatetimeAdapter or object for FdDatetimeAdapter  */\n    @Input()\n    customDateTimeFormat: unknown;\n\n    /**\n     * Whether the time component should be meridian (am/pm).\n     * Default value is based on the current locale format option\n     * */\n    @Input()\n    meridian: boolean;\n\n    /**\n     * Whether the time component shows seconds.\n     * Default value is based on the current locale format option\n     * */\n    @Input()\n    displaySeconds: boolean;\n\n    /** aria-labelledby for element describing date-picker. */\n    @Input()\n    ariaLabelledBy: Nullable<string>;\n\n    /** Text displayed in message */\n    @Input()\n    set message(message: string) {\n        this._message = message;\n    }\n\n    /** The trigger events that will open/close the message box.\n     *  Accepts any [HTML DOM Events](https://www.w3schools.com/jsref/dom_obj_event.asp). */\n    @Input()\n    set messageTriggers(triggers: string[]) {\n        this._messageTriggers = triggers;\n    }\n\n    /**\n     * Whether the time component shows minutes.\n     * Default value is based on the current locale format option\n     * */\n    @Input()\n    displayMinutes: boolean;\n\n    /**\n     * Whether the time component shows hours.\n     * Default value is based on the current locale format option\n     * */\n    @Input()\n    displayHours: boolean;\n\n    /** Whether to perform visual validation on the picker input. */\n    @Input()\n    useValidation = true;\n\n    /** Current selected date. Two-way binding is supported. */\n    @Input()\n    date: Nullable<D>;\n\n    /** Whether the popover is open. Two-way binding is supported. */\n    @Input()\n    isOpen = false;\n\n    /** The disableFunction for the calendar. */\n    @Input()\n    startingDayOfWeek: DaysOfWeek = 1;\n\n    /** Actually shown active view one of 'day' | 'month' | 'year' in calendar component*/\n    @Input()\n    activeView: FdCalendarView = FdCalendarViewEnum.Day;\n\n    /** Whether a null input is considered valid. */\n    @Input()\n    allowNull = true;\n\n    /**\n     * @Input when set to true time component will use 2 digits for each number.\n     * For example 9 will become 09\n     * but 12 will be kept as 12.\n     * Only uses by time component and does not change input format\n     */\n    @Input()\n    keepTwoDigitsTime = false;\n\n    /**\n     *  The state of the form control - applies css classes.\n     *  Also this is applied to message.\n     *  Can be `success`, `error`, `warning`, `information` or blank for default.\n     */\n    @Input()\n    set state(state: FormStates) {\n        this._state = state;\n    }\n\n    get state(): FormStates {\n        if (this.useValidation && this.isInvalidDateInput) {\n            return 'error';\n        }\n        return this._state;\n    }\n\n    /**\n     * @deprecated Popover is toggled with f4 key\n     */\n    @Input()\n    buttonFocusable = false;\n\n    /**\n     * Object to customize year grid,\n     * Row, Columns and method to display year can be modified\n     */\n    @Input()\n    yearGrid: CalendarYearGrid = {\n        rows: 4,\n        cols: 5\n    };\n\n    /**\n     * Object to customize aggregated year grid,\n     * Row, Columns and method to display year can be modified\n     */\n    @Input()\n    aggregatedYearGrid: CalendarYearGrid = {\n        rows: 4,\n        cols: 3\n    };\n\n    /**\n     * Whether user wants to mark sunday/saturday with `fd-calendar__item--weekend` class\n     */\n    @Input()\n    markWeekends = true;\n\n    /** @Input Whether to show spinner buttons */\n    @Input()\n    spinnerButtons = true;\n\n    /**\n     * Whether user wants to show week numbers next to days\n     */\n    @Input()\n    showWeekNumbers = true;\n\n    /** Whether or not to show the datetime picker footer with OK/cancel buttons. */\n    @Input()\n    showFooter = true;\n\n    /**\n     * Whether to recalculate value from the input as user types or on blur.\n     * By default, updates the value as user types.\n     * @default false\n     */\n    @Input({ transform: booleanAttribute })\n    processInputOnBlur = false;\n\n    /**\n     * Whether to prevent page scrolling when focusing date picker input field after calendar has been closed.\n     */\n    @Input()\n    preventScrollOnFocus = false;\n\n    /** Whether to render datetime picker in mobile mode. */\n    @Input()\n    mobile = false;\n\n    /** Mobile mode configuration. */\n    @Input()\n    mobileConfig: MobileModeConfig;\n\n    /** Whether calendar is used inside mobile in landscape mode, it also adds close button on right side */\n    @Input()\n    mobileLandscape = false;\n\n    /** Whether calendar is used inside mobile in portrait mode */\n    @Input()\n    mobilePortrait = false;\n\n    /** To set input width 100% */\n    @Input() isFullWidth = false;\n\n    /** Event emitted when the state of the isOpen property changes. */\n    @Output()\n    isOpenChange = new EventEmitter<boolean>();\n\n    /** Event thrown every time calendar active view is changed */\n    @Output()\n    public readonly activeViewChange: EventEmitter<FdCalendarView> = new EventEmitter<FdCalendarView>();\n\n    /** Event emitted when the date changes. This can be a time or day change. */\n    @Output()\n    readonly dateChange: EventEmitter<D> = new EventEmitter<D>();\n\n    /** Event emitted when the day changes from the calendar. */\n    @Output()\n    readonly calendarChange: EventEmitter<D> = new EventEmitter<D>();\n\n    /** Event emitted when the time changes from the time component. */\n    @Output()\n    readonly timeChange: EventEmitter<D> = new EventEmitter<D>();\n\n    /** Event emitted when popover closes. */\n    @Output()\n    // eslint-disable-next-line @angular-eslint/no-output-on-prefix\n    readonly onClose: EventEmitter<void> = new EventEmitter<void>();\n\n    /** Event emitted when datepicker changes it's \"touched\" state. */\n    @Output()\n    readonly touched: EventEmitter<void> = new EventEmitter<void>();\n\n    /** @hidden */\n    @ViewChild('inputGroupComponent', {\n        read: ElementRef\n    })\n    _inputGroupElement: ElementRef;\n\n    /** @hidden */\n    @ViewChild(InputGroupInputDirective, {\n        read: ElementRef\n    })\n    _inputElement: ElementRef<HTMLInputElement>;\n\n    /** @hidden */\n    @ViewChild('formMessageTemplate')\n    private readonly _formMessageTemplate: TemplateRef<any>;\n\n    /** @hidden */\n    @ViewChild('pickerTemplate')\n    private readonly _pickerTemplate: TemplateRef<any>;\n\n    /**\n     * Special days mark, it can be used by passing array of object with\n     * Special day number, list 1-20 [class:`fd-calendar__item--legend-{{number}}`] is available there:\n     * https://sap.github.io/fundamental-styles/components/calendar.html calendar special days section\n     * Rule accepts method with FdDate object as a parameter. ex:\n     * `rule: (fdDate: FdDate) => fdDate.getDay() === 1`, which will mark all sundays as special day.\n     */\n    specialDaysRules = input<SpecialDayRule<D>[]>([]);\n\n    /**\n     * Whether to show the calendar legend below the calendar.\n     * The legend displays explanations for special day markers.\n     */\n    showCalendarLegend = input(false, { transform: booleanAttribute });\n\n    /**\n     * Whether the calendar legend should display in a single column layout.\n     * When false (default), the legend items flow into multiple columns automatically.\n     */\n    legendCol = input(false, { transform: booleanAttribute });\n\n    /** Indicates when datetime input is in invalid state. */\n    get isInvalidDateInput(): boolean {\n        return this._isInvalidDateInput && this._touched;\n    }\n\n    /** @hidden Reference to the inner calendar component. */\n    @ViewChild(CalendarComponent, { static: false })\n    private set _calendarCmp(calendar: CalendarComponent<D>) {\n        setTimeout(() => {\n            calendar?.setCurrentlyDisplayed(this._calendarPendingDate);\n            calendar?.initialFocus();\n        });\n        this._calendarComponent = calendar;\n    }\n\n    /** @hidden */\n    _calendarComponent: CalendarComponent<D>;\n\n    /** @hidden */\n    _message: string | null = null;\n\n    /** @hidden */\n    _messageTriggers: string[] = ['focusin', 'focusout'];\n\n    /**\n     * @hidden\n     * Date of the input field. Internal use.\n     * For programmatic selection, use two-way binding on the date input.\n     */\n    _inputFieldDate: string | null = null;\n\n    /** @hidden */\n    _isInvalidDateInput = false;\n\n    /** @hidden The temporary Time object for use before 'OK' is pressed. Internal use. */\n    _tempTime: Nullable<D>;\n\n    /** @hidden The temporary CalendarDay object for use before 'OK' is pressed. Internal use. */\n    _tempDate: Nullable<D>;\n\n    /** @hidden */\n    _meridian: boolean;\n\n    /** @hidden */\n    _displaySeconds: boolean;\n\n    /** @hidden */\n    _displayMinutes: boolean;\n\n    /** @hidden */\n    _displayHours: boolean;\n\n    /** @hidden whether to display date or time in mobile mode */\n    _displayType: 'date' | 'time' = 'date';\n\n    /** @hidden */\n    _showPopoverContents = false;\n\n    /** @hidden */\n    private _state: FormStates = 'default';\n\n    /** @hidden */\n    private _calendarPendingDate: Nullable<D>;\n\n    /** @hidden */\n    private readonly _injector = inject(Injector);\n\n    /** @hidden */\n    private readonly _dynamicComponentService = inject(DynamicComponentService);\n\n    /** @hidden */\n    private readonly _focusTrapService = inject(FocusTrapService, {\n        optional: true\n    });\n\n    /** @hidden */\n    private _mobileComponentRef: Nullable<ComponentRef<DatetimePickerMobileComponent<D>>>;\n\n    /** @hidden */\n    private _subscriptions = new Subscription();\n\n    /** @hidden */\n    private _touched = false;\n\n    /** @hidden */\n    constructor(\n        private _elRef: ElementRef,\n        private _changeDetRef: ChangeDetectorRef,\n        // Use @Optional to avoid angular injection error message and throw our own which is more precise one\n        @Optional() private _dateTimeAdapter: DatetimeAdapter<D>,\n        @Optional() @Inject(DATE_TIME_FORMATS) private _dateTimeFormats: DateTimeFormats,\n        private _popoverFormMessage: PopoverFormMessageService\n    ) {\n        if (!this._dateTimeAdapter) {\n            throw createMissingDateImplementationError('DateTimeAdapter');\n        }\n        if (!this._dateTimeFormats) {\n            throw createMissingDateImplementationError('DATE_TIME_FORMATS');\n        }\n\n        // default model value\n        this.date = _dateTimeAdapter.now();\n    }\n\n    /**\n     * Function used to disable certain dates in the calendar.\n     * @param fdDate FdDate\n     */\n    @Input()\n    disableFunction: (value: D) => boolean = () => false;\n\n    /** @hidden */\n    onChange: (value: D | null) => void = () => {};\n\n    /** @hidden */\n    onTouched = (): void => {};\n\n    /** @hidden */\n    ngOnChanges(changes): void {\n        if (changes.date) {\n            this._setTempDateTime();\n        }\n\n        if (['displayHours', 'displayMinutes', 'displaySeconds', 'meridian'].some((prop) => prop in changes)) {\n            this._calculateTimeOptions();\n        }\n\n        if ('isOpen' in changes) {\n            this._showPopoverContents = this.isOpen;\n            this._changeDetRef.detectChanges();\n        }\n    }\n\n    /** @hidden */\n    ngOnInit(): void {\n        if (this.date) {\n            this._setTempDateTime();\n        }\n\n        this._calculateTimeOptions();\n\n        this._subscriptions.add(\n            this._dateTimeAdapter.localeChanges.pipe(filter(() => this._inputFieldDate !== '')).subscribe(() => {\n                this._setInput(this.date);\n                this._calculateTimeOptions();\n                this._changeDetRef.detectChanges();\n            })\n        );\n    }\n\n    /** @hidden */\n    ngOnDestroy(): void {\n        this._subscriptions.unsubscribe();\n        this._mobileComponentRef?.destroy();\n    }\n\n    /** @hidden */\n    ngAfterViewInit(): void {\n        this._InitialiseVariablesInMessageService();\n\n        if (this.mobile) {\n            this._setUpMobileMode();\n        }\n\n        // update bindings after rendering\n        // is needed to preperly reflect error state\n        setTimeout(() => {\n            this._changeDetRef.markForCheck();\n        });\n    }\n\n    /**\n     * @hidden\n     * Function that implements Validator Interface, adds validation support for forms\n     */\n    validate(): { [key: string]: any } | null {\n        return this.isCurrentModelValid() && !this._isInvalidDateInput\n            ? null\n            : {\n                  dateValidation: {\n                      valid: false\n                  }\n              };\n    }\n\n    /** Toggles the popover. */\n    togglePopover(): void {\n        if (this.isOpen) {\n            this.closePopover();\n        } else {\n            this.openPopover();\n        }\n    }\n\n    /**\n     * Method that handles calendar active view change and throws event.\n     */\n    handleCalendarActiveViewChange(activeView: FdCalendarView): void {\n        this.activeViewChange.emit(activeView);\n    }\n\n    /** Method that handles blur events on datetime picker input */\n    handleOnTouched(event?: FocusEvent): void {\n        this._touched = true;\n        this.onTouched();\n        this.touched.next();\n        if (event) {\n            this.handleInputChange((<HTMLInputElement>event.target).value, false);\n        }\n    }\n\n    /** Opens the popover. */\n    openPopover(): void {\n        if (!this.isOpen && !this.disabled) {\n            this._focusTrapService?.pauseCurrentFocusTrap();\n            this._showPopoverContents = true;\n            this._changeDetRef.detectChanges();\n            this.isOpen = true;\n            this._onOpenStateChanged(this.isOpen);\n        }\n    }\n\n    /** Closes the popover and refresh model */\n    closePopover(): void {\n        if (!this.isOpen) {\n            return;\n        }\n        this.onClose.emit();\n        this.isOpen = false;\n        this._changeDetRef.detectChanges();\n        this._onOpenStateChanged(this.isOpen);\n        this._focusTrapService?.unpauseCurrentFocusTrap();\n        this.handleOnTouched();\n        this._showPopoverContents = false;\n    }\n\n    /** @hidden */\n    setInvalidDateInputHandler(isInvalid: boolean): void {\n        this._isInvalidDateInput = isInvalid;\n    }\n\n    /** @hidden */\n    registerOnChange(fn: (selected: any) => { void }): void {\n        this.onChange = fn;\n    }\n\n    /** @hidden */\n    registerOnTouched(fn: any): void {\n        this.onTouched = fn;\n    }\n\n    /** @hidden */\n    setDisabledState(isDisabled: boolean): void {\n        this.disabled = isDisabled;\n        this._changeDetRef.detectChanges();\n    }\n\n    /**\n     * @hidden\n     * Function that provides support for ControlValueAccessor that allows to use [(ngModel)] or forms\n     */\n    writeValue(selected: Nullable<D>): void {\n        this.date = this._parseDate(selected);\n        this._isInvalidDateInput = !this._isModelValid(this.date);\n        if (this.isCurrentModelValid()) {\n            this._setTempDateTime();\n            this._refreshCurrentlyDisplayedCalendarDate(this.date);\n        }\n        this._setInput(this.date);\n    }\n\n    /**\n     * @hidden\n     * Method that is triggered by events from calendar component, when there is selected date changed.\n     * If invalid time model is detected, it takes time model data from TimeComponent.\n     */\n    handleDateChange(date: D): void {\n        this._tempDate = date;\n        if (!this.showFooter) {\n            this.submit();\n        }\n    }\n\n    /**\n     * @hidden\n     * Method that is triggered by events from time component, when there is selected time changed\n     */\n    handleTimeChange(time: D): void {\n        this._tempTime = time;\n        if (!this.showFooter) {\n            this.submit();\n        }\n    }\n\n    /**\n     * @hidden\n     * Method that is triggered when 'OK' button is pressed.\n     */\n    submit(): void {\n        // Initialize date and time values, defaulting to the current date if invalid\n        let currentDate = this._tempDate!;\n        let currentTime = this._tempTime!;\n\n        // Initialize date and time values, defaulting to the current date if invalid\n        if (!this._tempDate || !this._dateTimeAdapter.isValid(this._tempDate)) {\n            currentDate = this._dateTimeAdapter.today()!;\n        }\n        if (!this._tempTime || !this._dateTimeAdapter.isValid(this._tempTime)) {\n            currentTime = this._dateTimeAdapter.today()!;\n        }\n\n        try {\n            this.date = this._dateTimeAdapter.setTime(\n                currentDate,\n                this._dateTimeAdapter.getHours(currentTime),\n                this._dateTimeAdapter.getMinutes(currentTime),\n                this._dateTimeAdapter.getSeconds(currentTime)\n            );\n        } catch {\n            this.date = null;\n        }\n        this._isInvalidDateInput = !this.isCurrentModelValid();\n\n        this._setInput(this.date);\n\n        this.onChange(this.date);\n\n        if (this.showFooter) {\n            this.closePopover();\n        }\n    }\n\n    /**\n     * @hidden\n     * Function that is called when 'Cancel' button is pressed.\n     */\n    cancel(): void {\n        this._tempDate = this.date;\n        this._tempTime = this.date;\n        this.closePopover();\n    }\n\n    /**\n     * @hidden\n     * Looks like no one uses it. Should be removed?\n     */\n    focusArrowLeft(): void {\n        if (this._elRef.nativeElement.querySelector('#' + this._calendarComponent.id + '-left-arrow')) {\n            this._elRef.nativeElement.querySelector('#' + this._calendarComponent.id + '-left-arrow').focus();\n        }\n    }\n\n    /**\n     * @hidden\n     * Method, which is responsible for transforming string to datetime, depending on type or\n     * validation the results are different. It also changes to state of _isInvalidDateInput.\n     */\n    handleInputChange(inputStr: string, isTypeEvent: boolean): void {\n        if ((isTypeEvent && this.processInputOnBlur) || (!isTypeEvent && !this.processInputOnBlur)) {\n            // if processInputOnBlur === true, ignore type event\n            // if processInputOnBlur === false, ignore blur/enter event\n            return;\n        }\n        this._inputFieldDate = inputStr ?? '';\n        if (!inputStr) {\n            this._isInvalidDateInput = !this.allowNull;\n            this.date = null;\n            this.onChange(null);\n            return;\n        }\n\n        inputStr = convertToDesiredFormat(inputStr.toString());\n\n        this.date = this._parseDate(inputStr);\n        this._isInvalidDateInput = !this._isModelValid(this.date);\n\n        if (!this._isInvalidDateInput) {\n            this._setTempDateTime();\n            this._refreshCurrentlyDisplayedCalendarDate(this.date);\n        }\n        this.onChange(this.date);\n    }\n\n    /** @hidden */\n    dialogApprove(): void {\n        this.isOpen = false;\n        this.submit();\n    }\n\n    /** Method used to restore original value for mobile mode. */\n    dialogDismiss(value: D): void {\n        this.date = value;\n        this.isOpen = false;\n        this._setInput(this.date);\n\n        this.onChange(this.date);\n    }\n\n    /** @hidden */\n    _changeMessageVisibility(): void {\n        if (this.isOpen) {\n            this._popoverFormMessage.hide();\n        } else {\n            this._popoverFormMessage.show();\n        }\n    }\n\n    /** @hidden */\n    _onOpenStateChanged(isOpen: boolean): void {\n        this.isOpenChange.emit(isOpen);\n        this._changeMessageVisibility();\n        // focus input control every time popup is closed\n        if (!isOpen && this._inputElement) {\n            this._inputElement.nativeElement.focus({\n                preventScroll: this.preventScrollOnFocus\n            });\n        }\n        if (!isOpen) {\n            this._showPopoverContents = false;\n            this._changeDetRef.detectChanges();\n        }\n    }\n\n    /** Method that provides information if model selected date/dates have properly types and are valid */\n    isCurrentModelValid(): boolean {\n        return this._isModelValid(this.date);\n    }\n\n    /** Method that provides information if FdDateTime passed as arg has properly types and is valid */\n    private _isModelValid(date: Nullable<D>): boolean {\n        return (date === null && this.allowNull) || this._dateTimeAdapter.isValid(date);\n    }\n\n    /** @hidden */\n    private _setInput(dateTime: Nullable<D>): void {\n        this._inputFieldDate = dateTime ? this._formatDateTime(dateTime) : '';\n        this._changeDetRef.detectChanges();\n    }\n\n    /** @hidden */\n    private _refreshCurrentlyDisplayedCalendarDate(date: Nullable<D>): void {\n        this._calendarPendingDate = date;\n    }\n\n    /**\n     * @hidden\n     * Format date time entity.\n     */\n    private _formatDateTime(dateTime: D): string {\n        const formattedDate: string = this.customDateTimeFormat\n            ? this._dateTimeAdapter.format(dateTime, this.customDateTimeFormat)\n            : this._dateTimeAdapter.format(dateTime, this._dateTimeFormats.display.dateTimeInput);\n        return formattedDate || '';\n    }\n\n    /** @hidden */\n    private _InitialiseVariablesInMessageService(): void {\n        this._popoverFormMessage.init(this._inputGroupElement);\n        this._popoverFormMessage.message = this._formMessageTemplate;\n        this._popoverFormMessage.triggers = this._messageTriggers;\n    }\n\n    /** @hidden */\n    private _parseDate(date: unknown): D | null {\n        return this._dateTimeAdapter.parse(date, this._dateTimeFormats.parse.dateTimeInput);\n    }\n\n    /** @hidden */\n    private _setTempDateTime(): void {\n        this._tempDate = this.date;\n        this._tempTime = this.date;\n    }\n\n    /** @hidden */\n    private _calculateTimeOptions(): void {\n        const format = this._dateTimeFormats.display.dateTimeInput;\n\n        // default meridian option based on format option\n        this._meridian =\n            this.meridian != null ? this.meridian : this._dateTimeAdapter.isTimeFormatIncludesDayPeriod(format);\n\n        // default seconds option based on format option\n        this._displaySeconds =\n            this.displaySeconds != null\n                ? this.displaySeconds\n                : this._dateTimeAdapter.isTimeFormatIncludesSeconds(format);\n\n        // default minutes option based on format option\n        this._displayMinutes =\n            this.displayMinutes != null\n                ? this.displayMinutes\n                : this._dateTimeAdapter.isTimeFormatIncludesMinutes(format);\n\n        // default hours option based on format option\n        this._displayHours =\n            this.displayHours != null ? this.displayHours : this._dateTimeAdapter.isTimeFormatIncludesHours(format);\n    }\n\n    /** @hidden */\n    private _setUpMobileMode(): void {\n        const injector = Injector.create({\n            providers: [\n                { provide: FD_DATETIME_PICKER_COMPONENT, useValue: this },\n                {\n                    provide: FD_DATETIME_PICKER_MOBILE_CONFIG,\n                    useValue: { pickerTemplate: this._pickerTemplate }\n                }\n            ],\n            parent: this._injector\n        });\n\n        this._mobileComponentRef = this._dynamicComponentService.createDynamicComponent(\n            {},\n            DatetimePickerMobileComponent<D>,\n            {\n                container: 'body'\n            },\n            {\n                injector\n            }\n        );\n    }\n}\n","<ng-template [ngTemplateOutlet]=\"mobile ? controlTemplate : desktopTemplate\"></ng-template>\n<ng-template #desktopTemplate>\n    <fd-popover\n        [(isOpen)]=\"isOpen\"\n        (isOpenChange)=\"_onOpenStateChanged($event)\"\n        [focusTrapped]=\"true\"\n        [focusAutoCapture]=\"false\"\n        [triggers]=\"[]\"\n        [disabled]=\"disabled\"\n        [placement]=\"placement\"\n        [appendTo]=\"appendTo\"\n        [class.fd-popover-full-width]=\"isFullWidth\"\n    >\n        <fd-popover-control>\n            <ng-template [ngTemplateOutlet]=\"controlTemplate\"></ng-template>\n        </fd-popover-control>\n        <fd-popover-body\n            aria-labelledby=\"fd-form-message\"\n            [attr.aria-expanded]=\"isOpen\"\n            [attr.aria-hidden]=\"!isOpen\"\n            [style.display]=\"'block'\"\n        >\n            @if (_showPopoverContents) {\n                <ng-template [ngTemplateOutlet]=\"pickerTemplate\"></ng-template>\n            }\n        </fd-popover-body>\n    </fd-popover>\n</ng-template>\n<ng-template #controlTemplate>\n    <fd-input-group\n        #inputGroupComponent\n        [state]=\"state\"\n        [disabled]=\"disabled\"\n        [isControl]=\"true\"\n        [button]=\"true\"\n        [buttonFocusable]=\"buttonFocusable\"\n        [class.fd-datetime__mobile-control]=\"mobile\"\n        glyph=\"date-time\"\n        [isExpanded]=\"isOpen\"\n        [glyphAriaLabel]=\"('coreDatetimePicker.displayDatetimeToggleLabel' | fdTranslate)()\"\n        [iconTitle]=\"('coreDatetimePicker.displayDatetimeToggleLabel' | fdTranslate)()\"\n        (addOnButtonClicked)=\"togglePopover()\"\n    >\n        <input\n            type=\"text\"\n            class=\"fd-input\"\n            fd-input-group-input\n            [attr.aria-labelledby]=\"ariaLabelledBy\"\n            [attr.aria-label]=\"('coreDatetimePicker.datetimeInputLabel' | fdTranslate)()\"\n            [attr.id]=\"inputId\"\n            [attr.aria-required]=\"required\"\n            [placeholder]=\"placeholder\"\n            [disabled]=\"disabled\"\n            [ngModel]=\"_inputFieldDate | translateDayPeriod\"\n            (keydown.f4)=\"togglePopover()\"\n            (keyup.enter)=\"handleInputChange($any($event.target).value, false)\"\n            (ngModelChange)=\"handleInputChange($event, true)\"\n            (blur)=\"handleOnTouched($event)\"\n            (click)=\"mobile && openPopover()\"\n        />\n    </fd-input-group>\n</ng-template>\n<ng-template #formMessageTemplate>\n    @if (_message) {\n        <fd-form-message id=\"fd-form-message\" [embedded]=\"true\" [type]=\"state\">\n            {{ _message }}\n        </fd-form-message>\n    }\n</ng-template>\n<ng-template #pickerTemplate>\n    <div class=\"fd-datetime__wrapper\">\n        <ng-template [ngTemplateOutlet]=\"formMessageTemplate\"></ng-template>\n        <div\n            class=\"fd-datetime__display-type-switcher\"\n            [class.fd-datetime__display-type-switcher--desktop]=\"!mobile || (mobile && mobileLandscape)\"\n            [class.fd-datetime__display-type-switcher--mobile]=\"mobile && mobilePortrait\"\n        >\n            <fd-segmented-button [(ngModel)]=\"_displayType\">\n                <button\n                    fd-button\n                    [label]=\"('coreDatetimePicker.displayTypeDateLabel' | fdTranslate)()\"\n                    value=\"date\"\n                ></button>\n                <button\n                    fd-button\n                    [label]=\"('coreDatetimePicker.displayTypeTimeLabel' | fdTranslate)()\"\n                    value=\"time\"\n                ></button>\n            </fd-segmented-button>\n        </div>\n        <ng-content></ng-content>\n        <div class=\"fd-datetime__container\" [class.fd-datetime__container--mobile-portrait]=\"mobile && mobilePortrait\">\n            <fd-calendar\n                [ngClass]=\"[\n                    !mobile && _displayType === 'date' ? 'fd-datetime__active-display-type' : '',\n                    mobile && mobilePortrait && _displayType === 'date' ? 'fd-datetime__mobile-display' : ''\n                ]\"\n                calType=\"single\"\n                [activeView]=\"activeView\"\n                [disableFunction]=\"disableFunction || null\"\n                [selectedDate]=\"_tempDate\"\n                [escapeFocusFunction]=\"null\"\n                [markWeekends]=\"markWeekends\"\n                [specialDaysRules]=\"specialDaysRules()\"\n                [showCalendarLegend]=\"showCalendarLegend()\"\n                [legendCol]=\"legendCol()\"\n                [showWeekNumbers]=\"showWeekNumbers\"\n                [aggregatedYearGrid]=\"aggregatedYearGrid\"\n                [yearGrid]=\"yearGrid\"\n                [startingDayOfWeek]=\"startingDayOfWeek\"\n                (activeViewChange)=\"handleCalendarActiveViewChange($event)\"\n                (selectedDateChange)=\"handleDateChange($event)\"\n                (isValidDateChange)=\"setInvalidDateInputHandler($event)\"\n            ></fd-calendar>\n            @if (!mobilePortrait) {\n                <div class=\"fd-datetime__separator\"></div>\n            }\n            @if (isOpen) {\n                <fd-time\n                    [ngClass]=\"[\n                        !mobile && _displayType === 'time' ? 'fd-datetime__active-display-type' : '',\n                        mobile && mobilePortrait && _displayType === 'time' ? 'fd-datetime__mobile-display' : ''\n                    ]\"\n                    [disabled]=\"disabled\"\n                    [elementsAtOnce]=\"5\"\n                    [keepTwoDigits]=\"keepTwoDigitsTime\"\n                    [ngModel]=\"_tempTime\"\n                    [spinnerButtons]=\"spinnerButtons\"\n                    [meridian]=\"_meridian\"\n                    [displaySeconds]=\"_displaySeconds\"\n                    [displayMinutes]=\"_displayMinutes\"\n                    [displayHours]=\"_displayHours\"\n                    (ngModelChange)=\"handleTimeChange($event)\"\n                ></fd-time>\n            }\n        </div>\n        @if (!mobile && showFooter) {\n            <div fd-popover-body-footer>\n                <div class=\"fd-datetime__bar\" fd-bar barDesign=\"footer\">\n                    <div fd-bar-right>\n                        <fd-bar-element>\n                            <button\n                                fd-button\n                                fdType=\"emphasized\"\n                                [disabled]=\"!_tempDate\"\n                                [label]=\"('coreDatetimePicker.datetimeOkLabel' | fdTranslate)()\"\n                                [ariaLabel]=\"('coreDatetimePicker.datetimeOkLabel' | fdTranslate)()\"\n                                (click)=\"submit()\"\n                            ></button>\n                        </fd-bar-element>\n                        <fd-bar-element>\n                            <button\n                                fd-button\n                                fdType=\"transparent\"\n                                [label]=\"('coreDatetimePicker.datetimeCancelLabel' | fdTranslate)()\"\n                                [ariaLabel]=\"('coreDatetimePicker.datetimeCancelLabel' | fdTranslate)()\"\n                                (click)=\"cancel()\"\n                            ></button>\n                        </fd-bar-element>\n                    </div>\n                </div>\n            </div>\n        }\n    </div>\n</ng-template>\n","import { NgModule } from '@angular/core';\nimport { DatetimePickerMobileComponent } from './datetime-picker-mobile/datetime-picker-mobile.component';\nimport { DatetimePickerComponent } from './datetime-picker.component';\n\n/**\n * @deprecated\n * Use direct imports of components and directives.\n */\n@NgModule({\n    imports: [DatetimePickerComponent, DatetimePickerMobileComponent],\n    exports: [DatetimePickerComponent, DatetimePickerMobileComponent]\n})\nexport class DatetimePickerModule {}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":[],"mappings":"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"}