@ -6,6 +6,7 @@ import {
Input ,
OnChanges ,
OnDestroy ,
OnInit ,
Output ,
ViewChild
} from '@angular/core' ;
@ -33,7 +34,7 @@ import { Subject, Subscription, distinctUntilChanged, takeUntil } from 'rxjs';
styleUrls : [ './activities-table.component.scss' ] ,
templateUrl : './activities-table.component.html'
} )
export class ActivitiesTableComponent implements OnChanges , OnDestroy {
export class ActivitiesTableComponent implements OnChanges , OnDestroy , OnInit {
@Input ( ) activities : Activity [ ] ;
@Input ( ) baseCurrency : string ;
@Input ( ) deviceType : string ;
@ -89,6 +90,17 @@ export class ActivitiesTableComponent implements OnChanges, OnDestroy {
} ) ;
}
public ngOnInit() {
if ( this . showCheckbox ) {
this . toggleAllRows ( ) ;
this . selectedRows . changed
. pipe ( takeUntil ( this . unsubscribeSubject ) )
. subscribe ( ( selectedRows ) = > {
this . selectedActivities . emit ( selectedRows . source . selected ) ;
} ) ;
}
}
public areAllRowsSelected() {
const numSelectedRows = this . selectedRows . selected . length ;
const numTotalRows = this . dataSource . data . length ;
@ -136,19 +148,19 @@ export class ActivitiesTableComponent implements OnChanges, OnDestroy {
this . dataSource = new MatTableDataSource ( this . activities ) ;
this . dataSource . filterPredicate = ( data , filter ) = > {
const dataString = this . getFilterableValues ( data )
. map ( ( currentFilter ) = > {
return currentFilter . label ;
} )
. join ( ' ' )
. toLowerCase ( ) ;
let contains = true ;
const filterableLabels = this . getFilterableValues ( data ) . map (
( { label } ) = > {
return label . toLowerCase ( ) ;
}
) ;
let includes = true ;
for ( const singleFilter of filter . split ( this . SEARCH_STRING_SEPARATOR ) ) {
contains =
contains && dataString . includes ( singleFilter . trim ( ) . toLowerCase ( ) ) ;
includes =
includes &&
filterableLabels . includes ( singleFilter . trim ( ) . toLowerCase ( ) ) ;
}
return conta ins;
return include s;
} ;
this . dataSource . paginator = this . paginator ;
this . dataSource . sort = this . sort ;
@ -158,17 +170,6 @@ export class ActivitiesTableComponent implements OnChanges, OnDestroy {
}
}
ngOnInit() {
if ( this . showCheckbox ) {
this . toggleAllRows ( ) ;
this . selectedRows . changed
. pipe ( takeUntil ( this . unsubscribeSubject ) )
. subscribe ( ( selectedRows ) = > {
this . selectedActivities . emit ( selectedRows . source . selected ) ;
} ) ;
}
}
public onChangePage ( page : PageEvent ) {
this . pageIndex = page . pageIndex ;