flatpickr
Version:
A lightweight, powerful javascript datetime picker
143 lines (142 loc) • 4.49 kB
TypeScript
import { Instance } from "./instance";
import { CustomLocale, key as LocaleKey, Locale } from "./locale";
export declare type DateOption = Date | string | number;
export declare type DateRangeLimit<D = DateOption> = {
from: D;
to: D;
};
export declare type DateLimit<D = DateOption> = D | DateRangeLimit<D> | ((date: Date) => boolean);
export declare type Hook = (dates: Date[], currentDateString: string, self: Instance, data?: any) => void;
export declare type HookKey = "onChange" | "onClose" | "onDayCreate" | "onDestroy" | "onKeyDown" | "onMonthChange" | "onOpen" | "onParseConfig" | "onReady" | "onValueUpdate" | "onYearChange" | "onPreCalendarPosition";
export declare const HOOKS: HookKey[];
export declare type Plugin<E = {}> = (fp: Instance & E) => Options;
export interface BaseOptions {
allowInput: boolean;
altFormat: string;
altInput: boolean;
altInputClass: string;
animate: boolean;
appendTo: HTMLElement;
ariaDateFormat: string;
clickOpens: boolean;
closeOnSelect: boolean;
conjunction: string;
dateFormat: string;
defaultDate: DateOption | DateOption[];
defaultHour: number;
defaultMinute: number;
defaultSeconds: number;
disable: DateLimit<DateOption>[];
disableMobile: boolean;
enable: DateLimit<DateOption>[];
enableSeconds: boolean;
enableTime: boolean;
errorHandler: (e: Error) => void;
formatDate: (date: Date, format: string, locale: Locale) => string;
getWeek: (date: Date) => string | number;
hourIncrement: number;
ignoredFocusElements: HTMLElement[];
inline: boolean;
locale: LocaleKey | CustomLocale;
maxDate: DateOption;
maxTime: DateOption;
minDate: DateOption;
minTime: DateOption;
minuteIncrement: number;
mode: "single" | "multiple" | "range" | "time";
nextArrow: string;
noCalendar: boolean;
now?: DateOption;
onChange: Hook | Hook[];
onClose: Hook | Hook[];
onDayCreate: Hook | Hook[];
onDestroy: Hook | Hook[];
onKeyDown: Hook | Hook[];
onMonthChange: Hook | Hook[];
onOpen: Hook | Hook[];
onParseConfig: Hook | Hook[];
onReady: Hook | Hook[];
onValueUpdate: Hook | Hook[];
onYearChange: Hook | Hook[];
onPreCalendarPosition: Hook | Hook[];
parseDate: (date: string, format: string) => Date;
plugins: Plugin[];
position: "auto" | "above" | "below";
positionElement: Element;
prevArrow: string;
shorthandCurrentMonth: boolean;
static: boolean;
showMonths?: number;
time_24hr: boolean;
weekNumbers: boolean;
wrap: boolean;
}
export declare type Options = Partial<BaseOptions>;
export interface ParsedOptions {
_disable: DateLimit<Date>[];
_enable: DateLimit<Date>[];
_maxDate?: Date;
_maxTime?: Date;
_minDate?: Date;
_minTime?: Date;
allowInput: boolean;
altFormat: string;
altInput: boolean;
altInputClass: string;
animate: boolean;
appendTo?: HTMLElement;
ariaDateFormat: string;
clickOpens: boolean;
closeOnSelect: boolean;
conjunction: string;
dateFormat: string;
defaultDate?: Date | Date[];
defaultHour: number;
defaultMinute: number;
defaultSeconds: number;
disable: DateLimit<Date>[];
disableMobile: boolean;
enable: DateLimit<Date>[];
enableSeconds: boolean;
enableTime: boolean;
errorHandler: (err: Error) => void;
formatDate?: Options["formatDate"];
getWeek: (date: Date) => string | number;
hourIncrement: number;
ignoredFocusElements: HTMLElement[];
inline: boolean;
locale: LocaleKey | CustomLocale;
maxDate?: Date;
maxTime?: Date;
minDate?: Date;
minTime?: Date;
minuteIncrement: number;
mode: BaseOptions["mode"];
nextArrow: string;
noCalendar: boolean;
now: Date;
onChange: Hook[];
onClose: Hook[];
onDayCreate: Hook[];
onDestroy: Hook[];
onKeyDown: Hook[];
onMonthChange: Hook[];
onOpen: Hook[];
onParseConfig: Hook[];
onReady: Hook[];
onValueUpdate: Hook[];
onYearChange: Hook[];
onPreCalendarPosition: Hook[];
parseDate?: BaseOptions["parseDate"];
plugins: Plugin[];
position: BaseOptions["position"];
positionElement?: HTMLElement;
prevArrow: string;
shorthandCurrentMonth: boolean;
showMonths: number;
static: boolean;
time_24hr: boolean;
weekNumbers: boolean;
wrap: boolean;
}
export declare const defaults: ParsedOptions;