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 ?? [])], []); return filters.reduce((acc: IFilter[], f) => [...acc, ...(f?.children ?? [])], []);
} }
export function toFlatFilters(groups: IFilterGroup[]): IFilter[] { export function toFlatFilters(groups: IFilterGroup[], condition = (filters: IFilter[]) => filters): IFilter[] {
return groups.reduce((acc: IFilter[], f) => [...acc, ...f.filters, ...flatChildren(f.filters)], []); 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()); return Object.values(this._filterGroups$.getValue());
} }
get enabledFlatFilters() {
return toFlatFilters(this.filterGroups, filters => filters.filter(f => f.checked));
}
private get _showResetFilters$(): Observable<boolean> { private get _showResetFilters$(): Observable<boolean> {
return this.filterGroups$.pipe( return this.filterGroups$.pipe(
map(toFlatFilters), map(value => toFlatFilters(value)),
map(f => !!f.find(el => el.checked)), map(f => !!f.find(el => el.checked)),
shareDistinctLast(), shareDistinctLast(),
); );