import { NumberfixedlenPipe } from "./numberfixedlen.pipe"; import { ElementRef, EventEmitter, NgZone, OnInit, Renderer2 } from '@angular/core'; import { SharedService } from "../../models/sharedService"; import { Http } from "@angular/http"; import { TranslateService } from "@ngx-translate/core"; import { Subscription } from "rxjs/Subscription"; import { AbstractNgModel } from "../../models/abstract.ngmodel"; export interface LocaleSettings { firstDayOfWeek?: number; dayNames: string[]; dayNamesShort: string[]; monthNames: string[]; monthNamesShort: string[]; dateFns: any; } export declare enum DialogType { Time = 0, Date = 1, Month = 2, Year = 3, } export declare const DATETIMEPICKER_VALUE_ACCESSOR: any; export declare class DatetimeNativeComponent extends AbstractNgModel implements OnInit { private renderer; private ngZone; private numFixedLenPipe; private _sharedService; _http: Http; private _translateService; autoClose: boolean; dataType: 'string' | 'date'; dateFormat: string; defaultMoment: Date | string; disabled: boolean; disabledDates: Date[]; disabledDays: number[]; hideClearButton: boolean; inline: boolean; inputId: string; inputStyle: any; inputStyleClass: string; maxDateCount: number; private _max; max: Date | string; private _min; min: Date | string; placeHolder: string; readonlyInput: boolean; required: boolean; selectionMode: 'single' | 'multiple' | 'range'; showButtons: boolean; showHeader: boolean; showSecondsTimer: boolean; style: any; styleClass: string; tabIndex: number; type: 'both' | 'calendar' | 'timer'; locale: any; hourFormat: '12' | '24'; showOtherMonths: boolean; onClear: EventEmitter; onClose: EventEmitter; onConfirm: EventEmitter; onInvalid: EventEmitter; onSelect: EventEmitter; containerElm: ElementRef; textInputElm: ElementRef; dialogElm: ElementRef; hoursInput: ElementRef; minutesInput: ElementRef; calendarDays: Array; calendarWeekdays: string[]; calendarMonths: Array; calendarYears: Array; dialogType: DialogType; dialogVisible: boolean; formattedValue: string; value: any; pickerMoment: Date; pickerMonth: string; pickerYear: string; valueFormatDate: Date; hourString: any; minString: any; disabledTimer: boolean; hourValue: number; minValue: number; secValue: number; meridianValue: string; private _locale; private dialogClick; private documentClickListener; private valueIndex; private inputValueChanged; private onModelChange; private onModelTouched; private now; valueChangeSubscription: Subscription; dateComp: any; constructor(renderer: Renderer2, ngZone: NgZone, numFixedLenPipe: NumberfixedlenPipe, _sharedService: SharedService, _http: Http, _translateService: TranslateService); ngOnInit(): void; ngOnDestroy(): void; registerOnChange(fn: any): void; registerOnTouched(fn: any): void; setDisabledState(isDisabled: boolean): void; /** * Handle input value change event on the text input * @param {any} event * @return {void} * */ onInputUpdate(event: any): void; onInputClick(event: any): void; onInputFocus(event: any): void; onInputBlur(event: any): void; onDialogClick(event: any): void; onConfirmClick(event: any): void; onCloseClick(event: any): void; onSelectDate(event: any, date: Date): void; focusInput(input?: HTMLInputElement): void; /** * Go to previous month * @param {any} event * @return {void} * */ prevMonth(event: any): void; /** * Go to next month * @param {any} event * @return {void} * */ nextMonth(event: any): void; /** * Set a pickerMoment's month * @param {Number} monthNum * @return {void} * */ selectMonth(monthNum: number): void; /** * Set a pickerMoment's year * @param {Number} yearNum * @return {void} * */ selectYear(yearNum: number): void; /** * Set the selected moment's meridian * @param {any} event * @return {void} * */ toggleMeridian(event: any): void; /** * Set the selected moment's hour * @param {any} event * @param {'increase' | 'decrease' | number} val * 'increase' -- increase hour value by 1 * 'decrease' -- decrease hour value by 1 * number -- set hour value to val * @param {HTMLInputElement} input -- optional * @return {boolean} * */ setHours(event: any, val: 'increase' | 'decrease' | number, input?: HTMLInputElement): boolean; /** * Set the selected moment's minute * @param {any} event * @param {'increase' | 'decrease' | number} val * 'increase' -- increase minute value by 1 * 'decrease' -- decrease minute value by 1 * number -- set minute value to val * @param {HTMLInputElement} input -- optional * @return {boolean} * */ setMinutes(event: any, val: 'increase' | 'decrease' | number, input?: HTMLInputElement): boolean; /** * Set the selected moment's second * @param {any} event * @param {'increase' | 'decrease' | number} val * 'increase' -- increase second value by 1 * 'decrease' -- decrease second value by 1 * number -- set second value to val * @param {HTMLInputElement} input -- optional * @return {boolean} * */ setSeconds(event: any, val: 'increase' | 'decrease' | number, input?: HTMLInputElement): boolean; /** * Check if the date is selected * @param {Date} date * @return {Boolean} * */ isSelectedDay(date: Date): boolean; /** * Check if a day is between two specific days * @param {Date} start * @param {Date} end * @param {Date} day * @return {boolean} * */ isDayBetween(start: Date, end: Date, day: Date): boolean; /** * Check if the calendar day is a valid day * @param {Date} date * @return {Boolean} * */ isValidDay(date: Date): boolean; /** * Check if the month is current pickerMoment's month * @param {Number} monthNum * @return {Boolean} * */ isCurrentMonth(monthNum: number): boolean; /** * Check if the year is current pickerMoment's year * @param {Number} yearNum * @return {Boolean} * */ isCurrentYear(yearNum: number): boolean; /** * Change the dialog type * @param {DialogType} type * @return {void} * */ changeDialogType(type: DialogType): void; /** * Handle blur event on timer input * @param {any} event * @param {HTMLInputElement} input * @param {string} type * @param {number} modelValue * @return {void} * */ onTimerInputBlur(event: any, input: HTMLInputElement, type: string, modelValue: number): void; /** * Set value to null * @param {any} event * @return {void} * */ clearValue(event: any): void; /** * Show the dialog * @param {any} event * @return {void} * */ private show(event); /** * Hide the dialog * @param {any} event * @return {void} * */ private hide(event); /** * Set the dialog position * @return {void} * */ private alignDialog(); /** * Bind click event on document * @return {void} * */ private bindDocumentClickListener(); /** * Unbind click event on document * @return {void} * */ private unbindDocumentClickListener(); /** * Parse a object to Date object * @param {any} val * @return {Date} * */ private parseToDate(val); /** * Generate the calendar days array * @return {void} * */ private generateCalendar(); /** * Generate the calendar weekdays array * */ private generateWeekDays(); /** * Generate the calendar month array * @return {void} * */ private generateMonthList(); /** * Generate the calendar year array * @return {void} * */ generateYearList(dir?: string): void; /** * Update the calendar * @param {Date} value * @return {void} * */ private updateCalendar(value); /** * Update the timer * @param {Date} value * @return {boolean} * */ private updateTimer(value); /** * Update ngModel * @param {Date} value * @return {Boolean} * */ private updateModel(value); /** * Update variable formattedValue * @return {void} * */ private updateFormattedValue(); /** * Set the time * @param {any} event * @param {Date} val * @return {boolean} * */ private setSelectedTime(event, val); /** * set date value on single selection mode * @param {Date} moment * @return {Date} * */ private setDateOnSingleSelection(moment); /** * Set time value on single selection mode * @param {Date} moment * @return {Date} * */ private setTimeOnSingleSelection(moment); /** * set date value on range selection mode * @param {Date} moment * @return {Date[]} -- range selection value * */ private setDateOnRangeSelection(moment); /** * Set time value on range selection * @param {Date} moment * @return {Date[]} * */ private setTimeOnRangeSelection(moment); /** * Set date value on multiple selection mode * @param {Date} moment * @return {Date[]} * */ private setDateOnMultiSelection(moment); /** * Set time value on multiple selection mode * @param {Date} moment * @return {Date[]} * */ private setTimeOnMultiSelection(moment); private isValidValue(value); /** * Check if the selection mode is 'single' * @return {boolean} * */ private isSingleSelection(); /** * Check if the selection mode is 'range' * @return {boolean} * */ private isRangeSelection(); /** * Check if the selection mode is 'multiple' * @return {boolean} * */ private isMultiSelection(); /** * Parse a string to date value * @param text {string} * @return Date | Date[] * */ private parseValueFromString(text); /** * Runs a timeout outside of the Angular zone to avoid triggering the change detection. * @param {Function} fn * @param {number} delay -- optional * @return {void} */ private runTimeoutOutsideZone(fn, delay?); private getHiddenElementDimensions(element); private getViewport(); ngAfterViewInit(): void; modelChanged(date: any): void; }