Задача
Разработать расширение для библиотеки DataTables (jQuery), которое будет переопределять стандартный UI таблиц и добавлять продвинутые функции. Компонент должен быть полностью переиспользуемым и настраиваться через конфигурационный объект.
Функциональные требования
Изменение ширины колонок
- Ресайз колонок с помощью drag-жеста на заголовке таблицы
- Возможность задать
minWidth (и опционально maxWidth) для каждой колонки - Возможность отключать ресайз для отдельных колонок
- Корректная синхронизация ширины между телом таблицы и шапкой
Сохранение состояния
- Автоматическое сохранение ширины колонок в
localStorage под уникальным tableId - Восстановление значений при перезагрузке страницы
- Возможность сбросить настройки до дефолтных
- Корректная работа при динамическом добавлении или удалении колонок
Адаптивный мобильный интерфейс
- При ширине экрана меньше 768px (настраиваемое значение) таблица переключается на мобильный вид
- В мобильном режиме данные отображаются в виде карточек или вертикального стека, без горизонтального скролла
- Автоматический возврат к десктопному виду при расширении окна
Серверная загрузка
- Полная совместимость с Server-side DataTables (пагинация, сортировка, поиск)
- Ресайз и изменение мобильного режима не должны вызывать повторные запросы на сервер
- Поддержка состояний загрузки (loading), пустого ответа (empty) и ошибки сервера (error)
UI и технологии
- Оформление должно совпадать с Bootstrap-шаблоном
- Все настройки задаются через JavaScript (жесткий код не приемлем, кроме стилей)
- Компонент должен быть самодостаточным и подключаться как плагин к DataTables
Необходимые результаты работы
- Готовый JavaScript-модуль (ES6/ CommonJS)
- SCSS/CSS файлы с сеткой стилей
- Пример интеграции с HTML-страницей и скриптами
- Краткий README с инструкцией по подключению и настройке