UNPKG

angular2-simple-ui

Version:

Angular 2 Simple Material Design UI Components customisable with Simple 30 KB CSS with LESS support and full features support , just plugin up and run for clarity look at sample examples

43 lines (39 loc) 1.55 kB
import { PipeTransform, Pipe } from '@angular/core'; import { contains } from './sui.util.contains'; @Pipe({ name: 'tableMenuFilter' }) export class TableMenuFilterPipe implements PipeTransform { transform(items: any[], tableMenuFilterModels: TableMenuFilterModel[]): any { if (items && items.length && tableMenuFilterModels && tableMenuFilterModels.length) { let field = items[0].field; let res: any[] = []; tableMenuFilterModels.forEach(tableMenuFilterModel => { if (tableMenuFilterModel.fieldName && tableMenuFilterModel.search) { items.forEach(y => { if (field === tableMenuFilterModel.fieldName) { if (contains(y.value, tableMenuFilterModel.search)) { res.push(y); } } else { if (!this.hasFieldName(y, tableMenuFilterModels)) res.push(y); } }) } }); return res; } return items; } hasFieldName(item: any, tableMenuFilterModels: TableMenuFilterModel[]): boolean { let exist = tableMenuFilterModels.find(y => y.fieldName == item.field); if (exist) return true; return false; } } export class TableMenuFilterModel { public fieldName: string; public search: Object; }