projects/rebirth-ng/src/lib/tree-view/tree-view.component.ts
| exportAs | treeView | 
            
| selector | re-tree-view | 
            
| styleUrls | tree-view.component.scss | 
            
| templateUrl | ./tree-view.component.html | 
            
constructor(rebirthNGConfig: RebirthNGConfig, treeViewService: TreeViewService)
                     | 
                |||||||||
| 
                             
                                    Parameters :
                                     
                    
  | 
                
                        
                        allowDraggable
                     | 
                    
                         
                            Default value:   | 
                
                        
                        allowMutipleSelected
                     | 
                    
                         
                            Default value:   | 
                
                        
                        checkable
                     | 
                    
                         
                            Default value:   | 
                
                        
                        collapseIcon
                     | 
                    |
                        
                        cssClass
                     | 
                    
                             
                            Type:      | 
                
                        
                        expendIcon
                     | 
                    |
                        
                        iconField
                     | 
                    
                             
                            Type:      | 
                
                        
                        lazyLoad
                     | 
                    
                         
                            Default value:   | 
                
                        
                        leafIcon
                     | 
                    |
                        
                        loadChildren
                     | 
                    
                             
                            Type:      | 
                
                        
                        loadingIcon
                     | 
                    
                             
                            Type:      | 
                
                        
                        nodeCssClass
                     | 
                    
                             
                            Type:      | 
                
                        
                        nodeItemTemplate
                     | 
                    
                             
                            Type:      | 
                
                        
                        nodeItemToolbarTemplate
                     | 
                    
                             
                            Type:      | 
                
                        
                        textField
                     | 
                    |
                        
                        treeData
                     | 
                    
                             
                            Type:      | 
                
                        
                        valueField
                     | 
                    |
                        
                        nodeItemCheckedChanged
                     | 
                    
                        $event type:    EventEmitter
                     | 
                
                        
                        nodeItemClicked
                     | 
                    
                        $event type:    EventEmitter
                     | 
                
                        
                        nodeItemDbClicked
                     | 
                    
                        $event type:    EventEmitter
                     | 
                
                        
                        nodeItemDroped
                     | 
                    
                        $event type:    EventEmitter
                     | 
                
                        
                        nodeItemExpended
                     | 
                    
                        $event type:    EventEmitter
                     | 
                
| appendNodes | |||||||||
appendNodes(parentId: , nodes: any[])
                     | 
                |||||||||
| 
                             
                                    Parameters :
                                     
                            
 
                                Returns :      
                                any
                             | 
                
| checkAllNodes | 
checkAllNodes()
                     | 
                
| 
                             
                                Returns :      
                    any
                             | 
                
| collapseAllNodes | 
collapseAllNodes()
                     | 
                
| 
                             
                                Returns :      
                    any
                             | 
                
| expendAllNodes | 
expendAllNodes()
                     | 
                
| 
                             
                                Returns :      
                    any
                             | 
                
| expendNodesByLevel | ||||||
expendNodesByLevel(level: number)
                     | 
                ||||||
| 
                             
                                    Parameters :
                                     
                            
 
                                Returns :      
                                void
                             | 
                
| expendNodesByValue | ||||||
expendNodesByValue(value: any)
                     | 
                ||||||
| 
                             
                                    Parameters :
                                     
                            
 
                                Returns :      
                                void
                             | 
                
| getCheckedNodes | 
getCheckedNodes()
                     | 
                
| 
                             
                                Returns :      
                    any
                             | 
                
| getFirstMatchedItem | ||||||
getFirstMatchedItem(match: (node: any) => void)
                     | 
                ||||||
| 
                             
                                    Parameters :
                                     
                            
 
                                Returns :      
                                any
                             | 
                
| getMatchedItems | ||||||
getMatchedItems(match: (node: any) => void)
                     | 
                ||||||
| 
                             
                                    Parameters :
                                     
                            
 
                                Returns :      
                                any
                             | 
                
| getNodePathByValue | ||||||
getNodePathByValue(value: any)
                     | 
                ||||||
