diff --git a/src/angular/pipes/search.pipe.ts b/src/angular/pipes/search.pipe.ts new file mode 100644 index 00000000000..c71ab3a8b1a --- /dev/null +++ b/src/angular/pipes/search.pipe.ts @@ -0,0 +1,30 @@ +import { + Pipe, + PipeTransform, +} from '@angular/core'; + +@Pipe({ + name: 'search', +}) +export class SearchPipe implements PipeTransform { + transform(items: any[], searchText: string, prop1?: string, prop2?: string): any[] { + if (items == null || items.length === 0) { + return []; + } + + if (searchText == null || searchText.length < 2) { + return items; + } + + searchText = searchText.toLowerCase(); + return items.filter((i) => { + if (prop1 != null && i[prop1] != null && i[prop1].toString().toLowerCase().indexOf(searchText) > -1) { + return true; + } + if (prop2 != null && i[prop2] != null && i[prop2].toString().toLowerCase().indexOf(searchText) > -1) { + return true; + } + return false; + }); + } +}