@fundamental-ngx/core 0.64.2-rc.48 → 0.64.2-rc.49

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -1 +1 @@
1
- {"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 effect,\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';\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 _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 let localeEffectInitialized = false;\n effect(() => {\n this._dateTimeAdapter.locale();\n if (localeEffectInitialized && this._inputFieldDate) {\n this._setInput(this.date);\n this._calculateTimeOptions();\n this._changeDetRef.markForCheck();\n }\n localeEffectInitialized = true;\n });\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\n /** @hidden */\n ngOnDestroy(): void {\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 this._refreshCurrentlyDisplayedCalendarDate(this.date);\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 const format = this.customDateTimeFormat ?? this._dateTimeFormats.parse.dateTimeInput;\n return this._dateTimeAdapter.parse(date, format);\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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"}
1
+ {"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';\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, onLocaleChange } 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 _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 onLocaleChange(this._dateTimeAdapter, () => {\n if (this._inputFieldDate) {\n this._setInput(this.date);\n this._calculateTimeOptions();\n this._changeDetRef.markForCheck();\n }\n });\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\n /** @hidden */\n ngOnDestroy(): void {\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 this._refreshCurrentlyDisplayedCalendarDate(this.date);\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 const format = this.customDateTimeFormat ?? this._dateTimeFormats.parse.dateTimeInput;\n return this._dateTimeAdapter.parse(date, format);\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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"}
@@ -1,5 +1,5 @@
1
1
  import * as i0 from '@angular/core';
2
- import { EventEmitter, input, effect, ElementRef, forwardRef, ViewChild, Output, Input, Optional, Inject, ChangeDetectionStrategy, ViewEncapsulation, Component, NgModule } from '@angular/core';
2
+ import { EventEmitter, input, ElementRef, forwardRef, ViewChild, Output, Input, Optional, Inject, ChangeDetectionStrategy, ViewEncapsulation, Component, NgModule } from '@angular/core';
3
3
  import * as i3 from '@angular/forms';
4
4
  import { FormsModule, NG_VALUE_ACCESSOR, NG_VALIDATORS } from '@angular/forms';
5
5
  import * as i1 from '@fundamental-ngx/core/datetime';
@@ -10,6 +10,7 @@ import { InputGroupComponent, InputGroupInputDirective } from '@fundamental-ngx/
10
10
  import { PopoverComponent, PopoverControlComponent, PopoverBodyComponent, PopoverService } from '@fundamental-ngx/core/popover';
11
11
  import { TimeComponent } from '@fundamental-ngx/core/time';
12
12
  import { NgTemplateOutlet } from '@angular/common';
13
+ import { onLocaleChange } from '@fundamental-ngx/cdk/utils';
13
14
  import { FdTranslatePipe } from '@fundamental-ngx/i18n';
14
15
 
15
16
  /** Creates an error to be thrown when attempting to use an invalid date implementation. */
