get a list of enabled filters

This commit is contained in:
Dan Percic 2022-02-23 13:22:49 +02:00
parent e2f8536551
commit 174b239f26
2 changed files with 7 additions and 3 deletions

View File

@ -96,6 +96,6 @@ export function flatChildren(filters: INestedFilter[]): IFilter[] {
return filters.reduce((acc: IFilter[], f) => [...acc, ...(f?.children ?? [])], []);
}
export function toFlatFilters(groups: IFilterGroup[]): IFilter[] {
return groups.reduce((acc: IFilter[], f) => [...acc, ...f.filters, ...flatChildren(f.filters)], []);
export function toFlatFilters(groups: IFilterGroup[], condition = (filters: IFilter[]) => filters): IFilter[] {
return groups.reduce((acc: IFilter[], f) => [...acc, ...condition(f.filters), ...condition(flatChildren(f.filters))], []);
}

View File

@ -25,9 +25,13 @@ export class FilterService {
return Object.values(this._filterGroups$.getValue());
}
get enabledFlatFilters() {
return toFlatFilters(this.filterGroups, filters => filters.filter(f => f.checked));
}
private get _showResetFilters$(): Observable<boolean> {
return this.filterGroups$.pipe(
map(toFlatFilters),
map(value => toFlatFilters(value)),
map(f => !!f.find(el => el.checked)),
shareDistinctLast(),
);