import { Observable } from 'rxjs'; import { DataSource } from '@angular/cdk'; // preparing data source for the hierarchical grid export class HierarchicalDataSource extends DataSource { renderedData: any[] = []; constructor(private dataChange: any) { super(); } connect(): Observable { const displayDataChanges = [ this.dataChange ]; return Observable.merge(...displayDataChanges).map(() => { this.renderedData = this.dataChange.value; return this.renderedData; }); } disconnect() { } }