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