| 
                             
                                    Parameters :
                                     
                            
 
                                Returns :      
                                any
                             | 
                
| getSelectNodes | 
getSelectNodes()
                     | 
                
| 
                             
                                Returns :      
                    any
                             | 
                
| getTreeNodeByValue | ||||
getTreeNodeByValue(value: )
                     | 
                ||||
| 
                             
                                    Parameters :
                                     
                            
 
                                Returns :      
                                any
                             | 
                
| onNodeItemCheckedChanged | ||||
onNodeItemCheckedChanged(node: )
                     | 
                ||||
| 
                             
                                    Parameters :
                                     
                            
 
                                Returns :      
                                void
                             | 
                
| onNodeItemClicked | ||||
onNodeItemClicked(node: )
                     | 
                ||||
| 
                             
                                    Parameters :
                                     
                            
 
                                Returns :      
                                void
                             | 
                
| onNodeItemDbClicked | ||||
onNodeItemDbClicked(node: )
                     | 
                ||||
| 
                             
                                    Parameters :
                                     
                            
 
                                Returns :      
                                void
                             | 
                
| onNodeItemDroped | ||||
onNodeItemDroped($event: )
                     | 
                ||||
| 
                             
                                    Parameters :
                                     
                            
 
                                Returns :      
                                void
                             | 
                
| onNodeItemExpended | ||||
onNodeItemExpended(node: )
                     | 
                ||||
| 
                             
                                    Parameters :
                                     
                            
 
                                Returns :      
                                void
                             | 
                
| removeNode | ||||||
removeNode(value: any)
                     | 
                ||||||
| 
                             
                                    Parameters :
                                     
                            
 
                                Returns :      
                                any
                             | 
                
| unCheckAllNodes | 
unCheckAllNodes()
                     | 
                
| 
                             
                                Returns :      
                    any
                             | 
                
| Private selectNode | 
                        selectNode:     
                     | 
                
                            Type :     any
                         | 
                    
