gp-crm-ui
Version:
Модуль компонентов UI Имя модуля: `gp-crm-ui`
52 lines (41 loc) • 1.07 kB
text/typescript
import {
Component,
EventEmitter,
Input,
OnInit
} from '@angular/core';
// Интерфейсы
import { ITreeNode } from '../../interfaces';
// Узел дерева
export class CrmTreeNodeComponent implements OnInit {
// Узел дерева
public node: ITreeNode;
// Выбранный узел
public selected: ITreeNode;
// Событие выбора
public selectEventEmitter: EventEmitter<ITreeNode>;
// Флаг, свернут ли узел
public isCollapsed: boolean;
// Инициализация
public ngOnInit(): void {
const recursive = (node: ITreeNode): boolean => {
if (node === this.selected) {
return true;
}
for (const child of (node.childs || [])) {
if (recursive(child)) {
return true;
}
}
return false;
};
this.isCollapsed = this.isCollapsed == null
? !recursive(this.node)
: this.isCollapsed;
}
}