src/lib/expand-row/expand-row.service.ts
Properties |
|
Methods |
|
| Public isExpanded | ||||||
isExpanded(row: Data)
|
||||||
|
Defined in src/lib/expand-row/expand-row.service.ts:18
|
||||||
|
Parameters :
Returns :
boolean
|
| Public isExpanded$ | ||||||
isExpanded$(row: Data)
|
||||||
|
Defined in src/lib/expand-row/expand-row.service.ts:22
|
||||||
|
Parameters :
Returns :
Observable<boolean>
|
| Public toggleRow | ||||||
toggleRow(row: Data)
|
||||||
|
Defined in src/lib/expand-row/expand-row.service.ts:10
|
||||||
|
Parameters :
Returns :
void
|
| Public expandedRow |
Default value : new BehaviorSubject<Data | null>(null)
|
|
Defined in src/lib/expand-row/expand-row.service.ts:8
|
import { Injectable } from '@angular/core';
import type { Observable } from 'rxjs';
import { BehaviorSubject } from 'rxjs';
import { map } from 'rxjs/operators';
@Injectable()
export class ExpandRowService<Data extends Record<string, any>> {
public expandedRow = new BehaviorSubject<Data | null>(null);
public toggleRow(row: Data): void {
if (this.expandedRow.value === row) {
this.expandedRow.next(null);
} else {
this.expandedRow.next(row);
}
}
public isExpanded(row: Data) {
return this.expandedRow.value === row;
}
public isExpanded$(row: Data): Observable<boolean> {
return this.expandedRow.pipe(map((expandedRow) => expandedRow === row));
}
}