declare type AirDatepickerSelector = string | HTMLElement;
export declare type AirDatepickerLocale = {
days: string[],
daysShort: string[],
daysMin: string[],
months: string[],
monthsShort: string[],
today: string,
clear: string,
dateFormat: string,
timeFormat: string,
firstDay: 0 | 1 | 2 | 3 | 4 | 5 | 6,
}
export declare type AirDatepickerButton = {
content: string | ((dp: AirDatepicker) => string),
tagName?: keyof HTMLElementTagNameMap,
className?: string,
attrs?: Record,
onClick?: (dp: AirDatepicker) => void
}
export declare type AirDatepickerButtonPresets = 'clear' | 'today';
export declare type AirDatepickerPosition = 'left' | 'left top' | 'left bottom' | 'top' | 'top left' | 'top right' | 'right' | 'right top' | 'right bottom' | 'bottom' | 'bottom left' | 'bottom right';
export declare type AirDatepickerViews = 'days' | 'months' | 'years';
export declare type AirDatepickerViewsSingle = 'day' | 'month' | 'year';
export declare type AirDatepickerDate = string | number | Date;
export declare type AirDatepickerNavEntry = string | ((dp: AirDatepicker) => string);
export declare type AirDatepickerDecade = [number, number];
export declare type AirDatepickerPositionCallback = (
{
$datepicker,
$target,
$pointer,
isViewChange,
done
}: {
$datepicker: HTMLDivElement,
$target: HTMLInputElement,
$pointer: HTMLElement,
isViewChange: boolean,
done: () => void
}) => void | (() => void)
export declare type AirDatepickerOptions = {
classes?: string
inline?: boolean,
locale?: Partial,
startDate?: AirDatepickerDate,
firstDay?: number,
isMobile?: boolean,
visible?: boolean,
weekends?: [number, number],
dateFormat?: string | ((d: Date) => string),
altField?: AirDatepickerSelector,
altFieldDateFormat?: string,
toggleSelected?: boolean | (({datepicker, date}:{datepicker: AirDatepicker, date: Date}) => boolean),
keyboardNav?: boolean,
selectedDates?: AirDatepickerDate[] | false,
container?: AirDatepickerSelector,
position?: AirDatepickerPosition | AirDatepickerPositionCallback,
offset?: number,
view?: AirDatepickerViews,
minView?: AirDatepickerViews,
showOtherMonths?: boolean,
selectOtherMonths?: boolean,
moveToOtherMonthsOnSelect?: boolean,
showOtherYears?: boolean,
selectOtherYears?: boolean,
moveToOtherYearsOnSelect?: boolean,
minDate?: AirDatepickerDate | false,
maxDate?: AirDatepickerDate | false,
disableNavWhenOutOfRange?: true,
multipleDates?: number | true | false,
multipleDatesSeparator?: string,
range?: boolean,
dynamicRange?: boolean,
buttons?: AirDatepickerButtonPresets | AirDatepickerButton | (AirDatepickerButtonPresets| AirDatepickerButton)[] | false,
monthsField?: keyof AirDatepickerLocale,
showEvent?: string,
autoClose?: boolean,
prevHtml?: string,
nextHtml?: string,
navTitles?: {
days?: AirDatepickerNavEntry,
months?: AirDatepickerNavEntry,
years?: AirDatepickerNavEntry
},
timepicker?: boolean,
onlyTimepicker?: boolean,
dateTimeSeparator?: string,
timeFormat?: string,
minHours?: number,
maxHours?: number,
minMinutes?: number,
maxMinutes?: number,
hoursStep?: number,
minutesStep?: number,
fixedHeight?: boolean,
onSelect?: ({date, formattedDate, datepicker}: {date: Date | Date[], formattedDate: string | string[], datepicker: AirDatepicker}) => void,
onChangeViewDate?: ({month, year, decade}: {month: number, year: number, decade: AirDatepickerDecade}) => void,
onChangeView?: (view: AirDatepickerViews) => void,
onRenderCell?: (params: {date: Date, cellType: AirDatepickerViewsSingle, datepicker: AirDatepicker}) => ({
disabled?: boolean,
classes?: string,
html?: string
attrs?: Record
} | void),
onShow?: (isAnimationComplete: boolean) => void,
onHide?: (isAnimationComplete: boolean) => void,
onClickDayName?: ({dayIndex, datepicker}: {dayIndex: number, datepicker: AirDatepicker}) => void
onBeforeSelect?: ({date, datepicker}: {date: Date, datepicker: AirDatepicker}) => boolean;
onFocus?: ({date, datepicker}: {date: Date, datepicker: AirDatepicker}) => void;
}
declare class AirDatepicker {
constructor(el: string | E, opts? : AirDatepickerOptions)
static defaults: AirDatepickerOptions
static version: string
static defaultGlobalContainerId: string
static buildGlobalContainer: (id?: string) => void;
show: () => void
hide: () => void
next: () => void
prev: () => void
/**
* Selects date, if array is passed then selects dates one by one
* @param {DateLike|Array} date
* @param {object} [opts] - extra parameters
* @param {boolean} [opts.updateTime] - should update timepicker's time from passed date
* @param {boolean} [opts.silent] - if true, then onChange event wont be triggered
* @return {Promise} - returns promise, since input value updates asynchronously, after promise resolves, we need a promise to be able to get current input value
* @example selectDate(new Date()).then(() => {console.log(dp.$el.value)})
*/
selectDate: (date: AirDatepickerDate | AirDatepickerDate[], opts?: {updateTime?: boolean, silent?: boolean}) => Promise
unselectDate: (date: AirDatepickerDate) => void
clear: (opts?: {silent?: boolean}) => void
formatDate: (date: AirDatepickerDate, format: string) => string
destroy: () => void
update: (newOpts?: AirDatepickerOptions, params?: {silent?: boolean}) => void
setCurrentView: (newView: AirDatepickerViews, params?: {silent?: boolean}) => void
setViewDate: (newViewDate: AirDatepickerDate) => void
setFocusDate: (date: AirDatepickerDate | false, opts?: {viewDateTransition?: boolean}) => void
up: (date?: AirDatepickerDate) => void
down: (date?: AirDatepickerDate) => void
disableDate: (date: AirDatepickerDate | AirDatepickerDate[]) => void
enableDate: (date: AirDatepickerDate | AirDatepickerDate[]) => void
$el: E
$datepicker: HTMLDivElement
viewDate: Date
currentView: AirDatepickerViews
selectedDates: Date[]
focusDate: Date | false
visible: boolean
disabledDates: Set
isDestroyed: boolean;
}
export default AirDatepicker;