UNPKG

@qeydar/datepicker

Version:

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

152 lines (151 loc) 8.02 kB
import { ElementRef, OnInit, OnChanges, SimpleChanges, EventEmitter, Renderer2, ChangeDetectorRef, AfterViewInit, QueryList, NgZone, OnDestroy } from '@angular/core'; import { ControlValueAccessor, FormBuilder, FormGroup, AbstractControl, ValidationErrors } from '@angular/forms'; import { DateAdapter, JalaliDateAdapter, GregorianDateAdapter } from './date-adapter'; import { CustomLabels, DateRange, Lang_Locale, RangeInputLabels } from './utils/models'; import { DatePickerPopupComponent } from './date-picker-popup/date-picker-popup.component'; import { CdkOverlayOrigin, ConnectedOverlayPositionChange, ConnectionPositionPair, HorizontalConnectionPos, VerticalConnectionPos } from '@angular/cdk/overlay'; import { DestroyService, QeydarDatePickerService } from './date-picker.service'; import { CalendarType, DatepickerMode, Placement, RangePartType, ValueFormat } from './utils/types'; import { CustomTemplate } from './utils/template.directive'; import * as i0 from "@angular/core"; export declare class DatePickerComponent implements ControlValueAccessor, OnInit, OnChanges, AfterViewInit, OnDestroy { fb: FormBuilder; elementRef: ElementRef; renderer: Renderer2; cdref: ChangeDetectorRef; dpService: QeydarDatePickerService; destroy$: DestroyService; ngZone: NgZone; jalali: JalaliDateAdapter; gregorian: GregorianDateAdapter; private injectedDateAdapter; rtl: boolean; mode: DatepickerMode; isRange: boolean; customLabels: Array<CustomLabels>; calendarType: CalendarType; lang: Lang_Locale; cssClass: string; footerDescription: string; rangeInputLabels: RangeInputLabels; inputLabel: string; placement: Placement; disabled: boolean; isInline: boolean; showSidebar: boolean; showToday: boolean; valueFormat: ValueFormat; disableInputMask: boolean; disabledDates: Array<Date | string>; disabledDatesFilter: (date: Date) => boolean; disabledTimesFilter: (date: Date) => boolean; allowEmpty: boolean; readOnly: boolean; readOnlyInput: boolean; dateAdapter: DateAdapter<Date> | null; set minDate(date: Date | string | null); get minDate(): Date; set maxDate(date: Date | string | null); get maxDate(): Date; set format(value: string); get format(): string; onFocus: EventEmitter<any>; onBlur: EventEmitter<any>; onChangeValue: EventEmitter<any>; onOpenChange: EventEmitter<boolean>; datePickerInput: ElementRef; rangePickerInputs?: QueryList<ElementRef<HTMLInputElement>>; datePickerPopup: DatePickerPopupComponent; templates: QueryList<CustomTemplate>; origin: CdkOverlayOrigin; overlayPositions: ConnectionPositionPair[]; currentPositionX: HorizontalConnectionPos; currentPositionY: VerticalConnectionPos; document: Document; isOpen: boolean; selectedDate: Date | null; selectedStartDate: Date | null; selectedEndDate: Date | null; form: FormGroup; currentDateAdapter: DateAdapter<Date>; activeInput: 'start' | 'end' | ''; hideStateHelper: boolean; isInternalChange: boolean; lastEmittedValue: any; showTimePicker: boolean; timeDisplayFormat: string; documentClickListener: (event: MouseEvent) => void; private _minDate; private _maxDate; private _format; get valueAdapter(): JalaliDateAdapter | GregorianDateAdapter; constructor(fb: FormBuilder, elementRef: ElementRef, renderer: Renderer2, cdref: ChangeDetectorRef, dpService: QeydarDatePickerService, destroy$: DestroyService, ngZone: NgZone, jalali: JalaliDateAdapter, gregorian: GregorianDateAdapter, doc: Document, injectedDateAdapter: DateAdapter<Date>); ngOnInit(): void; ngOnChanges(changes: SimpleChanges): void; ngAfterViewInit(): void; ngOnDestroy(): void; initializeComponent(doc: Document): void; initialize(): void; setupAfterViewInit(): void; setDateAdapter(): void; setupFormControls(): void; handleChanges(changes: SimpleChanges): void; handleDocumentClick(event: MouseEvent): void; onInputChange(value: string, inputType?: 'start' | 'end'): void; handleRangeInputChange(value: string, inputType?: 'start' | 'end'): void; handleSingleInputChange(value: string): void; emitValueIfChanged(): void; prepareValueForEmission(): any; onDateSelected(date: Date): void; handleRangeDateSelection(date: Date): void; handleSingleDateSelection(date: Date): void; onDateRangeSelected(dateRange: DateRange): void; close(): void; open(): void; focus(): void; getInput(partType?: RangePartType): HTMLInputElement | undefined; getPlaceholder(inputType?: string): string; clampDate(date: Date): Date; clampDateTime(adjustedDate: Date, date: Date): Date; findNearestValidDate(date: Date): Date; validateAndNormalizeTime(date: Date): { isValid: boolean; normalizedDate: Date | null; }; parseDisabledDates(): Date[]; isDateDisabled(date: Date): boolean; isTimeDisabled(date: Date): boolean; dateFormatValidator(control: AbstractControl): ValidationErrors | null; getFormatForMode(): string; setPlacement(placement: Placement): void; onPositionChange(position: ConnectedOverlayPositionChange): void; onFocusout(event: FocusEvent): void; onInputBlur(inputType: 'start' | 'end' | null, event: Event): void; getInputValue(inputType: 'start' | 'end' | null): string | undefined; validateAndCorrectInput(value: string): string; handleCorrectedValue(inputType: 'start' | 'end' | null, correctedValue: string): void; handleRangeCorrectedValue(inputType: 'start' | 'end' | null, correctedValue: string): void; handleSingleCorrectedValue(correctedValue: string): void; onFocusInput(inputType: 'start' | 'end' | null, event: Event): void; toggleDatePicker(inputType: 'start' | 'end' | null, event: Event): void; onInputKeydown(event: KeyboardEvent): void; updateInputValue(): void; updateDatePickerPopup(): void; convertDateToFormat(date: Date, fromType: CalendarType): any; onChange: any; onTouch: any; writeValue(value: any): void; resetValues(): void; registerOnChange(fn: any): void; registerOnTouched(fn: any): void; setupActiveInputSubscription(): void; setupMouseDownEventHandler(): void; parseDateValue(value: any): Date | null; parseValueFromFormat(value: string | Date, targetAdapter: DateAdapter<Date>): Date | null; parseIncomingValue(value: any): Date | null; hasTimeComponent(format: string): boolean; extractTimeFormat(format: string): string; extractDateFormat(format: string): string; static ɵfac: i0.ɵɵFactoryDeclaration<DatePickerComponent, [null, null, null, null, null, null, null, null, null, null, { optional: true; }]>; static ɵcmp: i0.ɵɵComponentDeclaration<DatePickerComponent, "qeydar-date-picker", never, { "rtl": "rtl"; "mode": "mode"; "isRange": "isRange"; "customLabels": "customLabels"; "calendarType": "calendarType"; "lang": "lang"; "cssClass": "cssClass"; "footerDescription": "footerDescription"; "rangeInputLabels": "rangeInputLabels"; "inputLabel": "inputLabel"; "placement": "placement"; "disabled": "disabled"; "isInline": "isInline"; "showSidebar": "showSidebar"; "showToday": "showToday"; "valueFormat": "valueFormat"; "disableInputMask": "disableInputMask"; "disabledDates": "disabledDates"; "disabledDatesFilter": "disabledDatesFilter"; "disabledTimesFilter": "disabledTimesFilter"; "allowEmpty": "allowEmpty"; "readOnly": "readOnly"; "readOnlyInput": "readOnlyInput"; "dateAdapter": "dateAdapter"; "minDate": "minDate"; "maxDate": "maxDate"; "format": "format"; }, { "onFocus": "onFocus"; "onBlur": "onBlur"; "onChangeValue": "onChangeValue"; "onOpenChange": "onOpenChange"; }, ["templates"], never, true>; }