Вступление #
Календарь реализован на базе Air datepicker.
Установка #
Пример разметки и инициализации календаря.
<input class="js-datepicker" type="text" readonly placeholder="Выберите дату">
<!-- или -->
<div class="js-datepicker"></div>
BasicDatepicker.init('.my-datepicker');
BasicDatepicker.init(document.querySelector('.my-datepicker'));
BasicDatepicker.init(document.querySelectorAll('.my-datepicker'));
// или
BasicDatepicker.init(); // по умолчанию инициaлизирует элементы с классом .js-datepicker
так же календарь можно инициализировать с опциями.
BasicDatepicker.init(document.querySelector('.my-datepicker'), {
'isMobile': true,
dateFormat(date) {
return date.toLocaleString('ja', {
year: 'numeric',
day: '2-digit',
month: 'long'
});
}
});
Конфигурация #
data-datepicker-options #
В значение указываются параметры для гибкой настройки календаря, с ними можно ознакомиться на странице офиц.документации.
<input class="js-datepicker" data-datepicker-options='{"isMobile": true}' type="text" readonly placeholder="Выберите дату">
Методы #
Являются обёртками над методами Air datepicker.
show #
Показывает календарь.
BasicDatepicker.methods(document.querySelector('.my-datepicker'), {
name: "show"
});
hide #
Скрывает календарь.
BasicDatepicker.methods(document.querySelector('.my-datepicker'), {
name: "hide"
});
next #
Переход к следующему месяцу/году/декаде.
BasicDatepicker.methods(document.querySelector('.my-datepicker'), {
name: "next"
});
prev #
Переход к прошлому месяцу/году/декаде.
BasicDatepicker.methods(document.querySelector('.my-datepicker'), {
name: "prev"
});
selectDate #
Выбирает одну или сразу несколько дат, если передать массив.
где в конфигурациях указывается:
Название | Тип | Описание |
---|---|---|
date |
Date /string /number |
Дата в формате Date , строка в ISO формате или же время в миллисекундах. Если строку или число не удастся преобразовать в дату, то это значение будет проигнорировано. |
options.updateTime |
boolean |
Если передать true , то время из переданной даты будет установлено в значение виджета выбора времени. По умолчанию false - при выборе даты устанавливается текущее время. |
options.silent |
boolean |
Если true , то событие onSelect() не будет вызвано. |
BasicDatepicker.methods(document.querySelector('.my-datepicker'), {
name: "selectDate",
config: {
date: new Date(),
options: {
updateTime: true,
silent: true
}
}
});
unselectDate #
Снимает выбор с переданной даты.
BasicDatepicker.methods(document.querySelector('.my-datepicker'), {
name: "unselectDate",
config: {
date: new Date()
}
});
clear #
Очищает все выбранные даты.
BasicDatepicker.methods(document.querySelector('.my-datepicker'), {
name: "clear"
});
destroy #
Уничтожает экземпляр календаря. Удаляет себя из DOM дерева и все события с целевого элемента.
BasicDatepicker.methods(document.querySelector('.my-datepicker'), {
name: "destroy"
});
update #
Обновляет опции календаря. По средствам этого метода можно установить новые значения минимальной или максимальной дат, изменить язык календаря и т.п.
BasicDatepicker.methods(document.querySelector('.my-datepicker'), {
name: "update",
config: {
options: {
"isMobile": true
}
}
});
setCurrentView #
Устанавливает новое значение представления календаря.
Название | Тип | Описание |
---|---|---|
view |
string |
Новое представление(days/months/years). |
BasicDatepicker.methods(document.querySelector('.my-datepicker'), {
name: "setCurrentView",
config: {
view: "months"
}
});
setViewDate #
Устанавливает новую дату отображения календаря. Используется, когда, к примеру, нужно показать какой-то другой месяц без необходимости выбора даты.
Название | Тип | Описание |
---|---|---|
date |
Date /string /number |
Новая дата. Если не удастся преобразовать строку или число в дату, то вызов игнорируется. |
BasicDatepicker.methods(document.querySelector('.my-datepicker'), {
name: "setViewDate",
config: {
date: new Date()
}
});
setFocusDate #
Устанавливает фокус на ячейку с переданной датой.
Название | Тип | Описание |
---|---|---|
date |
Date /string /number |
Новая дата. Если не удастся преобразовать строку или число в дату, то вызов игнорируется. |
viewDateTransition |
boolean |
Если true и новая дата находится за пределами текущего отображения, то будет установлена новая дата отображения. |
BasicDatepicker.methods(document.querySelector('.my-datepicker'), {
name: "setFocusDate",
config: {
date: new Date(),
viewDateTransition: true
}
});
up #
Переход к следующему типу отображению(дни, месяцы, годы). Варианты отображения идут по порядку от days -> months -> years.
Название | Тип | Описание |
---|---|---|
date |
Date /string /number |
Если передана дата, то при смене представления будет изменена дата отображения. |
BasicDatepicker.methods(document.querySelector('.my-datepicker'), {
name: "up",
config: {
date: new Date()
}
});
down #
Переход к предыдущему типу отображения(дни, месяцы, годы).
Название | Тип | Описание |
---|---|---|
date |
Date /string /number |
Если передана дата, то при смене представления будет изменена дата отображения. |
BasicDatepicker.methods(document.querySelector('.my-datepicker'), {
name: "down",
config: {
date: new Date()
}
});
События #
Являются обёртками над событиями Air Datepicker.
BasicDatepicker.on(document.querySelector('.my-datepicker'), {
'name': 'onSelect',
'listener': function ({date, formattedDate, datepicker}) {
console.log(date);
}
});
Cписок событий:
Название | Описание |
---|---|
onSelect |
Срабатывает при выборе или снятия выбора с какой-либо даты. В качестве аргумента получает объект, состоящий из следующих полей |
onChangeViewDate |
Срабатывает при перелистывании календаря вперед или назад. Получает в качестве аргумента объект с актуальными значениям месяца, года и декады. |
onChangeView |
При смене представления, например, с дней на месяцы, будет вызываться эта функция обратной связи. В качестве аргумента будет передано название текущего представления. |
onRenderCell |
Функция, которая будет вызываться каждый раз, когда будет отрисовываться ячейка календаря. Используется, в случае если нужно каким-то образом кастомизировать ячейку, изменить содержимое или сделать недоступным к выбору. |
onShow |
Функция обратного вызова при появлении календаря. Вызывается вначале анимации появления, и когда анимация завершилась. |
onHide |
Функция обратного вызова при скрытии календаря. Вызывается вначале анимации скрытия, и когда анимация завершилась. |