ng-metamagic-extensions
Version:
[](https://badge.fury.io/js/ng-metamagic-extensions) []() [ • 3.92 kB
text/typescript
import {OnInit, Input, Component, SimpleChange, EventEmitter, Output, SimpleChanges} from "@angular/core";
import {TreeViewService} from "./treeview.service";
export class TreeViewComponent implements OnInit{
httpUrl : string;
httpMethod : string;
dataReader : string;
dataTableBindData : any;
selectedRecord : any = new EventEmitter<any>();
data : any;
lazyNode : any;
constructor (private treeViewService : TreeViewService){
}
ngOnInit(){
}
ngAfterViewInit(){
if(this.httpMethod && this.httpUrl){
this.treeViewService.fetchData(this,this.httpUrl,this.httpMethod);
}
else if(this.dataTableBindData){
this.setData(this.dataTableBindData);
}
}
ngOnChanges(change : SimpleChanges){
if(change['dataTableBindData']){
let data = change['dataTableBindData'].currentValue;
if(data){
this.setData(data)
}
}
}
setData(httpResponse: any){
let treedata = this.getResponseData(httpResponse);
if(treedata){
this.data = treedata;
}
}
getResponseData(httpResponse : any){
let responsedata = httpResponse;
let dr = this.dataReader.split(".");
for(let ir = 0 ; ir<dr.length; ir++){
responsedata = responsedata[dr[ir]];
}
return responsedata;
}
toggle(treeData : any){
if(!treeData.leaf)
treeData.expanded = !treeData.expanded;
if(treeData.lazy && treeData.children && treeData.children.length<=0){
this.lazyNode = treeData;
this.treeViewService.fetchLazyData(this,treeData.lazy.httpUrl,treeData.lazy.httpMethod);
}
}
setLazyData(httpResponse: any){
delete this.lazyNode.leaf;
this.lazyNode['expanded'] = true;
for(let di = 0 ; di < httpResponse.data.length; di++){
this.lazyNode.children.push(httpResponse.data[0]);
}
}
setSelectedRecord(treeData : any){
this.emitData(treeData);
}
emitData(treeData :any){
this.selectedRecord.emit(JSON.parse(JSON.stringify(treeData)));
}
}