///
import { KeyboardEvents, BaseEventArgs, KeyboardEventArgs, EmitType, ChildProperty } from '@syncfusion/ej2-base';
import { Touch } from '@syncfusion/ej2-base';
import { CalendarView, CalendarBase, NavigatedEventArgs, RenderDayCellEventArgs, CalendarType } from '../calendar/calendar';
import { Popup } from '@syncfusion/ej2-popups';
import { BlurEventArgs, FocusEventArgs, ClearedEventArgs } from '../calendar/calendar';
import { FloatLabelType } from '@syncfusion/ej2-inputs';
import { PresetsModel, DateRangePickerModel } from './daterangepicker-model';
export declare class Presets extends ChildProperty {
/**
* Defines the label string of the preset range.
*/
label: string;
/**
* Defines the start date of the preset range.
*/
start: Date;
/**
* Defines the end date of the preset range
*/
end: Date;
}
export interface DateRange {
/** Defines the start date */
start?: Date;
/** Defines the end date */
end?: Date;
}
export interface RangeEventArgs extends BaseEventArgs {
/**
* Defines the value
*/
value?: Date[] | DateRange;
/** Defines the value string in the input element */
text?: string;
/** Defines the start date */
startDate?: Date;
/** Defines the end date */
endDate?: Date;
/** Defines the day span between the range */
daySpan?: number;
/** Specifies the element. */
element?: HTMLElement | HTMLInputElement;
/**
* Specifies the original event arguments.
*/
event?: MouseEvent | KeyboardEvent | TouchEvent | Event;
/**
* If the event is triggered by interaction, it returns true. Otherwise, it returns false.
*/
isInteracted?: boolean;
}
export interface RangePopupEventArgs {
/** Defines the range string in the input element */
date: string;
/** Defines the DateRangePicker model */
model: DateRangePickerModel;
/**
* Illustrates whether the current action needs to be prevented or not.
*/
cancel?: boolean;
/**
* Defines the DateRangePicker popup object.
*
*/
popup?: Popup;
/**
* Specifies the original event arguments.
*/
event?: MouseEvent | KeyboardEvent | Event;
/**
* Specifies the node to which the popup element to be appended.
*/
appendTo?: HTMLElement;
}
export interface RangeFormatObject {
/**
* Specifies the format in which the date format will process
*/
skeleton?: string;
}
/**
* Represents the DateRangePicker component that allows user to select the date range from the calendar
* or entering the range through the input element.
* ```html
*
* ```
* ```typescript
*
* ```
*/
export declare class DateRangePicker extends CalendarBase {
private popupObj;
private inputWrapper;
private popupWrapper;
private rightCalendar;
private leftCalendar;
private deviceCalendar;
private leftCalCurrentDate;
private initStartDate;
private initEndDate;
private startValue;
private endValue;
private modelValue;
private rightCalCurrentDate;
private leftCalPrevIcon;
private leftCalNextIcon;
private leftTitle;
private rightTitle;
private rightCalPrevIcon;
private rightCalNextIcon;
private inputKeyboardModule;
protected leftKeyboardModule: KeyboardEvents;
protected rightKeyboardModule: KeyboardEvents;
private previousStartValue;
private previousEndValue;
private applyButton;
private cancelButton;
private startButton;
private endButton;
private cloneElement;
private l10n;
private isCustomRange;
private isCustomWindow;
private presetsItem;
private liCollections;
private activeIndex;
private presetElement;
private previousEleValue;
private targetElement;
private disabledDayCnt;
private angularTag;
private inputElement;
private modal;
private firstHiddenChild;
private secondHiddenChild;
private isKeyPopup;
private dateDisabled;
private navNextFunction;
private navPrevFunction;
private deviceNavNextFunction;
private deviceNavPrevFunction;
private isRangeIconClicked;
private isMaxDaysClicked;
private popupKeyboardModule;
private presetKeyboardModule;
private btnKeyboardModule;
private virtualRenderCellArgs;
private disabledDays;
private isMobile;
private keyInputConfigs;
private defaultConstant;
private preventBlur;
private preventFocus;
private valueType;
private closeEventArgs;
private openEventArgs;
private controlDown;
private startCopy;
private endCopy;
private formElement;
private formatString;
private inputFormatsString;
protected tabIndex: string;
private invalidValueString;
private dateRangeOptions;
private mobileRangePopupWrap;
protected preventChange: boolean;
protected touchRangeModule: Touch;
protected touchRangeStart: boolean;
protected iconRangeRight: string;
protected clearButton: HTMLElement;
/**
* Gets or sets the start and end date of the Calendar.
* {% codeBlock src='daterangepicker/value/index.md' %}{% endcodeBlock %}
*
* @default null
*/
value: Date[] | DateRange;
/**
* Enable or disable the persisting component's state between the page reloads. If enabled, following list of states will be persisted.
* 1. startDate
* 2. endDate
* 3. value
*
* @default false
*/
enablePersistence: boolean;
/**
* Gets or sets the minimum date that can be selected in the calendar-popup.
*
* @default new Date(1900, 00, 01)
*/
min: Date;
/**
* Gets or sets the maximum date that can be selected in the calendar-popup.
*
* @default new Date(2099, 11, 31)
*/
max: Date;
/**
* Overrides the global culture and localization value for this component. Default global culture is 'en-US'.
*
* @default 'en-US'
*/
locale: string;
/**
* Gets or sets the Calendar's first day of the week. By default, the first day of the week will be based on the current culture.
* > For more details about firstDayOfWeek refer to
* [`First day of week`](../../daterangepicker/customization#first-day-of-week) documentation.
*
* @default null
*/
firstDayOfWeek: number;
/**
* Determines whether the week number of the Calendar is to be displayed or not.
* The week number is displayed in every week row.
* > For more details about weekNumber refer to
* [`Calendar with week number`](../../calendar/how-to/render-the-calendar-with-week-numbers)documentation.
*
* @default false
*/
weekNumber: boolean;
/**
* Gets or sets the Calendar's Type like gregorian or islamic.
*
* @default Gregorian
* @private
*/
calendarMode: CalendarType;
/**
* By default, the popup opens while clicking on the daterangepicker icon.
* If you want to open the popup while focusing the daterange input then specify its value as true.
*
* @default false
*/
openOnFocus: boolean;
/**
* Specifies the component popup display full screen in mobile devices.
*
* @default false
*/
fullScreenMode: boolean;
/**
* Triggers when Calendar is created.
*
* @event created
*/
created: EmitType