get a list of enabled filters
This commit is contained in:
parent
e2f8536551
commit
174b239f26
@ -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))], []);
|
||||||
}
|
}
|
||||||
|
|||||||
@ -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(),
|
||||||
);
|
);
|
||||||
|
|||||||
Loading…
x
Reference in New Issue
Block a user