Ну вот есть у тебя 2 BH - данные и фильры. Из них просто делаешь 3й с результатами через (например) combineLatest([data$, filters$]).pipe(filter(data, filters)=>{magic})
Это условно. Можно сразу взять основной поток и this.dataSource.asObservable().pipe(withLatestFrom(filters$.asObservable()),filter([data,filters])=>{return data_filtering})