import { Pipe, PipeTransform } from '@angular/core'; import { InputChangeValue } from '../../ca-input/utils'; @Pipe({ name: 'filterSearch', standalone: true }) export class FilterSearchPipe implements PipeTransform { transform(items: T[], searchString: InputChangeValue, key: keyof T, sortKey?: keyof T, directionMultiplier: number = 1): T[] { if (!items) return []; let filteredItems = searchString ? items.filter(item => String(item[key]).toLowerCase().includes(searchString.toString().toLowerCase()) ) : [...items]; if (sortKey) { filteredItems.sort((a, b) => { if (a[sortKey] < b[sortKey]) return -1 * directionMultiplier; if (a[sortKey] > b[sortKey]) return 1 * directionMultiplier; return 0; }); } return filteredItems; } }