У компонента должны быть реализованы следующие методы и функционал:

  • Добавление строки в таблицу после указанной или в конец;
  • Получение JSON объекта данных из таблицы в модальном окне с возможностью копирования из него через кнопку в буфер обмена;
  • Очищение таблицы от данных;
  • Удаление таблицы;
  • Восстановление таблицы из JSON-данных, скопированных в буфер обмена;
  • При двойном клике на ячейку она должна заменяться полем ввода для задания параметра в эту ячейку или переходит в состояние design mode, поле удаляется и значение сохраняется при потери фокуса или нажатию по Enter. При нажатии на Esc поле удаляется и остается значение, которое было до редактирования;
  • Сортировка по столбцам: при нажатии на название столбца строки таблицы сортируются по возрастанию, при повторном клике по убыванию, при третьем - дефолт. Графическим элементом или текстовым сообщением указывается направление сортировки. Количество нажатий - три - то есть первый раз сортировка по возрастанию, второй раз - по убыванию, третий - дефолтная сортировка;
  • Клиентская пагинация: данные необходимо отображать постранично, максимум 10 элементов на страницу. Необходимо предоставить пользовательскую навигацию для перехода по страницам;
  • Фильтрация: компонент предоставляет текстовое поле в шапке или над таблицей, в которое пользователь может ввести текст и строки таблицы, данные которых не содержат подстроку, введённую пользователем, скрываются. Перефильтрация осуществляется по нажатию кнопки Enter в этом поле. Пробелы в начале и конце не учитываются;
  • Ajax заполнение таблицы (если параметры для конструктора не переданы).