Базовой точкой входа Flatpickr является функция инициализации, через которую создаётся экземпляр календаря и связывается с DOM-элементом.
flatpickr(element: Node | string, config?: Object): Instance
Параметры:
element: Node | string — DOM-элемент input-поля либо
CSS-селектор, к которому привязывается календарьconfig?: Object — объект конфигурации с параметрами
поведения, отображения и логикиВозвращаемое значение:
Instance — объект экземпляра Flatpickr с набором
методов управления календарёмflatpickr("#dateInput");
flatpickr(document.querySelector("#dateInput"));
flatpickr(".date-field", {
dateFormat: "Y-m-d"
});
Сигнатура допускает несколько режимов работы:
Конфигурация Flatpickr не имеет жёстко фиксированной структуры на уровне JS-типов, но логически представляет собой набор строго ожидаемых ключей.
config: {
dateFormat?: string,
enableTime?: boolean,
minDate?: Date | string,
maxDate?: Date | string,
defaultDate?: Date | string | Array,
mode?: "single" | "multiple" | "range",
locale?: Object,
onChange?: Function,
onOpen?: Function,
onClose?: Function,
parseDate?: Function,
formatDate?: Function
}
Каждое поле конфигурации может менять сигнатуры вызываемых внутри библиотеки функций, особенно callback-ов и форматтеров.
Flatpickr использует событийную модель через набор callback-функций. Все они имеют предсказуемую сигнатуру с одинаковой базовой структурой аргументов.
onChange: function(selectedDates, dateStr, instance)
selectedDates: Date[] — массив выбранных датdateStr: string — строковое представление даты согласно
dateFormatinstance: Instance — текущий экземпляр FlatpickrПоведение зависит от режима:
single → массив из одного элементаmultiple → массив всех выбранных датrange → массив из двух значений (start/end)onOpen: function(selectedDates, dateStr, instance)
Вызывается при открытии календаря. Несмотря на одинаковую сигнатуру с
onChange, selectedDates в этом контексте
отражает текущее состояние, а не новое значение.
onClose: function(selectedDates, dateStr, instance)
Срабатывает при закрытии календаря. Часто используется для валидации или синхронизации с внешними состояниями.
onReady: function(selectedDates, dateStr, instance)
Вызывается один раз после полной инициализации. На этом этапе DOM календаря уже построен.
onMonthChange: function(selectedDates, dateStr, instance)
Сигнатура совпадает с базовой, но контекст события связан с навигацией по месяцам.
onYearChange: function(selectedDates, dateStr, instance)
Используется при изменении года через UI или API.
После инициализации возвращается объект Instance,
содержащий набор методов управления.
setDate: function(
date: Date | string | number | Array,
triggerChange?: boolean,
format?: string
)
Описание параметров:
date — дата или массив датtriggerChange — флаг, вызывающий
onChangeformat — формат входной строкиИспользуется для программного изменения значения.
clear: function(triggerChange?: boolean)
Очищает выбранные даты.
triggerChange = true → вызывает onChange с
пустым значениемopen: function()
Без параметров. Принудительно открывает календарь.
close: function()
Без параметров. Закрывает интерфейс календаря.
destroy: function()
Полностью удаляет экземпляр, включая обработчики событий и DOM-модификации.
jumpToDate: function(date: Date | string, triggerChange?: boolean)
date — целевая дата для навигацииtriggerChange — влияет на вызов событийFlatpickr предоставляет две ключевые функции для трансформации
данных: parseDate и formatDate.
formatDate: function(date: Date, format: string, locale?: Object): string
Аргументы:
date: Date — объект даты JavaScriptformat: string — строка формата (например
"Y-m-d")locale?: Object — локализация (названия месяцев, дней и
т.д.)Возвращаемое значение:
parseDate: function(dateStr: string, format: string, timeless?: boolean, locale?: Object): Date
Аргументы:
dateStr — входная строкаformat — формат, по которому выполняется разборtimeless — если true, обнуляет временную
частьlocale — локализацияВозвращаемое значение:
DateХотя они не всегда документированы как публичные, их сигнатуры важны для расширений.
l10n: {
weekdays: {
shorthand: string[],
longhand: string[]
},
months: {
shorthand: string[],
longhand: string[]
}
}
Используется всеми функциями форматирования и отображения.
Внутренняя сигнатура:
formatDateInternal(date, format, locale, isUTC)
isUTC влияет на вычисление времени и смещение
таймзоныFlatpickr поддерживает расширения через плагины, которые имеют строго определённую сигнатуру.
function plugin(instance) {
return function(fp) {
return {
onParseConfig: function(),
onReady: function(),
onDestroy: function()
}
}
}
instanceFlatpickr также генерирует DOM-события, которые можно перехватывать
через стандартный addEventListener.
event.detail: {
fp: Instance,
...additionalData
}
Пример сигнатуры обработчика:
element.addEventListener("change", function(event: CustomEvent) {
const instance = event.detail.fp;
});
Режим range влияет на типизацию аргументов во всех
ключевых сигнатурах.
onChange: function(
selectedDates: [Date?, Date?],
dateStr: string,
instance: Instance
)
undefined)Объект локали имеет предсказуемую структуру:
locale: {
firstDayOfWeek: number,
weekdays: {
shorthand: string[],
longhand: string[]
},
months: {
shorthand: string[],
longhand: string[]
}
}
Формат строк dateFormat не является функцией, но
определяет контракт входа/выхода всех форматирующих сигнатур.
Пример допустимых форматов:
"Y-m-d""d.m.Y""H:i""Y-m-d H:i"Каждый символ формата соответствует внутреннему токену парсинга,
который интерпретируется функциями parseDate и
formatDate.