From defdc2af4e226ca8bb17df6c4d1cdd85130cfce5 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Adina=20=C8=9Aeudan?= Date: Mon, 25 Oct 2021 16:09:52 +0300 Subject: [PATCH] Add filter groups option --- src/lib/filtering/filter.service.ts | 7 ++++--- src/lib/listing/listing-component.directive.ts | 4 ++++ 2 files changed, 8 insertions(+), 3 deletions(-) diff --git a/src/lib/filtering/filter.service.ts b/src/lib/filtering/filter.service.ts index edf35da..a95aa7a 100644 --- a/src/lib/filtering/filter.service.ts +++ b/src/lib/filtering/filter.service.ts @@ -73,7 +73,7 @@ export class FilterService { this._filterGroups$.next([...this.filterGroups.filter(f => f.slug !== newGroup.slug), newGroup]); } - addFilterGroups(values: IFilterGroup[]): void { + addFilterGroups(values: IFilterGroup[], removeOldFilters = false): void { const newFilters = values.map(value => { const oldFilters = this.getGroup(value.slug)?.filters; if (!oldFilters) { @@ -84,8 +84,9 @@ export class FilterService { }); const filterSlugs = newFilters.map(f => f.slug); - - this._filterGroups$.next([...this.filterGroups.filter(f => !filterSlugs.includes(f.slug)), ...newFilters]); + this._filterGroups$.next( + removeOldFilters ? newFilters : [...this.filterGroups.filter(f => !filterSlugs.includes(f.slug)), ...newFilters], + ); } getGroup(slug: string): IFilterGroup | undefined { diff --git a/src/lib/listing/listing-component.directive.ts b/src/lib/listing/listing-component.directive.ts index a6e3f45..775bc9f 100644 --- a/src/lib/listing/listing-component.directive.ts +++ b/src/lib/listing/listing-component.directive.ts @@ -41,6 +41,10 @@ export abstract class ListingComponent extends AutoUnsubscr return this.entitiesService.all; } + get listingMode(): ListingMode { + return this._listingMode$.value; + } + set listingMode(listingMode: ListingMode) { this._listingMode$.next(listingMode); }