import { Component, Input, Output, EventEmitter, TemplateRef } from '@angular/core';
import { RebirthNGConfig } from '../rebirth-ng.config';
import { Observable } from 'rxjs';
import { TreeViewService } from './tree-view.service';
@Component({
  selector: 're-tree-view',
  templateUrl: './tree-view.component.html',
  styleUrls: ['./tree-view.component.scss'],
  exportAs: 'treeView'
})
export class TreeViewComponent {
  @Input() treeData: any[];
  @Input() valueField;
  @Input() textField;
  @Input() cssClass: string;
  @Input() nodeCssClass: string;
  @Input() iconField: string;
  @Input() checkable = false;
  @Input() lazyLoad = false;
  @Input() loadingIcon: string;
  @Input() loadChildren: (parent: any) => Observable<any[]>;
  @Input() allowDraggable = false;
  @Input() allowMutipleSelected = false;
  @Input() nodeItemTemplate: TemplateRef<any>;
  @Input() nodeItemToolbarTemplate: TemplateRef<any>;
  @Input() leafIcon;
  @Input() expendIcon;
  @Input() collapseIcon;
  @Output() nodeItemClicked = new EventEmitter<any>();
  @Output() nodeItemDroped = new EventEmitter<any>();
  @Output() nodeItemDbClicked = new EventEmitter<any>();
  @Output() nodeItemCheckedChanged = new EventEmitter<any>();
  @Output() nodeItemExpended = new EventEmitter<any>();
  private selectNode: any;
  constructor(rebirthNGConfig: RebirthNGConfig, private treeViewService: TreeViewService) {
    this.valueField = rebirthNGConfig.treeView.valueField;
    this.textField = rebirthNGConfig.treeView.textField;
    this.leafIcon = rebirthNGConfig.treeView.leafIcon;
    this.expendIcon = rebirthNGConfig.treeView.expendIcon;
    this.collapseIcon = rebirthNGConfig.treeView.collapseIcon;
    this.loadingIcon = rebirthNGConfig.treeView.loadingIcon;
  }
  onNodeItemExpended(node) {
    this.nodeItemExpended.emit(node);
  }
  onNodeItemClicked(node) {
    if (!this.allowMutipleSelected) {
      if (this.selectNode && this.selectNode !== node) {
        this.selectNode.$select = false;
      }
      this.selectNode = node;
    }
    this.nodeItemClicked.emit(node);
  }
  onNodeItemDbClicked(node) {
    this.nodeItemDbClicked.emit(node);
  }
  onNodeItemCheckedChanged(node) {
    this.nodeItemCheckedChanged.emit(node);
  }
  onNodeItemDroped($event) {
    const target = $event.target;
    if (!target) {
      return;
    }
    const source = $event.data.data.node;
    const sourceParent = $event.data.data.parent;
    if (sourceParent && sourceParent[this.valueField]) {
      const matchNode = this.getTreeNodeByValue(sourceParent[this.valueField]);
      if (matchNode) {
        matchNode.node.children = matchNode.node.children
          .filter((nodeItem) => nodeItem[this.valueField] !== source[this.valueField]);
      }
    } else {
      if (this.treeData.length < 2) {
        return;
      }
      this.treeData = this.treeData.filter((nodeItem) => nodeItem[this.valueField] !== source[this.valueField]);
    }
    target.children = target.children || [];
    source.$select = false;
    target.children.push(source);
    this.nodeItemDroped.emit($event);
  }
  getSelectNodes() {
    return this.treeViewService.getSelectNodes(this.treeData);
  }
  getCheckedNodes() {
    return this.treeViewService.getCheckedNodes(this.treeData);
  }
  getMatchedItems(match: (node: any) => boolean) {
    return this.treeViewService.getMatchedItems(this.treeData, match);
  }
  getFirstMatchedItem(match: (node: any) => boolean) {
    return this.treeViewService.getFirstMatchedItem(this.treeData, match);
  }
  getTreeNodeByValue(value) {
    return this.treeViewService.getTreeNodeByValue(this.treeData, this.valueField, value);
  }
  expendAllNodes() {
    return this.treeViewService.expendAllNodes(this.treeData);
  }
  collapseAllNodes() {
    return this.treeViewService.collapseAllNodes(this.treeData);
  }
  expendNodesByLevel(level: number) {
    this.treeViewService.expendNodesByLevel(this.treeData, level);
  }
  expendNodesByValue(value: any) {
    this.treeViewService.expendNodesByValue(this.treeData, this.valueField, value);
  }
  getNodePathByValue(value: any) {
    return this.treeViewService.getNodePathByValue(this.treeData, this.valueField, value);
  }
  checkAllNodes() {
    return this.treeViewService.checkAllNodes(this.treeData);
  }
  unCheckAllNodes() {
    return this.treeViewService.unCheckAllNodes(this.treeData);
  }
  appendNodes(parentId, nodes: any[]) {
    return this.treeViewService.appendNodes(this.treeData, this.valueField, parentId, nodes);
  }
  removeNode(value: any) {
    return this.treeViewService.removeNode(this.treeData, this.valueField, value);
  }
}
    <re-tree-panel class="{{cssClass}}" [treeData]="treeData"
               [textField]="textField"
               [valueField]="valueField"
               [nodeCssClass]="nodeCssClass"
               [iconField]="iconField"
               [checkable]="checkable"
               [lazyLoad]="lazyLoad"
               [loadingIcon]="loadingIcon"
               [loadChildren]="loadChildren"
               [allowDraggable]="allowDraggable"
               [nodeItemTemplate]="nodeItemTemplate"
               [nodeItemToolbarTemplate]="nodeItemToolbarTemplate"
               [leafIcon]="leafIcon"
               [expendIcon]="expendIcon"
               [collapseIcon]="collapseIcon"
               [allowMutipleSelected]="allowMutipleSelected"
               (nodeItemCheckedChanged)="onNodeItemCheckedChanged($event)">
</re-tree-panel>