Сделать компонент для Angular 1.5 – дерево категорий

Цена договорная • безналичный расчёт, электронные деньги
17 сентября 2018, 16:00 • 2 отклика • 30 просмотров
Нужно сделать компонент дерево категорий на Angular JS v1.5. Внешний вид как на картинке.
Требования:
По минимуму css и верстки.
Чистый, не перегруженный JS код.

Компонент имеет следующий вид:
<cattree list="..." select-callback="someFunc"/>

Лист категорий:

[
{CatId: 1, ParentId: 0, Order: 1, Name: "Category 1"},
{CatId: 2, ParentId: 1, Order: 1, Name: "SubCategory 1-1"},
{CatId: 2, ParentId: 0, Order: 2, Name: "Category 2"},
{CatId: 3, ParentId: 0, Order: 3, Name: "Category 3"},
{CatId: 4, ParentId: 3, Order: 1, Name: "SubCategory 3-1"},
{CatId: 5, ParentId: 3, Order: 2, Name: "SubCategory 3-2"},
{CatId: 6, ParentId: 5, Order: 1, Name: "SubCategory 5-1"},
{CatId: 7, ParentId: 5, Order: 2, Name: "SubCategory 5-2"}
];

someFunc – функция при нажатии на категорию в которую передается объект элемента категории, например {CatId: 1, ParentId: 0, Order: 1, Name: "Category 1"}. Но вызывается только на конечных категориях, те что без подкатегорий потомков.
Изначально подкатегории скрыты, открываются по нажатию на категорию, если есть подкатегории или вызывают someFunc, если конечные.

Строка поиска фильтрует категории – остаются конечные категории и их родители. Пустые категории скрываются.

Оплата после демонстрации на видео работы модуля.
Для связи пишите в скайп alexey_khalyapin
Файлы