import { Component, OnInit, Input } from
"@angular/core"
;
@Component({
selector:
"app-root"
,
templateUrl:
"./app.component.html"
})
export class AppComponent {
tutorials: Tutorials[];
cols: any[];
_selectedColumns: any[];
ngOnInit() {
this
.tutorials = [
{
title:
"Queue"
,
category:
"Data Structure"
,
rating: 8
},
{
title:
"Circularly LinkedList"
,
category:
"Data Structure"
,
rating: 1
},
{
title:
"Doubly LinkedList"
,
category:
"Data Structure"
,
rating: 3
},
{
title:
"Singly LinkedList"
,
category:
"Data Structure"
,
rating: 5
},
{
title:
"Doubly Ended Queue"
,
category:
"Data Structure"
,
rating: 10
},
{
title:
"Binary Search Tree"
,
category:
"Data Structure"
,
rating: 2
},
{
title:
"Red Black Tree"
,
category:
"Data Structure"
,
rating: 9
},
{
title:
"Breadth First Search"
,
category:
"Graph"
,
rating: 6
},
{
title:
"Floyd's Cycle"
,
category:
"Algorithm"
,
rating: 7
},
{
title:
"Travelling Salesman Problem"
,
category:
"Algorithm"
,
rating: 4
},
{
title:
"Bellman Ford"
,
category:
"Graph"
,
rating: 8
},
{
title:
"KMP Algorithm"
,
category:
"String"
,
rating: 10
}
];
this
.cols = [
{ field:
"title"
, header:
"Title"
},
{ field:
"category"
, header:
"Category"
},
{ field:
"rating"
, header:
"Rating"
}
];
this
._selectedColumns =
this
.cols;
}
@Input() get selectedColumns(): any[] {
return
this
._selectedColumns;
}
set selectedColumns(val: any[]) {
this
._selectedColumns =
this
.cols.filter((col) => val.includes(col));
}
}
export interface Tutorials {
title: string;
category: string;
rating?: number;
}