@thiagoprz/filter-pipe
Version:
Angular Filter Pipe
32 lines • 3.4 kB
JavaScript
import { Injectable, Pipe } from '@angular/core';
export class FilterPipe {
constructor() { }
/**
*
* @param items Items collection
* @param any field The field to be validated
* @param value
*/
transform(items, field, value) {
if (!items)
return [];
if (!value || value.length == 0)
return items;
return items.filter((it) => {
const itemValue = typeof it[field] == 'string' ? it[field].toLowerCase() : it[field];
const filterValue = typeof value == 'string' ? value.toLowerCase() : value;
if (filterValue.indexOf('!=') != -1) {
return itemValue != filterValue.replace('!=', '');
}
return itemValue == filterValue;
});
}
}
FilterPipe.decorators = [
{ type: Pipe, args: [{
name: 'filter'
},] },
{ type: Injectable }
];
FilterPipe.ctorParameters = () => [];
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZmlsdGVyLXBpcGUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy90aGlhZ29wcnovZmlsdGVyLXBpcGUvc3JjL2xpYi9maWx0ZXItcGlwZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsVUFBVSxFQUFFLElBQUksRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUtqRCxNQUFNLE9BQU8sVUFBVTtJQUVyQixnQkFBZSxDQUFDO0lBRWhCOzs7OztPQUtHO0lBQ0gsU0FBUyxDQUFDLEtBQVksRUFBRSxLQUFjLEVBQUUsS0FBVztRQUNqRCxJQUFJLENBQUMsS0FBSztZQUFFLE9BQU8sRUFBRSxDQUFDO1FBQ3RCLElBQUksQ0FBQyxLQUFLLElBQUksS0FBSyxDQUFDLE1BQU0sSUFBSSxDQUFDO1lBQUUsT0FBTyxLQUFLLENBQUM7UUFDOUMsT0FBTyxLQUFLLENBQUMsTUFBTSxDQUFDLENBQUMsRUFBRSxFQUFFLEVBQUU7WUFDekIsTUFBTSxTQUFTLEdBQUcsT0FBTyxFQUFFLENBQUMsS0FBSyxDQUFDLElBQUksUUFBUSxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsS0FBSyxDQUFDLENBQUMsV0FBVyxFQUFFLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxLQUFLLENBQUMsQ0FBQztZQUNyRixNQUFNLFdBQVcsR0FBRyxPQUFPLEtBQUssSUFBSSxRQUFRLENBQUMsQ0FBQyxDQUFDLEtBQUssQ0FBQyxXQUFXLEVBQUUsQ0FBQyxDQUFDLENBQUMsS0FBSyxDQUFDO1lBQzNFLElBQUksV0FBVyxDQUFDLE9BQU8sQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLENBQUMsRUFBRTtnQkFDbkMsT0FBTyxTQUFTLElBQUksV0FBVyxDQUFDLE9BQU8sQ0FBQyxJQUFJLEVBQUUsRUFBRSxDQUFDLENBQUM7YUFDbkQ7WUFDRCxPQUFPLFNBQVMsSUFBSSxXQUFXLENBQUM7UUFDbEMsQ0FBQyxDQUFDLENBQUM7SUFDTCxDQUFDOzs7WUF6QkYsSUFBSSxTQUFDO2dCQUNKLElBQUksRUFBRSxRQUFRO2FBQ2Y7WUFDQSxVQUFVIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgSW5qZWN0YWJsZSwgUGlwZSB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuQFBpcGUoe1xuICBuYW1lOiAnZmlsdGVyJ1xufSlcbkBJbmplY3RhYmxlKClcbmV4cG9ydCBjbGFzcyBGaWx0ZXJQaXBlICB7XG5cbiAgY29uc3RydWN0b3IoKSB7fVxuXG4gIC8qKlxuICAgKlxuICAgKiBAcGFyYW0gaXRlbXMgSXRlbXMgY29sbGVjdGlvblxuICAgKiBAcGFyYW0gYW55IGZpZWxkIFRoZSBmaWVsZCB0byBiZSB2YWxpZGF0ZWRcbiAgICogQHBhcmFtIHZhbHVlXG4gICAqL1xuICB0cmFuc2Zvcm0oaXRlbXM6IGFueVtdLCBmaWVsZCA6IHN0cmluZywgdmFsdWUgOiBhbnkpOiBhbnlbXSB7XG4gICAgaWYgKCFpdGVtcykgcmV0dXJuIFtdO1xuICAgIGlmICghdmFsdWUgfHwgdmFsdWUubGVuZ3RoID09IDApIHJldHVybiBpdGVtcztcbiAgICByZXR1cm4gaXRlbXMuZmlsdGVyKChpdCkgPT4ge1xuICAgICAgY29uc3QgaXRlbVZhbHVlID0gdHlwZW9mIGl0W2ZpZWxkXSA9PSAnc3RyaW5nJyA/IGl0W2ZpZWxkXS50b0xvd2VyQ2FzZSgpIDogaXRbZmllbGRdO1xuICAgICAgY29uc3QgZmlsdGVyVmFsdWUgPSB0eXBlb2YgdmFsdWUgPT0gJ3N0cmluZycgPyB2YWx1ZS50b0xvd2VyQ2FzZSgpIDogdmFsdWU7XG4gICAgICBpZiAoZmlsdGVyVmFsdWUuaW5kZXhPZignIT0nKSAhPSAtMSkge1xuICAgICAgICByZXR1cm4gaXRlbVZhbHVlICE9IGZpbHRlclZhbHVlLnJlcGxhY2UoJyE9JywgJycpO1xuICAgICAgfVxuICAgICAgcmV0dXJuIGl0ZW1WYWx1ZSA9PSBmaWx0ZXJWYWx1ZTtcbiAgICB9KTtcbiAgfVxufVxuIl19