UNPKG

gp-crm-ui

Version:

Модуль компонентов UI Имя модуля: `gp-crm-ui`

52 lines (41 loc) 1.07 kB
import { Component, EventEmitter, Input, OnInit } from '@angular/core'; // Интерфейсы import { ITreeNode } from '../../interfaces'; // Узел дерева @Component({ selector: 'crm-tree-node', templateUrl: './crm-tree-node.component.html', styleUrls: ['./crm-tree-node.component.scss'] }) export class CrmTreeNodeComponent implements OnInit { // Узел дерева @Input() public node: ITreeNode; // Выбранный узел @Input() public selected: ITreeNode; // Событие выбора @Input() public selectEventEmitter: EventEmitter<ITreeNode>; // Флаг, свернут ли узел @Input() 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; } }