dnet-applications/frontends/dnet-is-application/src/app/common/filter.pipe.ts

25 lines
752 B
TypeScript
Raw Normal View History

2023-01-26 08:28:12 +01:00
import { Pipe, PipeTransform } from '@angular/core';
@Pipe({ name: 'searchFilter' })
export class FilterPipe implements PipeTransform {
/**
* Pipe filters the list of elements based on the search text provided
*
* @param items list of elements to search in
* @param searchText search string
* @returns list of elements filtered by search text or []
*/
transform(items: any[], searchText: string): any[] {
if (!items) return [];
if (!searchText) return items;
searchText = searchText.trim().toLocaleLowerCase();
return items.filter(obj => {
return Object.keys(obj).reduce((acc, curr) => {
2023-02-01 11:51:23 +01:00
return acc || JSON.stringify(obj[curr]).toLowerCase().includes(searchText);
2023-01-26 08:28:12 +01:00
}, false);
});
}
}