UNPKG

@kuro-samurai/ngx-samurai-filter

Version:
83 lines 10.6 kB
import { Pipe } from '@angular/core'; import * as i0 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" }); } } export { FilterPipe }; i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.0.1", ngImport: i0, type: FilterPipe, decorators: [{ type: Pipe, args: [{ name: 'SamuraiFilter', standalone: true, }] }] }); //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZmlsdGVyLnBpcGUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9wcm9qZWN0cy9maWx0ZXIvc3JjL2xpYi9maWx0ZXIucGlwZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsSUFBSSxFQUFpQixNQUFNLGVBQWUsQ0FBQzs7QUFFcEQsTUFJYSxVQUFVO0lBQ3RCLFNBQVMsQ0FDUixPQUFjLEVBQ2QsUUFBZ0IsRUFDaEIsV0FBc0MsRUFDdEMsa0JBQTJILE9BQU87UUFFbEksSUFBSSxlQUFlLEdBQVUsRUFBRSxDQUFDO1FBRWhDLEtBQUssTUFBTSxNQUFNLElBQUksT0FBTztZQUMzQixJQUFJLE1BQU0sQ0FBQyxTQUFTLENBQUMsY0FBYyxDQUFDLElBQUksQ0FBQyxNQUFNLEVBQUUsUUFBUSxDQUFDO2dCQUN6RCxRQUFRLE9BQU8sV0FBVyxFQUFFO29CQUMzQixLQUFLLFFBQVE7d0JBQ1osUUFBUSxlQUFlLEVBQUU7NEJBQ3hCLEtBQUssT0FBTztnQ0FDWCxJQUFJLE1BQU0sQ0FBQyxRQUFRLENBQUMsS0FBSyxXQUFXO29DQUFFLGVBQWUsQ0FBQyxJQUFJLENBQUMsTUFBTSxDQUFDLENBQUM7Z0NBQ25FLE1BQU07NEJBRVAsS0FBSyxVQUFVO2dDQUNkLElBQUksTUFBTSxDQUFDLFFBQVEsQ0FBQyxLQUFLLFdBQVc7b0NBQUUsZUFBZSxDQUFDLElBQUksQ0FBQyxNQUFNLENBQUMsQ0FBQztnQ0FDbkUsTUFBTTs0QkFFUCxLQUFLLFNBQVM7Z0NBQ2IsSUFBSyxNQUFNLENBQUMsUUFBUSxDQUFZLENBQUMsUUFBUSxDQUFDLFdBQVcsQ0FBQztvQ0FBRSxlQUFlLENBQUMsSUFBSSxDQUFDLE1BQU0sQ0FBQyxDQUFDO2dDQUNyRixNQUFNOzRCQUVQLEtBQUssWUFBWTtnQ0FDaEIsSUFBSSxDQUFFLE1BQU0sQ0FBQyxRQUFRLENBQVksQ0FBQyxRQUFRLENBQUMsV0FBVyxDQUFDO29DQUFFLGVBQWUsQ0FBQyxJQUFJLENBQUMsTUFBTSxDQUFDLENBQUM7Z0NBQ3RGLE1BQU07eUJBQ1A7d0JBQ0QsTUFBTTtvQkFFUCxLQUFLLFFBQVE7d0JBQ1osUUFBUSxlQUFlLEVBQUU7NEJBQ3hCLEtBQUssT0FBTztnQ0FDWCxJQUFJLE1BQU0sQ0FBQyxRQUFRLENBQUMsS0FBSyxXQUFXO29DQUFFLGVBQWUsQ0FBQyxJQUFJLENBQUMsTUFBTSxDQUFDLENBQUM7Z0NBQ25FLE1BQU07NEJBRVAsS0FBSyxVQUFVO2dDQUNkLElBQUksTUFBTSxDQUFDLFFBQVEsQ0FBQyxLQUFLLFdBQVc7b0NBQUUsZUFBZSxDQUFDLElBQUksQ0FBQyxNQUFNLENBQUMsQ0FBQztnQ0FDbkUsTUFBTTs0QkFFUCxLQUFLLGVBQWU7Z0NBQ25CLElBQUksTUFBTSxDQUFDLFFBQVEsQ0FBQyxJQUFJLFdBQVc7b0NBQUUsZUFBZSxDQUFDLElBQUksQ0FBQyxNQUFNLENBQUMsQ0FBQztnQ0FDbEUsTUFBTTs0QkFFUCxLQUFLLFNBQVM7Z0NBQ2IsSUFBSSxNQUFNLENBQUMsUUFBUSxDQUFDLEdBQUcsV0FBVztvQ0FBRSxlQUFlLENBQUMsSUFBSSxDQUFDLE1BQU0sQ0FBQyxDQUFDO2dDQUNqRSxNQUFNOzRCQUVQLEtBQUssYUFBYTtnQ0FDakIsSUFBSSxNQUFNLENBQUMsUUFBUSxDQUFDLElBQUksV0FBVztvQ0FBRSxlQUFlLENBQUMsSUFBSSxDQUFDLE1BQU0sQ0FBQyxDQUFDO2dDQUNsRSxNQUFNOzRCQUVQLEtBQUssT0FBTztnQ0FDWCxJQUFJLE1BQU0sQ0FBQyxRQUFRLENBQUMsR0FBRyxXQUFXO29DQUFFLGVBQWUsQ0FBQyxJQUFJLENBQUMsTUFBTSxDQUFDLENBQUM7Z0NBQ2pFLE1BQU07eUJBQ1A7d0JBQ0QsTUFBTTtvQkFFUCxLQUFLLFNBQVM7d0JBQ2IsUUFBUSxlQUFlLEVBQUU7NEJBQ3hCLEtBQUssT0FBTztnQ0FDWCxJQUFJLE1BQU0sQ0FBQyxRQUFRLENBQUMsS0FBSyxXQUFXO29DQUFFLGVBQWUsQ0FBQyxJQUFJLENBQUMsTUFBTSxDQUFDLENBQUM7Z0NBQ25FLE1BQU07NEJBRVAsS0FBSyxVQUFVO2dDQUNkLElBQUksTUFBTSxDQUFDLFFBQVEsQ0FBQyxLQUFLLFdBQVc7b0NBQUUsZUFBZSxDQUFDLElBQUksQ0FBQyxNQUFNLENBQUMsQ0FBQztnQ0FDbkUsTUFBTTt5QkFDUDt3QkFDRCxNQUFNO2lCQUNQO1FBRUgsT0FBTyxlQUFlLENBQUM7SUFDeEIsQ0FBQzs4R0ExRVcsVUFBVTs0R0FBVixVQUFVOztTQUFWLFVBQVU7MkZBQVYsVUFBVTtrQkFKdEIsSUFBSTttQkFBQztvQkFDTCxJQUFJLEVBQUUsZUFBZTtvQkFDckIsVUFBVSxFQUFFLElBQUk7aUJBQ2hCIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgUGlwZSwgUGlwZVRyYW5zZm9ybSB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuXG5AUGlwZSh7XG5cdG5hbWU6ICdTYW11cmFpRmlsdGVyJyxcblx0c3RhbmRhbG9uZTogdHJ1ZSxcbn0pXG5leHBvcnQgY2xhc3MgRmlsdGVyUGlwZSBpbXBsZW1lbnRzIFBpcGVUcmFuc2Zvcm0ge1xuXHR0cmFuc2Zvcm0oXG5cdFx0b2JqZWN0czogYW55W10sXG5cdFx0cHJvcGVydHk6IHN0cmluZyxcblx0XHRmaWx0ZXJWYWx1ZTogYm9vbGVhbiB8IG51bWJlciB8IHN0cmluZyxcblx0XHRmaWx0ZXJDb25kaXRpb246ICdlcXVhbCcgfCAnbm90RXF1YWwnIHwgJ2luY2x1ZGUnIHwgJ25vdEluY2x1ZGUnIHwgJ2VxdWFsL2dyZWF0ZXInIHwgJ2VxdWFsL2xvd2VyJyB8ICdncmVhdGVyJyB8ICdsb3dlcicgPSAnZXF1YWwnXG5cdCk6IGFueVtdIHtcblx0XHRsZXQgZmlsdGVyZWRPYmplY3RzOiBhbnlbXSA9IFtdO1xuXG5cdFx0Zm9yIChjb25zdCBvYmplY3Qgb2Ygb2JqZWN0cylcblx0XHRcdGlmIChPYmplY3QucHJvdG90eXBlLmhhc093blByb3BlcnR5LmNhbGwob2JqZWN0LCBwcm9wZXJ0eSkpXG5cdFx0XHRcdHN3aXRjaCAodHlwZW9mIGZpbHRlclZhbHVlKSB7XG5cdFx0XHRcdFx0Y2FzZSAnc3RyaW5nJzpcblx0XHRcdFx0XHRcdHN3aXRjaCAoZmlsdGVyQ29uZGl0aW9uKSB7XG5cdFx0XHRcdFx0XHRcdGNhc2UgJ2VxdWFsJzpcblx0XHRcdFx0XHRcdFx0XHRpZiAob2JqZWN0W3Byb3BlcnR5XSA9PT0gZmlsdGVyVmFsdWUpIGZpbHRlcmVkT2JqZWN0cy5wdXNoKG9iamVjdCk7XG5cdFx0XHRcdFx0XHRcdFx0YnJlYWs7XG5cblx0XHRcdFx0XHRcdFx0Y2FzZSAnbm90RXF1YWwnOlxuXHRcdFx0XHRcdFx0XHRcdGlmIChvYmplY3RbcHJvcGVydHldICE9PSBmaWx0ZXJWYWx1ZSkgZmlsdGVyZWRPYmplY3RzLnB1c2gob2JqZWN0KTtcblx0XHRcdFx0XHRcdFx0XHRicmVhaztcblxuXHRcdFx0XHRcdFx0XHRjYXNlICdpbmNsdWRlJzpcblx0XHRcdFx0XHRcdFx0XHRpZiAoKG9iamVjdFtwcm9wZXJ0eV0gYXMgc3RyaW5nKS5pbmNsdWRlcyhmaWx0ZXJWYWx1ZSkpIGZpbHRlcmVkT2JqZWN0cy5wdXNoKG9iamVjdCk7XG5cdFx0XHRcdFx0XHRcdFx0YnJlYWs7XG5cblx0XHRcdFx0XHRcdFx0Y2FzZSAnbm90SW5jbHVkZSc6XG5cdFx0XHRcdFx0XHRcdFx0aWYgKCEob2JqZWN0W3Byb3BlcnR5XSBhcyBzdHJpbmcpLmluY2x1ZGVzKGZpbHRlclZhbHVlKSkgZmlsdGVyZWRPYmplY3RzLnB1c2gob2JqZWN0KTtcblx0XHRcdFx0XHRcdFx0XHRicmVhaztcblx0XHRcdFx0XHRcdH1cblx0XHRcdFx0XHRcdGJyZWFrO1xuXG5cdFx0XHRcdFx0Y2FzZSAnbnVtYmVyJzpcblx0XHRcdFx0XHRcdHN3aXRjaCAoZmlsdGVyQ29uZGl0aW9uKSB7XG5cdFx0XHRcdFx0XHRcdGNhc2UgJ2VxdWFsJzpcblx0XHRcdFx0XHRcdFx0XHRpZiAob2JqZWN0W3Byb3BlcnR5XSA9PT0gZmlsdGVyVmFsdWUpIGZpbHRlcmVkT2JqZWN0cy5wdXNoKG9iamVjdCk7XG5cdFx0XHRcdFx0XHRcdFx0YnJlYWs7XG5cblx0XHRcdFx0XHRcdFx0Y2FzZSAnbm90RXF1YWwnOlxuXHRcdFx0XHRcdFx0XHRcdGlmIChvYmplY3RbcHJvcGVydHldICE9PSBmaWx0ZXJWYWx1ZSkgZmlsdGVyZWRPYmplY3RzLnB1c2gob2JqZWN0KTtcblx0XHRcdFx0XHRcdFx0XHRicmVhaztcblxuXHRcdFx0XHRcdFx0XHRjYXNlICdlcXVhbC9ncmVhdGVyJzpcblx0XHRcdFx0XHRcdFx0XHRpZiAob2JqZWN0W3Byb3BlcnR5XSA+PSBmaWx0ZXJWYWx1ZSkgZmlsdGVyZWRPYmplY3RzLnB1c2gob2JqZWN0KTtcblx0XHRcdFx0XHRcdFx0XHRicmVhaztcblxuXHRcdFx0XHRcdFx0XHRjYXNlICdncmVhdGVyJzpcblx0XHRcdFx0XHRcdFx0XHRpZiAob2JqZWN0W3Byb3BlcnR5XSA+IGZpbHRlclZhbHVlKSBmaWx0ZXJlZE9iamVjdHMucHVzaChvYmplY3QpO1xuXHRcdFx0XHRcdFx0XHRcdGJyZWFrO1xuXG5cdFx0XHRcdFx0XHRcdGNhc2UgJ2VxdWFsL2xvd2VyJzpcblx0XHRcdFx0XHRcdFx0XHRpZiAob2JqZWN0W3Byb3BlcnR5XSA8PSBmaWx0ZXJWYWx1ZSkgZmlsdGVyZWRPYmplY3RzLnB1c2gob2JqZWN0KTtcblx0XHRcdFx0XHRcdFx0XHRicmVhaztcblxuXHRcdFx0XHRcdFx0XHRjYXNlICdsb3dlcic6XG5cdFx0XHRcdFx0XHRcdFx0aWYgKG9iamVjdFtwcm9wZXJ0eV0gPCBmaWx0ZXJWYWx1ZSkgZmlsdGVyZWRPYmplY3RzLnB1c2gob2JqZWN0KTtcblx0XHRcdFx0XHRcdFx0XHRicmVhaztcblx0XHRcdFx0XHRcdH1cblx0XHRcdFx0XHRcdGJyZWFrO1xuXG5cdFx0XHRcdFx0Y2FzZSAnYm9vbGVhbic6XG5cdFx0XHRcdFx0XHRzd2l0Y2ggKGZpbHRlckNvbmRpdGlvbikge1xuXHRcdFx0XHRcdFx0XHRjYXNlICdlcXVhbCc6XG5cdFx0XHRcdFx0XHRcdFx0aWYgKG9iamVjdFtwcm9wZXJ0eV0gPT09IGZpbHRlclZhbHVlKSBmaWx0ZXJlZE9iamVjdHMucHVzaChvYmplY3QpO1xuXHRcdFx0XHRcdFx0XHRcdGJyZWFrO1xuXG5cdFx0XHRcdFx0XHRcdGNhc2UgJ25vdEVxdWFsJzpcblx0XHRcdFx0XHRcdFx0XHRpZiAob2JqZWN0W3Byb3BlcnR5XSAhPT0gZmlsdGVyVmFsdWUpIGZpbHRlcmVkT2JqZWN0cy5wdXNoKG9iamVjdCk7XG5cdFx0XHRcdFx0XHRcdFx0YnJlYWs7XG5cdFx0XHRcdFx0XHR9XG5cdFx0XHRcdFx0XHRicmVhaztcblx0XHRcdFx0fVxuXG5cdFx0cmV0dXJuIGZpbHRlcmVkT2JqZWN0cztcblx0fVxufVxuIl19