|
1 | 1 | import { DataSource } from '@angular/cdk/collections';
|
2 | 2 | import { forkJoinSafeEmpty, isEqualIgnoreFunctions, RequireBy, sortUnknown } from '@hypertrace/common';
|
3 | 3 | import { combineLatest, NEVER, Observable, of, Subject, throwError } from 'rxjs';
|
4 |
| -import { catchError, map, mergeMap, startWith, switchMap, tap } from 'rxjs/operators'; |
| 4 | +import { catchError, debounceTime, map, mergeMap, startWith, switchMap, tap } from 'rxjs/operators'; |
5 | 5 | import { PageEvent } from '../../paginator/page.event';
|
6 | 6 | import { PaginationProvider } from '../../paginator/paginator-api';
|
7 | 7 | import { RowStateChange, StatefulTableRow, StatefulTreeTableRow, TableFilter, TableRow } from '../table-api';
|
@@ -54,6 +54,10 @@ export class TableCdkDataSource implements DataSource<TableRow> {
|
54 | 54 | this.buildChangeObservable()
|
55 | 55 | .pipe(
|
56 | 56 | tap(() => this.loadingStateSubject.next({ loading$: NEVER })),
|
| 57 | + /** |
| 58 | + * Below debouce is needed to handle multiple emission from buildChangeObservable. |
| 59 | + */ |
| 60 | + debounceTime(100), |
57 | 61 | mergeMap(([columnConfigs, pageEvent, filters, changedColumn, changedRow]) =>
|
58 | 62 | this.buildDataObservable(columnConfigs, pageEvent, filters, changedColumn, changedRow)
|
59 | 63 | )
|
|
0 commit comments