Press n or j to go to the next uncovered block, b, p or k for the previous block.
| 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 | 4x 4x 4x 4x 4x 4x 4x 4x 4x 4x | import { ChangeDetectionStrategy, Component, Input, OnInit } from '@angular/core';
import { ActivatedRoute, Router } from '@angular/router';
import { Observable } from 'rxjs';
import { ShoppingFacade } from 'ish-core/facades/shopping.facade';
import { FilterNavigation } from 'ish-core/models/filter-navigation/filter-navigation.model';
import { URLFormParams, formParamsToString } from 'ish-core/utils/url-form-params';
@Component({
selector: 'ish-filter-navigation',
templateUrl: './filter-navigation.component.html',
changeDetection: ChangeDetectionStrategy.OnPush,
})
export class FilterNavigationComponent implements OnInit {
@Input() fragmentOnRouting: string;
@Input() orientation: 'sidebar' | 'horizontal' = 'sidebar';
@Input() showCategoryFilter = true;
filter$: Observable<FilterNavigation>;
constructor(private shoppingFacade: ShoppingFacade, private router: Router, private activatedRoute: ActivatedRoute) {}
ngOnInit() {
this.filter$ = this.shoppingFacade.currentFilter$(this.showCategoryFilter);
}
applyFilter(event: { searchParameter: URLFormParams }) {
const params = formParamsToString(event.searchParameter);
this.router.navigate([], {
queryParamsHandling: 'merge',
relativeTo: this.activatedRoute,
queryParams: { filters: params, page: 1 },
fragment: this.fragmentOnRouting,
});
}
get isSideBar() {
return this.orientation === 'sidebar';
}
clearFilters() {
this.router.navigate([], {
queryParamsHandling: 'merge',
relativeTo: this.activatedRoute,
queryParams: { filters: undefined, page: 1 },
fragment: this.fragmentOnRouting,
});
}
}
|