Библиотека для календаря
Реализуйте библиотеку для создания календаря на сайте.
Основные возможности проекта
- Библиотека для создания календаря.
- Отображение дней месяца с возможностью выбора даты.
- Переключение между месяцами и годами.
- Кастомизация через параметры.
- Публикация на GitHub с документацией.
Функциональность библиотеки
Библиотека должна предоставлять следующие возможности:
- Генерация календарной сетки на выбранный месяц и год.
- Выбор даты (одиночный выбор).
- Переключение между месяцами (вперед/назад).
- Переключение между годами.
- Возврат к текущей дате.
Параметры настройки
При инициализации календаря можно передавать параметры:
- container - селектор контейнера для календаря.
- date - начальная дата (по умолчанию текущая).
- firstDay - первый день недели (0 - воскресенье, 1 - понедельник).
- showMonthYear - показывать ли заголовок с месяцем и годом.
- onSelect - callback при выборе даты.
Использование библиотеки
Пример использования библиотеки:
- Подключить CSS-файл со стилями календаря.
- Подключить JS-файл с библиотекой.
- Создать HTML-контейнер для календаря.
- Инициализировать календарь с настройками.
Структура календаря
Календарь должен отображать:
- Заголовок с названием месяца и года.
- Строку с названиями дней недели.
- Сетку дней месяца.
- Кнопки навигации: "◄" и "►" для переключения месяцев.
События
Библиотека должна генерировать события:
- onInit - после инициализации календаря.
- onSelect - при выборе даты (передается выбранная дата).
- onChangeMonth - при смене месяца (передается новый месяц и год).
Публикация на GitHub
Библиотека должна быть выложена на GitHub с:
- README.md с описанием и инструкцией по установке.
- Демо-страницей с примерами использования.
- Исходным кодом библиотеки.
Тестирование
Библиотека должна быть протестирована на:
- Разных браузерах (Chrome, Firefox, Safari, Edge).
- Разных устройствах (десктоп, планшет, мобильные).
- Високосных годах и месяцах с разным количеством дней.
Дополнительные возможности
- Выбор диапазона дат (начало и конец).
- Отключение определенных дат (например, выходные).
- Поддержка разных локалей (русский, английский).