javascript42
Главная
Все учебники
Блог
Учебник Pikaday
Введение
Что такое Pikaday
История создания и развитие библиотеки
Преимущества и недостатки
Сравнение с другими date picker библиотеками
Требования к окружению
Установка и первоначальная настройка
Установка через npm
Установка через yarn
Подключение через CDN
Загрузка и локальное подключение файлов
Структура файлов библиотеки
Зависимости и совместимость с moment.js
Проверка корректности установки
Базовая инициализация
Минимальный рабочий пример
Создание экземпляра Pikaday
Привязка к input элементу
Автономное использование без input
Параметры конструктора
Деструкция экземпляра
Управление жизненным циклом
Конфигурация и опции
Параметр field
Параметр bound
Параметр position
Параметр reposition
Параметр container
Параметр format
Параметр formatStrict
Параметр defaultDate
Параметр setDefaultDate
Параметр firstDay
Параметр minDate и maxDate
Параметр disableWeekends
Параметр disableDayFn
Параметр yearRange
Параметр showWeekNumber
Параметр pickWholeWeek
Параметр isRTL
Параметр i18n
Параметр yearSuffix
Параметр showMonthAfterYear
Параметр showDaysInNextAndPreviousMonths
Параметр enableSelectionDaysInNextAndPreviousMonths
Параметр numberOfMonths
Параметр mainCalendar
Параметр theme
Параметр blurFieldOnSelect
Параметр onSelect
Параметр onOpen
Параметр onClose
Параметр onDraw
Комбинирование опций
Форматирование дат
Токены форматирования
Использование встроенного форматтера
Интеграция с moment.js
Создание кастомных форматов
Парсинг пользовательского ввода
Валидация формата
Локализация формата даты
Методы API
Метод toString
Метод getDate
Метод setDate
Метод getMoment
Метод setMoment
Метод gotoDate
Метод gotoToday
Метод gotoMonth
Метод nextMonth
Метод prevMonth
Метод gotoYear
Метод setMinDate
Метод setMaxDate
Метод setStartRange
Метод setEndRange
Метод show
Метод hide
Метод isVisible
Метод destroy
Цепочки вызовов методов
События и колбэки
Структура событий
Обработчик onSelect
Обработчик onOpen
Обработчик onClose
Обработчик onDraw
Контекст выполнения колбэков
Передача данных через события
Отмена действий по умолчанию
Асинхронные обработчики
Интернационализация
Структура объекта i18n
Перевод названий месяцев
Перевод названий дней недели
Перевод сокращенных названий
Настройка формата previousMonth и nextMonth
Готовые языковые пакеты
Создание собственной локализации
Динамическая смена языка
Ограничение выбора дат
Установка минимальной даты
Установка максимальной даты
Блокировка выходных дней
Блокировка произвольных дат через функцию
Блокировка диапазонов дат
Блокировка дат по дням недели
Блокировка дат по праздникам
Динамическое изменение ограничений
Работа с диапазонами дат
Концепция startRange и endRange
Визуальное выделение диапазона
Выбор начальной и конечной даты
Синхронизация двух календарей
Валидация диапазона
Ограничения для диапазонов
Очистка диапазона
Позиционирование и отображение
Автоматическое позиционирование
Фиксированное позиционирование
Позиционирование относительно контейнера
Позиционирование на мобильных устройствах
Управление z-index
Автоматическое перепозиционирование
Отображение нескольких месяцев
Расположение календарей side-by-side
Стилизация и темизация
Структура CSS классов
Переопределение базовых стилей
Создание кастомной темы
Стилизация выбранной даты
Стилизация заблокированных дат
Стилизация диапазона
Стилизация сегодняшнего дня
Адаптивная стилизация
Темная тема
Использование CSS переменных
Продвинутые техники
Программное управление календарем
Динамическая загрузка данных
Интеграция с формами
Валидация на стороне клиента
Автозаполнение дат
Копирование дат между полями
Сохранение состояния в localStorage
Работа с временными зонами
Календарь с возможностью выбора времени
Рекуррентные события
Интеграция с фреймворками
Использование с vanilla JavaScript
Интеграция с React
Интеграция с Vue
Интеграция с Angular
Интеграция с jQuery
Wrapper компоненты
Управление жизненным циклом в SPA
SSR и Pikaday
Производительность и оптимизация
Отложенная инициализация
Переиспользование экземпляров
Минимизация перерисовок
Оптимизация при большом количестве календарей
Ленивая загрузка
Профилирование производительности
Уменьшение размера бандла
Доступность
ARIA атрибуты
Навигация с клавиатуры
Поддержка скринридеров
Фокус-менеджмент
Семантическая разметка
Контрастность и читаемость
Тестирование доступности
Отладка и решение проблем
Типичные ошибки инициализации
Проблемы с позиционированием
Конфликты стилей
Проблемы с форматированием
Отладка событий
Несовместимость с другими библиотеками
Использование консоли браузера
Инструменты разработчика
Тестирование
Unit тестирование
Интеграционное тестирование
E2E тестирование
Мокирование дат
Тестирование взаимодействий
Визуальное регрессионное тестирование
Миграция и обновление
Миграция с предыдущих версий
Breaking changes
Стратегии постепенной миграции
Миграция с других date picker библиотек
Обратная совместимость
Deprecation notices
Расширение функциональности
Архитектура плагинов
Создание собственных методов
Расширение прототипа
Кастомные валидаторы
Кастомные форматтеры
Хуки и middleware
Публикация расширений
Безопасность
XSS уязвимости
Валидация пользовательского ввода
Санитизация данных
CSP политики
Безопасное использование innerHTML
Аудит зависимостей