/tree-view

Test-task

Primary LanguageJavaScript

Тестовое задание - TreeView

В рамках тестового задания предлагается реализовать на языке JavaScript с использованием чистых Web-components без фреймворков компонент отображения и редактирования древовидных структур.

Данные представлены в следующем формате:

ключевым элементом формата данных является структура Item { label: “label”, icon:”icon_id”, type: “object”, children:[] // array of items }

Компонент должен принимать на вход массив элементов типа Item.

Интерфейс должен быть сверстан в соответствии с макетом. Ссылка на файл макета: https://disk.yandex.ru/d/E8BJ87FpLZa8og

Alt text

Отображаемое дерево состоит из узлов трех типов: Object, File, Folder. Все операции редактирования должны приводить к результату, удовлетворяющему следующим требованиям: сущность типа File может находиться только на самом верхнем уровне, сущности типа Object и Folder могут находиться внутри сущностей любых типов но не на самом верхнем уровне. Глубина вложенности элементов друг в друга неограничена.

Необходимо реализовать следующий функционал:

  1. Просмотр данных - отрисовка дерева произвольного уровня вложенности, возможность скрыть и развернуть отдельные ветки

  2. Добавление новых записей через клик по кнопке Alt text, и выбор сущности в выпадающем меню Alt text.

  3. Изменение - редактирование имени через двойной клик по элементу дерева, перемещение записи с использованием drag & drop

  4. Автоматический фокус на элементе, имя которого удовлетворяет запросу в поле поиска Alt text, при нажатии клавиши enter. Повторное нажатие на Enter должно переводить фокус к следующему найденному элементу.

  5. Удаление выбранной записи с помощью кнопки Alt text.

  6. Сохранение данных в localstorage при помощи кнопки Alt text.

  7. Автоматическая загрузка данных из localstorage при открытии страницы с компонентом.

  8. Кроссбраузерность, адаптивность