@@ -128,8 +129,7 @@ class TimePickerComponent {
128
129
  if (!this._dateTimeFormats) {
129
130
  throw createMissingDateImplementationError('DATE_TIME_FORMATS');
130
131
  }
131
- effect(() => {
132
- this._dateTimeAdapter.locale();
132
+ onLocaleChange(this._dateTimeAdapter, () => {
133
133
  this._calculateTimeOptions();
134
134
  this._formatTimeInputField();
135
135
  this._changeDetectorRef.markForCheck();
@@ -1 +1 @@
1
- {"version":3,"file":"fundamental-ngx-core-time-picker.mjs","sources":["../../../../libs/core/time-picker/errors.ts","../../../../libs/core/time-picker/time-picker.component.ts","../../../../libs/core/time-picker/time-picker.component.html","../../../../libs/core/time-picker/time-picker.module.ts","../../../../libs/core/time-picker/fundamental-ngx-core-time-picker.ts"],"sourcesContent":["/** Creates an error to be thrown when attempting to use an invalid date implementation. */\nexport function createMissingDateImplementationError(provider: string): Error {\n return Error(\n `FdTime: 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 ChangeDetectionStrategy,\n ChangeDetectorRef,\n Component,\n effect,\n ElementRef,\n EventEmitter,\n forwardRef,\n Inject,\n input,\n Input,\n OnChanges,\n OnInit,\n Optional,\n Output,\n SimpleChanges,\n TemplateRef,\n ViewChild,\n ViewEncapsulation\n} from '@angular/core';\nimport { ControlValueAccessor, FormsModule, NG_VALIDATORS, NG_VALUE_ACCESSOR, Validator } from '@angular/forms';\n\nimport {\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 PopoverComponent,\n PopoverControlComponent,\n PopoverService\n} from '@fundamental-ngx/core/popover';\nimport { Placement } from '@fundamental-ngx/core/shared';\nimport { TimeComponent } from '@fundamental-ngx/core/time';\n\nimport { NgTemplateOutlet } from '@angular/common';\nimport { FormStates } from '@fundamental-ngx/cdk/forms';\nimport { Nullable } from '@fundamental-ngx/cdk/utils';\nimport { FdTranslatePipe } from '@fundamental-ngx/i18n';\nimport { createMissingDateImplementationError } from './errors';\n\nlet timePickerCounter = 0;\n\n@Component({\n selector: 'fd-time-picker',\n templateUrl: './time-picker.component.html',\n host: {\n '(focusout)': '_focusOut($event)',\n '(blur)': 'onTouched()',\n class: 'fd-time-picker fd-timepicker-custom'\n },\n providers: [\n {\n provide: NG_VALUE_ACCESSOR,\n useExisting: forwardRef(() => TimePickerComponent),\n multi: true\n },\n {\n provide: NG_VALIDATORS,\n useExisting: forwardRef(() => TimePickerComponent),\n multi: true\n },\n PopoverFormMessageService,\n PopoverService,\n registerFormItemControl(TimePickerComponent)\n ],\n styleUrl: './time-picker.component.scss',\n encapsulation: ViewEncapsulation.None,\n changeDetection: ChangeDetectionStrategy.OnPush,\n imports: [\n PopoverComponent,\n PopoverControlComponent,\n InputGroupComponent,\n InputGroupInputDirective,\n PopoverBodyComponent,\n NgTemplateOutlet,\n FormMessageComponent,\n TimeComponent,\n FormsModule,\n FdTranslatePipe,\n TranslateDayPeriodPipe\n ]\n})\nexport class TimePickerComponent<D>\n implements ControlValueAccessor, OnInit, AfterViewInit, OnChanges, Validator, FormItemControl\n{\n /**\n * Date time object representation\n */\n @Input()\n time: Nullable<D>;\n\n /** Id attribute for input element inside TimePicker component */\n @Input()\n inputId: string;\n\n /** Disables the component. */\n @Input()\n disabled: boolean;\n\n /** If it is mandatory field */\n @Input()\n required = false;\n\n /** Whether to show spinner buttons */\n @Input()\n spinnerButtons = true;\n\n /**\n * When set to false, uses the 24 hour clock (hours ranging from 0 to 23).\n * Default value based on the current locale format option\n */\n @Input()\n meridian: boolean;\n\n /**\n * When set to false, hides the input for seconds.\n * Default value based on the current locale format option\n * */\n @Input()\n displaySeconds: boolean;\n\n /**\n * When set to false, hides the input for minutes.\n * Default value based on the current locale format option\n * */\n @Input()\n displayMinutes: boolean;\n\n /**\n * When set to false, hides the input for hours.\n * Default value based on the current locale format option\n * */\n @Input()\n displayHours: boolean;\n\n /**\n * Default time picker placeholder which is set dependant on the hours, minutes and seconds.\n * Otherwise It can be set to a default value\n */\n @Input()\n placeholder: string;\n\n /** Aria label for the time picker input. */\n @Input()\n timePickerInputLabel: string;\n\n /** Aria label for the time picker toggle button. */\n @Input()\n timePickerButtonLabel: string;\n\n /** Aria-labelledby for the time picker toggle button. */\n @Input()\n ariaLabelledBy: Nullable<string>;\n\n /** Whether a null input is considered valid(success). */\n @Input()\n allowNull = true;\n\n /** Defines if time component should be used with tablet mode */\n @Input()\n tablet = false;\n\n /** Text displayed in message */\n @Input()\n set message(message: string) {\n this._message = message;\n }\n\n /** Type of the message. Can be 'success' | 'error' | 'warning' | 'information' */\n @Input()\n set messageType(messageType: FormStates) {\n this._messageType = messageType;\n }\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 */\n @Input()\n set messageTriggers(triggers: string[]) {\n this._messageTriggers = triggers;\n this._popoverFormMessage.triggers = triggers;\n }\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 /** Whether to validate the time picker input. */\n @Input()\n useValidation = true;\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._state == null && this.useValidation && this._isInvalidTimeInput) {\n return 'error';\n }\n return this._state ?? 'default';\n }\n\n /**\n * Whether AddOn Button should be focusable\n * @default true\n */\n @Input()\n buttonFocusable = true;\n\n /**\n * When set to true, time inputs won't allow to have 1 digit\n * for example 9 will become 09\n * but 12 will be kept as 12.\n */\n @Input()\n keepTwoDigitsTime = false;\n\n /**\n * Display format option to customize time format in input control.\n * Must be a format option that is understandable by DatetimeAdapter.\n */\n @Input()\n displayFormat: unknown;\n\n /**\n * Parse format option to customize time format in input control.\n * Must be a format option that is understandable by DatetimeAdapter.\n */\n @Input()\n parseFormat: unknown;\n\n /** Event emitted when the state of the isOpen property changes. */\n @Output()\n isOpenChange = new EventEmitter<boolean>();\n\n /** @hidden */\n @ViewChild(TimeComponent)\n child: TimeComponent<D>;\n\n /** @hidden */\n @ViewChild('inputGroupComponent', { read: ElementRef })\n _inputGroupElement: ElementRef;\n\n /** @hidden */\n @ViewChild(InputGroupInputDirective, { read: ElementRef })\n _inputElement: ElementRef;\n\n /** @hidden */\n @ViewChild('formMessageTemplate')\n private readonly _formMessageTemplate: TemplateRef<any>;\n\n /**\n * The interval between selectable minutes (e.g., 1 for every minute, 5 for 5-minute intervals, 15 for 15-minute intervals).\n * Defaults to 1 (every minute).\n */\n readonly minuteStep = input<number>(1);\n\n /** @hidden */\n _message: string | null = null;\n\n /** @hidden */\n _messageType: FormStates | null = null;\n\n /** @hidden */\n _messageTriggers: string[] = ['focusin', 'focusout'];\n\n /**\n * @hidden\n * Whether the input time is valid(success). Internal use.\n */\n _isInvalidTimeInput = false;\n\n /**\n * @hidden\n * Indicates when popover is opened\n */\n isOpen: boolean;\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 /**\n * @hidden\n * Input field value\n */\n _inputTimeValue = '';\n\n /** @hidden */\n _formValueStateMessageId = `fd-time-picker-form-message-${timePickerCounter++}`;\n\n /** @hidden */\n private _state: FormStates | null = null;\n\n /** @hidden */\n get _placeholder(): string {\n return this.placeholder || this._getPlaceholder();\n }\n\n /** @hidden */\n constructor(\n private _changeDetectorRef: ChangeDetectorRef,\n private _elementRef: ElementRef,\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 effect(() => {\n this._dateTimeAdapter.locale();\n this._calculateTimeOptions();\n this._formatTimeInputField();\n this._changeDetectorRef.markForCheck();\n });\n }\n\n /** @hidden */\n onChange: (_: Nullable<D>) => void = () => {};\n /** @hidden */\n onTouched: () => void = () => {};\n\n /** @hidden */\n ngOnInit(): void {\n this._calculateTimeOptions();\n this._formatTimeInputField();\n }\n\n /** @hidden */\n ngOnChanges(changes: SimpleChanges): void {\n if (\n ['displayHours', 'displayMinutes', 'displaySeconds', 'meridian', 'displayFormat'].some(\n (change) => change in changes\n )\n ) {\n this._calculateTimeOptions();\n }\n if (changes.displayFormat) {\n this._formatTimeInputField();\n }\n }\n\n /** @hidden */\n ngAfterViewInit(): void {\n this.initialiseVariablesInMessageService();\n }\n\n /**\n * @hidden\n * Function that implements Validator Interface, adds validation support for forms\n */\n validate(): { [key: string]: any } | null {\n if (this._isInvalidTimeInput) {\n return {\n timeValidation: {\n valid: false\n }\n };\n }\n\n return null;\n }\n\n /**\n * Returns the current value of the time input.\n */\n getTime(): Nullable<D> {\n return this.time;\n }\n\n /**\n * Returns format options to be used during time formatting.\n */\n getDisplayFormat(): unknown {\n return this.displayFormat || this._dateTimeFormats.display.timeInput;\n }\n\n /**\n * Returns format options to be used during time parsing.\n */\n getParseFormat(): unknown {\n return this.parseFormat || this._dateTimeFormats.parse.timeInput;\n }\n\n /** @hidden */\n _getFormattedTime(time = this.time): string {\n let formattedTime = '';\n\n try {\n if (this.allowNull && time === null) {\n return '';\n }\n formattedTime = this._dateTimeAdapter.format(time!, this.getDisplayFormat());\n } catch {}\n\n return formattedTime;\n }\n\n /**\n * @hidden\n * When the open state is changed, there should be at least one active item, which by default is hour.\n */\n _setIsOpen(isOpen: boolean): void {\n this.isOpen = isOpen;\n this._onOpenStateChanged(isOpen);\n }\n\n /**\n * @hidden\n * Time input field changes handler\n */\n _timeInputChanged(inputValue: string): void {\n inputValue = inputValue.trim();\n\n // check if value has been changed\n if (this._inputTimeValue === inputValue) {\n return;\n }\n\n this._inputTimeValue = inputValue;\n\n if (inputValue === '') {\n this.time = null;\n this._isInvalidTimeInput = !this.allowNull;\n }\n\n if (inputValue !== '') {\n // Regex to detect and rearrange day period in the time string\n const dayPeriodPattern = /\\b(night|morning|afternoon|evening)\\b/g;\n inputValue = inputValue.replace(dayPeriodPattern, '').trim();\n\n this.time = this._dateTimeAdapter.parse(inputValue, this.getParseFormat());\n this._isInvalidTimeInput = !this._dateTimeAdapter.isValid(this.time!);\n }\n\n this.onChange(this.time);\n\n this._changeDetectorRef.detectChanges();\n }\n\n /** @hidden */\n _inputGroupClicked($event: MouseEvent): void {\n if (!this.isOpen && !this.disabled) {\n $event.stopPropagation();\n this._setIsOpen(true);\n }\n }\n\n /** @hidden */\n _addOnButtonClicked(): void {\n if (!this.disabled) {\n this._setIsOpen(!this.isOpen);\n }\n }\n\n /** @hidden */\n _popoverClosed(): void {\n this._setIsOpen(false);\n }\n\n /** @hidden */\n _getPlaceholder(): string {\n let retVal = '';\n\n if (this._displayHours) {\n retVal = retVal + 'hh';\n }\n if (this._displayMinutes) {\n retVal = retVal + ':mm';\n }\n if (this._displaySeconds) {\n retVal = retVal + ':ss';\n }\n if (this._meridian) {\n retVal = retVal + ' am/pm';\n }\n\n return retVal;\n }\n\n /** @hidden */\n _timeComponentValueChanged(time: D): void {\n if (this._dateTimeAdapter.dateTimesEqual(time, this.time!)) {\n return;\n }\n this._inputTimeValue = this._getFormattedTime(time);\n this.time = time;\n this._isInvalidTimeInput = !this._dateTimeAdapter.isValid(time);\n this.onChange(time);\n this._changeDetectorRef.detectChanges();\n }\n\n // #region ControlValueAccessor\n\n /** @hidden */\n registerOnChange(fn: (time: Nullable<D>) => 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._changeDetectorRef.detectChanges();\n }\n\n /** @hidden */\n writeValue(time: D): void {\n if (!time) {\n this.time = null;\n this._inputTimeValue = '';\n this._isInvalidTimeInput = !this.allowNull;\n } else {\n this.time = this._dateTimeAdapter.parse(time, this.getParseFormat());\n this._inputTimeValue = this._getFormattedTime(time);\n this._isInvalidTimeInput = !this._dateTimeAdapter.isValid(time);\n }\n this._changeDetectorRef.markForCheck();\n }\n\n // #endregion ControlValueAccessor\n\n /** @hidden */\n _formatTimeInputField(time = this.time): string {\n return (this._inputTimeValue = this._getFormattedTime(time));\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 if (isOpen) {\n this._changeDetectorRef.detectChanges();\n this.child.focusActiveColumn();\n }\n // focus input control every time popup is closed\n if (!isOpen && this._inputElement) {\n this._inputElement.nativeElement.focus();\n }\n }\n\n /** @hidden */\n protected _focusOut(event: FocusEvent): void {\n if (!this._elementRef.nativeElement.contains(event.relatedTarget)) {\n this.onTouched();\n }\n }\n\n /** @hidden */\n private _calculateTimeOptions(): void {\n const format = this.getDisplayFormat();\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 initialiseVariablesInMessageService(): void {\n this._popoverFormMessage.init(this._inputGroupElement);\n this._popoverFormMessage.message = this._formMessageTemplate;\n this._popoverFormMessage.triggers = this._messageTriggers;\n }\n}\n","<fd-popover\n [(isOpen)]=\"isOpen\"\n (isOpenChange)=\"_onOpenStateChanged($event)\"\n [triggers]=\"[]\"\n [disabled]=\"disabled\"\n [placement]=\"placement\"\n [closeOnEscapeKey]=\"true\"\n [focusAutoCapture]=\"false\"\n [focusTrapped]=\"true\"\n>\n <fd-popover-control>\n <fd-input-group\n #inputGroupComponent\n (addOnButtonClicked)=\"_addOnButtonClicked()\"\n [button]=\"true\"\n [state]=\"state\"\n [disabled]=\"disabled\"\n [buttonFocusable]=\"buttonFocusable\"\n [isControl]=\"true\"\n [isExpanded]=\"isOpen\"\n [glyphAriaLabel]=\"timePickerButtonLabel || ('coreTimePicker.timePickerButtonLabel' | fdTranslate)()\"\n glyph=\"fob-watch\"\n >\n <input\n type=\"text\"\n class=\"fd-input\"\n fd-input-group-input\n [value]=\"_inputTimeValue | translateDayPeriod\"\n (focusout)=\"_timeInputChanged($any($event.currentTarget).value)\"\n (keyup.enter)=\"_timeInputChanged($any($event.currentTarget).value)\"\n [disabled]=\"disabled\"\n [attr.id]=\"inputId\"\n [placeholder]=\"_placeholder\"\n [attr.aria-labelledby]=\"ariaLabelledBy\"\n [attr.aria-label]=\"timePickerInputLabel || ('coreTimePicker.timePickerInputLabel' | fdTranslate)()\"\n [attr.aria-describedby]=\"_formValueStateMessageId\"\n [attr.aria-required]=\"required\"\n />\n </fd-input-group>\n </fd-popover-control>\n <fd-popover-body>\n <ng-template [ngTemplateOutlet]=\"formMessageTemplate\"></ng-template>\n <ng-content></ng-content>\n @if (isOpen) {\n <fd-time\n [tablet]=\"tablet\"\n [disabled]=\"disabled\"\n [keepTwoDigits]=\"keepTwoDigitsTime\"\n [ngModel]=\"time\"\n (ngModelChange)=\"_timeComponentValueChanged($event)\"\n [meridian]=\"_meridian\"\n [displayHours]=\"_displayHours\"\n [displayMinutes]=\"_displayMinutes\"\n [displaySeconds]=\"_displaySeconds\"\n [minuteStep]=\"minuteStep()\"\n [spinnerButtons]=\"spinnerButtons\"\n ></fd-time>\n }\n </fd-popover-body>\n</fd-popover>\n<div [style.display]=\"'none'\" aria-hidden=\"true\">\n <div [attr.id]=\"_formValueStateMessageId\" aria-atomic=\"true\" aria-live=\"assertive\">\n @switch (state) {\n @case ('success') {\n {{ ('coreTimePicker.valueStateSuccessMessage' | fdTranslate)() }}\n }\n @case ('information') {\n {{ ('coreTimePicker.valueStateInformationMessage' | fdTranslate)() }}\n }\n @case ('warning') {\n {{ ('coreTimePicker.valueStateWarningMessage' | fdTranslate)() }}\n }\n @case ('error') {\n {{ ('coreTimePicker.valueStateErrorMessage' | fdTranslate)() }}\n }\n }\n {{ _message }}\n </div>\n</div>\n<ng-template #formMessageTemplate>\n @if (_message) {\n <fd-form-message [embedded]=\"true\" [type]=\"state\">\n {{ _message }}\n </fd-form-message>\n }\n</ng-template>\n","import { NgModule } from '@angular/core';\n\nimport { TimePickerComponent } from './time-picker.component';\n\n/**\n * @deprecated\n * Use direct import of `TimePickerComponent`\n */\n@NgModule({\n imports: [TimePickerComponent],\n exports: [TimePickerComponent]\n})\nexport class TimePickerModule {}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"fundamental-ngx-core-time-picker.mjs","sources":["../../../../libs/core/time-picker/errors.ts","../../../../libs/core/time-picker/time-picker.component.ts","../../../../libs/core/time-picker/time-picker.component.html","../../../../libs/core/time-picker/time-picker.module.ts","../../../../libs/core/time-picker/fundamental-ngx-core-time-picker.ts"],"sourcesContent":["/** Creates an error to be thrown when attempting to use an invalid date implementation. */\nexport function createMissingDateImplementationError(provider: string): Error {\n return Error(\n `FdTime: 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 ChangeDetectionStrategy,\n ChangeDetectorRef,\n Component,\n ElementRef,\n EventEmitter,\n forwardRef,\n Inject,\n input,\n Input,\n OnChanges,\n OnInit,\n Optional,\n Output,\n SimpleChanges,\n TemplateRef,\n ViewChild,\n ViewEncapsulation\n} from '@angular/core';\nimport { ControlValueAccessor, FormsModule, NG_VALIDATORS, NG_VALUE_ACCESSOR, Validator } from '@angular/forms';\n\nimport {\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 PopoverComponent,\n PopoverControlComponent,\n PopoverService\n} from '@fundamental-ngx/core/popover';\nimport { Placement } from '@fundamental-ngx/core/shared';\nimport { TimeComponent } from '@fundamental-ngx/core/time';\n\nimport { NgTemplateOutlet } from '@angular/common';\nimport { FormStates } from '@fundamental-ngx/cdk/forms';\nimport { Nullable, onLocaleChange } from '@fundamental-ngx/cdk/utils';\nimport { FdTranslatePipe } from '@fundamental-ngx/i18n';\nimport { createMissingDateImplementationError } from './errors';\n\nlet timePickerCounter = 0;\n\n@Component({\n selector: 'fd-time-picker',\n templateUrl: './time-picker.component.html',\n host: {\n '(focusout)': '_focusOut($event)',\n '(blur)': 'onTouched()',\n class: 'fd-time-picker fd-timepicker-custom'\n },\n providers: [\n {\n provide: NG_VALUE_ACCESSOR,\n useExisting: forwardRef(() => TimePickerComponent),\n multi: true\n },\n {\n provide: NG_VALIDATORS,\n useExisting: forwardRef(() => TimePickerComponent),\n multi: true\n },\n PopoverFormMessageService,\n PopoverService,\n registerFormItemControl(TimePickerComponent)\n ],\n styleUrl: './time-picker.component.scss',\n encapsulation: ViewEncapsulation.None,\n changeDetection: ChangeDetectionStrategy.OnPush,\n imports: [\n PopoverComponent,\n PopoverControlComponent,\n InputGroupComponent,\n InputGroupInputDirective,\n PopoverBodyComponent,\n NgTemplateOutlet,\n FormMessageComponent,\n TimeComponent,\n FormsModule,\n FdTranslatePipe,\n TranslateDayPeriodPipe\n ]\n})\nexport class TimePickerComponent<D>\n implements ControlValueAccessor, OnInit, AfterViewInit, OnChanges, Validator, FormItemControl\n{\n /**\n * Date time object representation\n */\n @Input()\n time: Nullable<D>;\n\n /** Id attribute for input element inside TimePicker component */\n @Input()\n inputId: string;\n\n /** Disables the component. */\n @Input()\n disabled: boolean;\n\n /** If it is mandatory field */\n @Input()\n required = false;\n\n /** Whether to show spinner buttons */\n @Input()\n spinnerButtons = true;\n\n /**\n * When set to false, uses the 24 hour clock (hours ranging from 0 to 23).\n * Default value based on the current locale format option\n */\n @Input()\n meridian: boolean;\n\n /**\n * When set to false, hides the input for seconds.\n * Default value based on the current locale format option\n * */\n @Input()\n displaySeconds: boolean;\n\n /**\n * When set to false, hides the input for minutes.\n * Default value based on the current locale format option\n * */\n @Input()\n displayMinutes: boolean;\n\n /**\n * When set to false, hides the input for hours.\n * Default value based on the current locale format option\n * */\n @Input()\n displayHours: boolean;\n\n /**\n * Default time picker placeholder which is set dependant on the hours, minutes and seconds.\n * Otherwise It can be set to a default value\n */\n @Input()\n placeholder: string;\n\n /** Aria label for the time picker input. */\n @Input()\n timePickerInputLabel: string;\n\n /** Aria label for the time picker toggle button. */\n @Input()\n timePickerButtonLabel: string;\n\n /** Aria-labelledby for the time picker toggle button. */\n @Input()\n ariaLabelledBy: Nullable<string>;\n\n /** Whether a null input is considered valid(success). */\n @Input()\n allowNull = true;\n\n /** Defines if time component should be used with tablet mode */\n @Input()\n tablet = false;\n\n /** Text displayed in message */\n @Input()\n set message(message: string) {\n this._message = message;\n }\n\n /** Type of the message. Can be 'success' | 'error' | 'warning' | 'information' */\n @Input()\n set messageType(messageType: FormStates) {\n this._messageType = messageType;\n }\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 */\n @Input()\n set messageTriggers(triggers: string[]) {\n this._messageTriggers = triggers;\n this._popoverFormMessage.triggers = triggers;\n }\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 /** Whether to validate the time picker input. */\n @Input()\n useValidation = true;\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._state == null && this.useValidation && this._isInvalidTimeInput) {\n return 'error';\n }\n return this._state ?? 'default';\n }\n\n /**\n * Whether AddOn Button should be focusable\n * @default true\n */\n @Input()\n buttonFocusable = true;\n\n /**\n * When set to true, time inputs won't allow to have 1 digit\n * for example 9 will become 09\n * but 12 will be kept as 12.\n */\n @Input()\n keepTwoDigitsTime = false;\n\n /**\n * Display format option to customize time format in input control.\n * Must be a format option that is understandable by DatetimeAdapter.\n */\n @Input()\n displayFormat: unknown;\n\n /**\n * Parse format option to customize time format in input control.\n * Must be a format option that is understandable by DatetimeAdapter.\n */\n @Input()\n parseFormat: unknown;\n\n /** Event emitted when the state of the isOpen property changes. */\n @Output()\n isOpenChange = new EventEmitter<boolean>();\n\n /** @hidden */\n @ViewChild(TimeComponent)\n child: TimeComponent<D>;\n\n /** @hidden */\n @ViewChild('inputGroupComponent', { read: ElementRef })\n _inputGroupElement: ElementRef;\n\n /** @hidden */\n @ViewChild(InputGroupInputDirective, { read: ElementRef })\n _inputElement: ElementRef;\n\n /** @hidden */\n @ViewChild('formMessageTemplate')\n private readonly _formMessageTemplate: TemplateRef<any>;\n\n /**\n * The interval between selectable minutes (e.g., 1 for every minute, 5 for 5-minute intervals, 15 for 15-minute intervals).\n * Defaults to 1 (every minute).\n */\n readonly minuteStep = input<number>(1);\n\n /** @hidden */\n _message: string | null = null;\n\n /** @hidden */\n _messageType: FormStates | null = null;\n\n /** @hidden */\n _messageTriggers: string[] = ['focusin', 'focusout'];\n\n /**\n * @hidden\n * Whether the input time is valid(success). Internal use.\n */\n _isInvalidTimeInput = false;\n\n /**\n * @hidden\n * Indicates when popover is opened\n */\n isOpen: boolean;\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 /**\n * @hidden\n * Input field value\n */\n _inputTimeValue = '';\n\n /** @hidden */\n _formValueStateMessageId = `fd-time-picker-form-message-${timePickerCounter++}`;\n\n /** @hidden */\n private _state: FormStates | null = null;\n\n /** @hidden */\n get _placeholder(): string {\n return this.placeholder || this._getPlaceholder();\n }\n\n /** @hidden */\n constructor(\n private _changeDetectorRef: ChangeDetectorRef,\n private _elementRef: ElementRef,\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 onLocaleChange(this._dateTimeAdapter, () => {\n this._calculateTimeOptions();\n this._formatTimeInputField();\n this._changeDetectorRef.markForCheck();\n });\n }\n\n /** @hidden */\n onChange: (_: Nullable<D>) => void = () => {};\n /** @hidden */\n onTouched: () => void = () => {};\n\n /** @hidden */\n ngOnInit(): void {\n this._calculateTimeOptions();\n this._formatTimeInputField();\n }\n\n /** @hidden */\n ngOnChanges(changes: SimpleChanges): void {\n if (\n ['displayHours', 'displayMinutes', 'displaySeconds', 'meridian', 'displayFormat'].some(\n (change) => change in changes\n )\n ) {\n this._calculateTimeOptions();\n }\n if (changes.displayFormat) {\n this._formatTimeInputField();\n }\n }\n\n /** @hidden */\n ngAfterViewInit(): void {\n this.initialiseVariablesInMessageService();\n }\n\n /**\n * @hidden\n * Function that implements Validator Interface, adds validation support for forms\n */\n validate(): { [key: string]: any } | null {\n if (this._isInvalidTimeInput) {\n return {\n timeValidation: {\n valid: false\n }\n };\n }\n\n return null;\n }\n\n /**\n * Returns the current value of the time input.\n */\n getTime(): Nullable<D> {\n return this.time;\n }\n\n /**\n * Returns format options to be used during time formatting.\n */\n getDisplayFormat(): unknown {\n return this.displayFormat || this._dateTimeFormats.display.timeInput;\n }\n\n /**\n * Returns format options to be used during time parsing.\n */\n getParseFormat(): unknown {\n return this.parseFormat || this._dateTimeFormats.parse.timeInput;\n }\n\n /** @hidden */\n _getFormattedTime(time = this.time): string {\n let formattedTime = '';\n\n try {\n if (this.allowNull && time === null) {\n return '';\n }\n formattedTime = this._dateTimeAdapter.format(time!, this.getDisplayFormat());\n } catch {}\n\n return formattedTime;\n }\n\n /**\n * @hidden\n * When the open state is changed, there should be at least one active item, which by default is hour.\n */\n _setIsOpen(isOpen: boolean): void {\n this.isOpen = isOpen;\n this._onOpenStateChanged(isOpen);\n }\n\n /**\n * @hidden\n * Time input field changes handler\n */\n _timeInputChanged(inputValue: string): void {\n inputValue = inputValue.trim();\n\n // check if value has been changed\n if (this._inputTimeValue === inputValue) {\n return;\n }\n\n this._inputTimeValue = inputValue;\n\n if (inputValue === '') {\n this.time = null;\n this._isInvalidTimeInput = !this.allowNull;\n }\n\n if (inputValue !== '') {\n // Regex to detect and rearrange day period in the time string\n const dayPeriodPattern = /\\b(night|morning|afternoon|evening)\\b/g;\n inputValue = inputValue.replace(dayPeriodPattern, '').trim();\n\n this.time = this._dateTimeAdapter.parse(inputValue, this.getParseFormat());\n this._isInvalidTimeInput = !this._dateTimeAdapter.isValid(this.time!);\n }\n\n this.onChange(this.time);\n\n this._changeDetectorRef.detectChanges();\n }\n\n /** @hidden */\n _inputGroupClicked($event: MouseEvent): void {\n if (!this.isOpen && !this.disabled) {\n $event.stopPropagation();\n this._setIsOpen(true);\n }\n }\n\n /** @hidden */\n _addOnButtonClicked(): void {\n if (!this.disabled) {\n this._setIsOpen(!this.isOpen);\n }\n }\n\n /** @hidden */\n _popoverClosed(): void {\n this._setIsOpen(false);\n }\n\n /** @hidden */\n _getPlaceholder(): string {\n let retVal = '';\n\n if (this._displayHours) {\n retVal = retVal + 'hh';\n }\n if (this._displayMinutes) {\n retVal = retVal + ':mm';\n }\n if (this._displaySeconds) {\n retVal = retVal + ':ss';\n }\n if (this._meridian) {\n retVal = retVal + ' am/pm';\n }\n\n return retVal;\n }\n\n /** @hidden */\n _timeComponentValueChanged(time: D): void {\n if (this._dateTimeAdapter.dateTimesEqual(time, this.time!)) {\n return;\n }\n this._inputTimeValue = this._getFormattedTime(time);\n this.time = time;\n this._isInvalidTimeInput = !this._dateTimeAdapter.isValid(time);\n this.onChange(time);\n this._changeDetectorRef.detectChanges();\n }\n\n // #region ControlValueAccessor\n\n /** @hidden */\n registerOnChange(fn: (time: Nullable<D>) => 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._changeDetectorRef.detectChanges();\n }\n\n /** @hidden */\n writeValue(time: D): void {\n if (!time) {\n this.time = null;\n this._inputTimeValue = '';\n this._isInvalidTimeInput = !this.allowNull;\n } else {\n this.time = this._dateTimeAdapter.parse(time, this.getParseFormat());\n this._inputTimeValue = this._getFormattedTime(time);\n this._isInvalidTimeInput = !this._dateTimeAdapter.isValid(time);\n }\n this._changeDetectorRef.markForCheck();\n }\n\n // #endregion ControlValueAccessor\n\n /** @hidden */\n _formatTimeInputField(time = this.time): string {\n return (this._inputTimeValue = this._getFormattedTime(time));\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 if (isOpen) {\n this._changeDetectorRef.detectChanges();\n this.child.focusActiveColumn();\n }\n // focus input control every time popup is closed\n if (!isOpen && this._inputElement) {\n this._inputElement.nativeElement.focus();\n }\n }\n\n /** @hidden */\n protected _focusOut(event: FocusEvent): void {\n if (!this._elementRef.nativeElement.contains(event.relatedTarget)) {\n this.onTouched();\n }\n }\n\n /** @hidden */\n private _calculateTimeOptions(): void {\n const format = this.getDisplayFormat();\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 initialiseVariablesInMessageService(): void {\n this._popoverFormMessage.init(this._inputGroupElement);\n this._popoverFormMessage.message = this._formMessageTemplate;\n this._popoverFormMessage.triggers = this._messageTriggers;\n }\n}\n","<fd-popover\n [(isOpen)]=\"isOpen\"\n (isOpenChange)=\"_onOpenStateChanged($event)\"\n [triggers]=\"[]\"\n [disabled]=\"disabled\"\n [placement]=\"placement\"\n [closeOnEscapeKey]=\"true\"\n [focusAutoCapture]=\"false\"\n [focusTrapped]=\"true\"\n>\n <fd-popover-control>\n <fd-input-group\n #inputGroupComponent\n (addOnButtonClicked)=\"_addOnButtonClicked()\"\n [button]=\"true\"\n [state]=\"state\"\n [disabled]=\"disabled\"\n [buttonFocusable]=\"buttonFocusable\"\n [isControl]=\"true\"\n [isExpanded]=\"isOpen\"\n [glyphAriaLabel]=\"timePickerButtonLabel || ('coreTimePicker.timePickerButtonLabel' | fdTranslate)()\"\n glyph=\"fob-watch\"\n >\n <input\n type=\"text\"\n class=\"fd-input\"\n fd-input-group-input\n [value]=\"_inputTimeValue | translateDayPeriod\"\n (focusout)=\"_timeInputChanged($any($event.currentTarget).value)\"\n (keyup.enter)=\"_timeInputChanged($any($event.currentTarget).value)\"\n [disabled]=\"disabled\"\n [attr.id]=\"inputId\"\n [placeholder]=\"_placeholder\"\n [attr.aria-labelledby]=\"ariaLabelledBy\"\n [attr.aria-label]=\"timePickerInputLabel || ('coreTimePicker.timePickerInputLabel' | fdTranslate)()\"\n [attr.aria-describedby]=\"_formValueStateMessageId\"\n [attr.aria-required]=\"required\"\n />\n </fd-input-group>\n </fd-popover-control>\n <fd-popover-body>\n <ng-template [ngTemplateOutlet]=\"formMessageTemplate\"></ng-template>\n <ng-content></ng-content>\n @if (isOpen) {\n <fd-time\n [tablet]=\"tablet\"\n [disabled]=\"disabled\"\n [keepTwoDigits]=\"keepTwoDigitsTime\"\n [ngModel]=\"time\"\n (ngModelChange)=\"_timeComponentValueChanged($event)\"\n [meridian]=\"_meridian\"\n [displayHours]=\"_displayHours\"\n [displayMinutes]=\"_displayMinutes\"\n [displaySeconds]=\"_displaySeconds\"\n [minuteStep]=\"minuteStep()\"\n [spinnerButtons]=\"spinnerButtons\"\n ></fd-time>\n }\n </fd-popover-body>\n</fd-popover>\n<div [style.display]=\"'none'\" aria-hidden=\"true\">\n <div [attr.id]=\"_formValueStateMessageId\" aria-atomic=\"true\" aria-live=\"assertive\">\n @switch (state) {\n @case ('success') {\n {{ ('coreTimePicker.valueStateSuccessMessage' | fdTranslate)() }}\n }\n @case ('information') {\n {{ ('coreTimePicker.valueStateInformationMessage' | fdTranslate)() }}\n }\n @case ('warning') {\n {{ ('coreTimePicker.valueStateWarningMessage' | fdTranslate)() }}\n }\n @case ('error') {\n {{ ('coreTimePicker.valueStateErrorMessage' | fdTranslate)() }}\n }\n }\n {{ _message }}\n </div>\n</div>\n<ng-template #formMessageTemplate>\n @if (_message) {\n <fd-form-message [embedded]=\"true\" [type]=\"state\">\n {{ _message }}\n </fd-form-message>\n }\n</ng-template>\n","import { NgModule } from '@angular/core';\n\nimport { TimePickerComponent } from './time-picker.component';\n\n/**\n * @deprecated\n * Use direct import of `TimePickerComponent`\n */\n@NgModule({\n imports: [TimePickerComponent],\n exports: [TimePickerComponent]\n})\nexport class TimePickerModule {}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":[],"mappings":"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"}
@@ -1,9 +1,9 @@
1
1
  import { DOWN_ARROW, UP_ARROW, SPACE, LEFT_ARROW, RIGHT_ARROW } from '@angular/cdk/keycodes';
2
2
  import * as i0 from '@angular/core';
3
- import { EventEmitter, ElementRef, HostListener, ViewChild, ViewChildren, Output, Input, HostBinding, ViewEncapsulation, ChangeDetectionStrategy, Component, input, computed, inject, effect, forwardRef, Optional, NgModule } from '@angular/core';
3
+ import { EventEmitter, ElementRef, HostListener, ViewChild, ViewChildren, Output, Input, HostBinding, ViewEncapsulation, ChangeDetectionStrategy, Component, input, computed, inject, forwardRef, Optional, NgModule } from '@angular/core';
4
4
  import { BehaviorSubject, Subject, Subscription, combineLatest } from 'rxjs';
5
5
  import { filter, tap, debounceTime, buffer, map } from 'rxjs/operators';
6
- import { KeyUtil, resizeObservable, RtlService } from '@fundamental-ngx/cdk/utils';
6
+ import { KeyUtil, resizeObservable, RtlService, onLocaleChange } from '@fundamental-ngx/cdk/utils';
7
7
  import { CarouselDirective, CarouselItemDirective } from '@fundamental-ngx/core/carousel';
8
8
  import { ButtonComponent } from '@fundamental-ngx/core/button';
9
9
  import { FdTranslatePipe } from '@fundamental-ngx/i18n';
@@ -588,8 +588,7 @@ class TimeComponent {
588
588
  throw createMissingDateImplementationError('DateTimeAdapter');
589
589
  }
590
590
  this.time = this._getDefaultValue();
591
- effect(() => {
592
- this._dateTimeAdapter.locale();
591
+ onLocaleChange(this._dateTimeAdapter, () => {
593
592
  this._setUpViewGrid();
594
593
  this._changeDetectorRef.markForCheck();
595
594
  });