Задача

Разработать расширение для библиотеки 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 с инструкцией по подключению и настройке