import * as i2 from 'igniteui-angular/core'; import { DatePartDeltas, IBaseEventArgs, PickerInteractionMode, IgxPickerActionsDirective, ITimePickerResourceStrings, OverlaySettings, DatePart, IgxPickerToggleComponent, IgxPickerClearComponent } from 'igniteui-angular/core'; import * as i0 from '@angular/core'; import { ElementRef, OnInit, OnDestroy, AfterViewInit, EventEmitter, PipeTransform } from '@angular/core'; import { ControlValueAccessor, Validator, AbstractControl, ValidationErrors } from '@angular/forms'; import * as i3 from 'igniteui-angular/input-group'; import { IgxLabelDirective, IgxPrefixDirective, IgxSuffixDirective, IgxHintDirective } from 'igniteui-angular/input-group'; import { PickerBaseDirective } from 'igniteui-angular/date-picker'; /** @hidden */ interface IgxTimePickerBase { hourList: ElementRef; locale: string; minuteList: ElementRef; secondsList: ElementRef; ampmList: ElementRef; inputFormat: string; itemsDelta: Pick; spinLoop: boolean; selectedDate: Date; maxDropdownValue: Date; minDropdownValue: Date; isTwelveHourFormat: boolean; showHoursList: boolean; showMinutesList: boolean; showSecondsList: boolean; showAmPmList: boolean; minDateValue: Date; maxDateValue: Date; /** @hidden @internal */ appliedFormat: string; nextHour(delta: number): any; nextMinute(delta: number): any; nextSeconds(delta: number): any; nextAmPm(delta: number): any; close(): void; cancelButtonClick(): void; okButtonClick(): void; onItemClick(item: string, dateType: string): void; getPartValue(value: Date, type: string): string; toISOString(value: Date): string; } interface IgxTimePickerValidationFailedEventArgs extends IBaseEventArgs { previousValue: Date | string; currentValue: Date | string; } declare class IgxTimePickerComponent extends PickerBaseDirective implements IgxTimePickerBase, ControlValueAccessor, OnInit, OnDestroy, AfterViewInit, Validator { private _injector; private platform; private cdr; /** * Sets the value of the `id` attribute. * ```html * * ``` */ id: string; /** * The format used when editable input is not focused. Defaults to the `inputFormat` if not set. * * @remarks * Uses Angular's `DatePipe`. * * @example * ```html * * ``` * */ displayFormat: string; /** * The expected user input format and placeholder. * * @remarks * Default is `hh:mm tt` * * @example * ```html * * ``` */ inputFormat: string; /** * Gets/Sets the interaction mode - dialog or drop down. * * @example * ```html * * ``` */ mode: PickerInteractionMode; /** * The minimum value the picker will accept. * * @remarks * If a `string` value is passed in, it must be in ISO format. * * @example * ```html * * ``` */ set minValue(value: Date | string); get minValue(): Date | string; /** * Gets if the dropdown/dialog is collapsed * * ```typescript * let isCollapsed = this.timePicker.collapsed; * ``` */ get collapsed(): boolean; /** * The maximum value the picker will accept. * * @remarks * If a `string` value is passed in, it must be in ISO format. * * @example * ```html * * ``` */ set maxValue(value: Date | string); get maxValue(): Date | string; /** * Sets whether the seconds, minutes and hour spinning will loop back around when end value is reached. * By default it's set to true. * ```html * * ``` */ spinLoop: boolean; /** * Gets/Sets a custom formatter function on the selected or passed date. * * @example * ```html * * ``` */ formatter: (val: Date) => string; /** @hidden @internal */ readOnly: boolean; /** * Emitted after a selection has been done. * * @example * ```html * * ``` */ selected: EventEmitter; /** * Emitted when the picker's value changes. * * @remarks * Used for `two-way` bindings. * * @example * ```html * * ``` */ valueChange: EventEmitter; /** * Emitted when the user types/spins invalid time in the time-picker editor. * * @example * ```html * * ``` */ validationFailed: EventEmitter; /** @hidden */ hourList: ElementRef; /** @hidden */ minuteList: ElementRef; /** @hidden */ secondsList: ElementRef; /** @hidden */ ampmList: ElementRef; /** @hidden @internal */ label: IgxLabelDirective; /** @hidden @internal */ timePickerActionsDirective: IgxPickerActionsDirective; private inputDirective; private _inputGroup; private dateTimeEditor; private toggleRef; /** @hidden */ cleared: boolean; /** @hidden */ isNotEmpty: boolean; /** @hidden */ currentHour: number; /** @hidden */ currentMinutes: number; /** @hidden */ get showClearButton(): boolean; /** @hidden */ get showHoursList(): boolean; /** @hidden */ get showMinutesList(): boolean; /** @hidden */ get showSecondsList(): boolean; /** @hidden */ get showAmPmList(): boolean; /** @hidden */ get isTwelveHourFormat(): boolean; /** @hidden @internal */ get isVertical(): boolean; /** @hidden @internal */ get selectedDate(): Date; /** @hidden @internal */ get minDateValue(): Date; /** @hidden @internal */ get maxDateValue(): Date; /** @hidden @internal */ get appliedFormat(): string; protected get toggleContainer(): HTMLElement | undefined; private get required(); private get dialogOverlaySettings(); private get dropDownOverlaySettings(); /** @hidden @internal */ displayValue: PipeTransform; /** @hidden @internal */ minDropdownValue: Date; /** @hidden @internal */ maxDropdownValue: Date; /** @hidden @internal */ hourItems: any[]; /** @hidden @internal */ minuteItems: any[]; /** @hidden @internal */ secondsItems: any[]; /** @hidden @internal */ ampmItems: any[]; private _value; private _dateValue; private _dateMinValue; private _dateMaxValue; private _selectedDate; private _resourceStrings; private _okButtonLabel; private _cancelButtonLabel; private _itemsDelta; private _statusChanges$; private _ngControl; private _onChangeCallback; private _onTouchedCallback; private _onValidatorChange; private _defaultDialogOverlaySettings; private _defaultDropDownOverlaySettings; /** * The currently selected value / time from the drop-down/dialog * * @remarks * The current value is of type `Date` * * @example * ```typescript * const newValue: Date = new Date(2000, 2, 2, 10, 15, 15); * this.timePicker.value = newValue; * ``` */ get value(): Date | string; /** * An accessor that allows you to set a time using the `value` input. * ```html * public date: Date = new Date(Date.now()); * //... * * ``` */ set value(value: Date | string); /** * An accessor that sets the resource strings. * By default it uses EN resources. */ set resourceStrings(value: ITimePickerResourceStrings); /** * An accessor that returns the resource strings. */ get resourceStrings(): ITimePickerResourceStrings; /** * Overrides the default text of the **OK** button. * * @remarks * Defaults to the value from resource strings, `"OK"` for the built-in EN. * * ```html * * ``` */ set okButtonLabel(value: string); /** * An accessor that returns the label of ok button. */ get okButtonLabel(): string; /** * Overrides the default text of the **Cancel** button. * @remarks * Defaults to the value from resource strings, `"Cancel"` for the built-in EN. * ```html * * ``` */ set cancelButtonLabel(value: string); /** * An accessor that returns the label of cancel button. */ get cancelButtonLabel(): string; /** * Delta values used to increment or decrement each editor date part on spin actions and * to display time portions in the dropdown/dialog. * By default `itemsDelta` is set to `{hour: 1, minute: 1, second: 1}` * ```html * * ``` */ set itemsDelta(value: Pick); get itemsDelta(): Pick; constructor(); /** @hidden @internal */ onKeyDown(event: KeyboardEvent): void; /** @hidden @internal */ getPartValue(value: Date, type: string): string; /** @hidden @internal */ toISOString(value: Date): string; /** @hidden @internal */ writeValue(value: Date | string): void; /** @hidden @internal */ registerOnChange(fn: (_: Date | string) => void): void; /** @hidden @internal */ registerOnTouched(fn: () => void): void; /** @hidden @internal */ registerOnValidatorChange(fn: any): void; /** @hidden @internal */ validate(control: AbstractControl): ValidationErrors | null; /** @hidden @internal */ setDisabledState(isDisabled: boolean): void; /** @hidden */ ngOnInit(): void; /** @hidden */ ngAfterViewInit(): void; /** @hidden */ ngOnDestroy(): void; /** @hidden */ getEditElement(): HTMLInputElement; /** * Opens the picker's dialog UI. * * @param settings OverlaySettings - the overlay settings to use for positioning the drop down or dialog container according to * ```html * * * ``` */ open(settings?: OverlaySettings): void; /** * Closes the dropdown/dialog. * ```html * * ``` * ```typescript * @ViewChild('timePicker', { read: IgxTimePickerComponent }) picker: IgxTimePickerComponent; * picker.close(); * ``` */ close(): void; toggle(settings?: OverlaySettings): void; /** * Clears the time picker value if it is a `string` or resets the time to `00:00:00` if the value is a Date object. * * @example * ```typescript * this.timePicker.clear(); * ``` */ clear(): void; /** * Selects time from the igxTimePicker. * * @example * ```typescript * this.timePicker.select(date); * * @param date Date object containing the time to be selected. */ select(date: Date | string): void; /** * Increment a specified `DatePart`. * * @param datePart The optional DatePart to increment. Defaults to Hour. * @param delta The optional delta to increment by. Overrides `itemsDelta`. * @example * ```typescript * this.timePicker.increment(DatePart.Hours); * ``` */ increment(datePart?: DatePart, delta?: number): void; /** * Decrement a specified `DatePart` * * @param datePart The optional DatePart to decrement. Defaults to Hour. * @param delta The optional delta to decrement by. Overrides `itemsDelta`. * @example * ```typescript * this.timePicker.decrement(DatePart.Seconds); * ``` */ decrement(datePart?: DatePart, delta?: number): void; /** @hidden @internal */ cancelButtonClick(): void; /** @hidden @internal */ okButtonClick(): void; /** @hidden @internal */ onItemClick(item: string, dateType: string): void; /** @hidden @internal */ nextHour(delta: number): void; /** @hidden @internal */ nextMinute(delta: number): void; /** @hidden @internal */ nextSeconds(delta: number): void; /** @hidden @internal */ nextAmPm(delta?: number): void; /** @hidden @internal */ setSelectedValue(value: Date): void; protected onStatusChanged(): void; private get isTouchedOrDirty(); private get hasValidators(); private setMinMaxDropdownValue; private initializeContainer; private validateDropdownValue; private emitValueChange; private emitValidationFailedEvent; private updateValidityOnBlur; private valueInRange; private parseToDate; private toTwentyFourHourFormat; private updateValue; private updateEditorValue; private subscribeToDateEditorEvents; private subscribeToToggleDirectiveEvents; static ɵfac: i0.ɵɵFactoryDeclaration; static ɵcmp: i0.ɵɵComponentDeclaration; static ngAcceptInputType_spinLoop: unknown; static ngAcceptInputType_readOnly: unknown; } /** * This file contains all the directives used by the @link IgxTimePickerComponent. * You should generally not use them directly. * * @preferred */ /** @hidden */ declare class IgxItemListDirective implements OnInit, OnDestroy { timePicker: IgxTimePickerBase; private elementRef; private touchManager; tabindex: number; type: string; isActive: boolean; private readonly SCROLL_THRESHOLD; private readonly PAN_THRESHOLD; /** * accumulates wheel scrolls and triggers a change action above SCROLL_THRESHOLD */ private scrollAccumulator; get defaultCSS(): boolean; get hourCSS(): boolean; get minuteCSS(): boolean; get secondsCSS(): boolean; get ampmCSS(): boolean; onFocus(): void; onBlur(): void; /** * @hidden */ onKeydownArrowDown(event: KeyboardEvent): void; /** * @hidden */ onKeydownArrowUp(event: KeyboardEvent): void; /** * @hidden */ onKeydownArrowRight(event: KeyboardEvent): void; /** * @hidden */ onKeydownArrowLeft(event: KeyboardEvent): void; /** * @hidden */ onKeydownEnter(event: KeyboardEvent): void; /** * @hidden */ onKeydownEscape(event: KeyboardEvent): void; /** * @hidden */ onHover(): void; /** * @hidden */ onScroll(event: any): void; /** * @hidden @internal */ ngOnInit(): void; /** * @hidden @internal */ ngOnDestroy(): void; private onPanMove; private nextItem; static ɵfac: i0.ɵɵFactoryDeclaration; static ɵdir: i0.ɵɵDirectiveDeclaration; } /** * @hidden */ declare class IgxTimeItemDirective { timePicker: IgxTimePickerBase; private itemList; value: string; get defaultCSS(): boolean; get selectedCSS(): boolean; get activeCSS(): boolean; get isSelectedTime(): boolean; get minValue(): string; get maxValue(): string; get hourValue(): string; onClick(item: any): void; private getHourPart; static ɵfac: i0.ɵɵFactoryDeclaration; static ɵdir: i0.ɵɵDirectiveDeclaration; } declare const IGX_TIME_PICKER_DIRECTIVES: readonly [typeof IgxTimePickerComponent, typeof IgxPickerActionsDirective, typeof IgxPickerToggleComponent, typeof IgxPickerClearComponent, typeof IgxLabelDirective, typeof IgxPrefixDirective, typeof IgxSuffixDirective, typeof IgxHintDirective]; /** * @hidden * IMPORTANT: The following is NgModule exported for backwards-compatibility before standalone components */ declare class IgxTimePickerModule { static ɵfac: i0.ɵɵFactoryDeclaration; static ɵmod: i0.ɵɵNgModuleDeclaration; static ɵinj: i0.ɵɵInjectorDeclaration; } export { IGX_TIME_PICKER_DIRECTIVES, IgxItemListDirective, IgxTimeItemDirective, IgxTimePickerComponent, IgxTimePickerModule }; export type { IgxTimePickerValidationFailedEventArgs };