UNPKG

@kuro-samurai/ngx-samurai-filter

Version:
94 lines (89 loc) 4.29 kB
import * as i0 from '@angular/core'; import { Pipe } from '@angular/core'; class FilterPipe { transform(objects, property, filterValue, filterCondition = 'equal') { let filteredObjects = []; for (const object of objects) if (Object.prototype.hasOwnProperty.call(object, property)) switch (typeof filterValue) { case 'string': switch (filterCondition) { case 'equal': if (object[property] === filterValue) filteredObjects.push(object); break; case 'notEqual': if (object[property] !== filterValue) filteredObjects.push(object); break; case 'include': if (object[property].includes(filterValue)) filteredObjects.push(object); break; case 'notInclude': if (!object[property].includes(filterValue)) filteredObjects.push(object); break; } break; case 'number': switch (filterCondition) { case 'equal': if (object[property] === filterValue) filteredObjects.push(object); break; case 'notEqual': if (object[property] !== filterValue) filteredObjects.push(object); break; case 'equal/greater': if (object[property] >= filterValue) filteredObjects.push(object); break; case 'greater': if (object[property] > filterValue) filteredObjects.push(object); break; case 'equal/lower': if (object[property] <= filterValue) filteredObjects.push(object); break; case 'lower': if (object[property] < filterValue) filteredObjects.push(object); break; } break; case 'boolean': switch (filterCondition) { case 'equal': if (object[property] === filterValue) filteredObjects.push(object); break; case 'notEqual': if (object[property] !== filterValue) filteredObjects.push(object); break; } break; } return filteredObjects; } static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.0.1", ngImport: i0, type: FilterPipe, deps: [], target: i0.ɵɵFactoryTarget.Pipe }); } static { this.ɵpipe = i0.ɵɵngDeclarePipe({ minVersion: "14.0.0", version: "16.0.1", ngImport: i0, type: FilterPipe, isStandalone: true, name: "SamuraiFilter" }); } } i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.0.1", ngImport: i0, type: FilterPipe, decorators: [{ type: Pipe, args: [{ name: 'SamuraiFilter', standalone: true, }] }] }); /* * Public API Surface of filter */ /** * Generated bundle index. Do not edit. */ export { FilterPipe }; //# sourceMappingURL=kuro-samurai-ngx-samurai-filter.mjs.map