UNPKG

@thiagoprz/filter-pipe

Version:
32 lines 3.4 kB
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