UNPKG

@qeydar/datepicker

Version:

A comprehensive Date and Time Picker for Angular with Jalali calendar support

124 lines (123 loc) 5.47 kB
/** * Time Picker Component * A customizable time picker that supports 12/24 hour formats, seconds, and multiple locales. * * Features: * - 12/24 hour format * - Optional seconds * - Localization support * - String or Date value types * - Min/Max time validation * - Custom styling */ import { ElementRef, OnInit, EventEmitter, OnDestroy, ChangeDetectorRef, OnChanges, SimpleChanges } from '@angular/core'; import { ControlValueAccessor, FormBuilder, FormGroup } from '@angular/forms'; import { CdkOverlayOrigin, ConnectedOverlayPositionChange } from '@angular/cdk/overlay'; import { Lang_Locale } from '../utils/models'; import { QeydarDatePickerService } from '../date-picker.service'; import { DateAdapter, GregorianDateAdapter, JalaliDateAdapter } from '../date-adapter'; import { TimeConfig, TimeFormat, TimeValueType } from '../utils/types'; import * as i0 from "@angular/core"; export declare class TimePickerComponent implements ControlValueAccessor, OnInit, OnDestroy, OnChanges { fb: FormBuilder; elementRef: ElementRef; cdref: ChangeDetectorRef; datePickerService: QeydarDatePickerService; jalaliAdapter: JalaliDateAdapter; gregorianAdapter: GregorianDateAdapter; placeholder?: string; rtl: boolean; placement: 'left' | 'right'; minTime?: string; maxTime?: string; lang: Lang_Locale; valueType: TimeValueType; cssClass: string; showIcon: boolean; dateAdapter: DateAdapter<Date>; inline: boolean; disableInputMask: boolean; disabled: boolean; disabledTimesFilter: (date: Date) => boolean; allowEmpty: boolean; readOnly: boolean; readOnlyInput: boolean; set displayFormat(value: string); get displayFormat(): string; set selectedDate(date: Date); get selectedDate(): Date; timeChange: EventEmitter<string | Date>; openChange: EventEmitter<boolean>; timePickerInput: ElementRef<HTMLInputElement>; popupWrapper: ElementRef<HTMLDivElement>; timeFormat: TimeFormat; private _displayFormat; private _value; private _selectedDate; private onChange; private onTouched; private timeoutId; showSeconds: boolean; hours: number[]; minutes: number[]; seconds: number[]; periods: string[]; selectedTime: TimeConfig; isOpen: boolean; form: FormGroup; origin: CdkOverlayOrigin; overlayPositions: import("@angular/cdk/overlay").ConnectionPositionPair[]; constructor(fb: FormBuilder, elementRef: ElementRef, cdref: ChangeDetectorRef, datePickerService: QeydarDatePickerService, jalaliAdapter: JalaliDateAdapter, gregorianAdapter: GregorianDateAdapter); ngOnInit(): void; ngOnDestroy(): void; ngOnChanges(changes: SimpleChanges): void; initializeForm(): void; initializeLocale(): void; updateLocale(): void; setupInputSubscription(): void; updateHourRange(): void; formatTime(date?: Date): string; parseTimeString(value: string | Date): void; get value(): Date | string | null; set value(val: Date | string | null); updateFromValue(value: Date | string | null): void; updateFromDate(date: Date | null): void; resetSelection(): void; writeValue(value: Date | string | null): void; registerOnChange(fn: any): void; registerOnTouched(fn: any): void; handleKeydown(event: KeyboardEvent): void; handleTimeInput(): void; handleDocumentClick: (event: MouseEvent) => void; onFocusInput(): void; toggleTimePicker(event: Event): void; open(): void; close(): void; selectHour(hour: number): void; selectMinute(minute: number): void; selectSecond(second: number): void; selectPeriod(period: string): void; selectNow(): void; save(close?: boolean): void; validateAndUpdateTime(value: string): void; isHourDisabled(hour: number): boolean; isMinuteDisabled(minute: number): boolean; isSecondDisabled(second: number): boolean; isTimeDisabled(testDate: Date): boolean; validateAndNormalizeTime(date: Date): { isValid: boolean; normalizedDate: Date | null; }; private isFullHourDisabled; private isFullMinuteDisabled; createDateWithTime(config: TimeConfig): Date; updateDateFromSelection(): Date; updateTimeDisplay(): void; getTimeFormatFromDisplayFormat(format: string): '12' | '24'; scrollToTime(): Promise<void>; scrollToSelectedItem(id: string, behavior?: ScrollBehavior): Promise<boolean>; cleanupTimeouts(): void; onPositionChange(position: ConnectedOverlayPositionChange): void; static ɵfac: i0.ɵɵFactoryDeclaration<TimePickerComponent, never>; static ɵcmp: i0.ɵɵComponentDeclaration<TimePickerComponent, "qeydar-time-picker", never, { "placeholder": "placeholder"; "rtl": "rtl"; "placement": "placement"; "minTime": "minTime"; "maxTime": "maxTime"; "lang": "lang"; "valueType": "valueType"; "cssClass": "cssClass"; "showIcon": "showIcon"; "dateAdapter": "dateAdapter"; "inline": "inline"; "disableInputMask": "disableInputMask"; "disabled": "disabled"; "disabledTimesFilter": "disabledTimesFilter"; "allowEmpty": "allowEmpty"; "readOnly": "readOnly"; "readOnlyInput": "readOnlyInput"; "displayFormat": "displayFormat"; "selectedDate": "selectedDate"; }, { "timeChange": "timeChange"; "openChange": "openChange"; }, never, never, true>; }