25 lines
752 B
TypeScript
25 lines
752 B
TypeScript
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) => {
|
|
return acc || JSON.stringify(obj[curr]).toLowerCase().includes(searchText);
|
|
}, false);
|
|
});
|
|
}
|
|
} |