UNPKG

ng-custom-pipe

Version:

An Angular Library, that gives you a hussle free experience on data operation using pipes

41 lines 4.9 kB
/** Copyright 2023 Infosys Ltd. */ import { Pipe } from '@angular/core'; import * as i0 from "@angular/core"; export class FilterPipe { transform(value, param) { if (!value || value.length === 0) return []; let resultArr = []; if (typeof (param) == 'string' || typeof (param) == 'number') { resultArr = value.filter(val => { return val === param; }); } if (typeof (param) == 'object') { let prop = param[0]; let props = prop.split('.'); value.forEach(val => { let res = val[props[0]]; if (props.length > 1) { for (let i = 1; i < props.length; i++) { res = res[props[i]]; } } if (res === param[1]) { resultArr.push(val); } }); } if (typeof (param) == 'function') { resultArr = param(value); } return resultArr; } } FilterPipe.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.9", ngImport: i0, type: FilterPipe, deps: [], target: i0.ɵɵFactoryTarget.Pipe }); FilterPipe.ɵpipe = i0.ɵɵngDeclarePipe({ minVersion: "14.0.0", version: "15.2.9", ngImport: i0, type: FilterPipe, name: "filter" }); i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.9", ngImport: i0, type: FilterPipe, decorators: [{ type: Pipe, args: [{ name: 'filter' }] }] }); //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZmlsdGVyLnBpcGUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9uZy1jdXN0b20tcGlwZS9zcmMvbGliL2FycmF5L2ZpbHRlci5waXBlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLGtDQUFrQztBQUNsQyxPQUFPLEVBQUUsSUFBSSxFQUFpQixNQUFNLGVBQWUsQ0FBQzs7QUFLcEQsTUFBTSxPQUFPLFVBQVU7SUFFckIsU0FBUyxDQUFDLEtBQVksRUFBRSxLQUFpRDtRQUN2RSxJQUFJLENBQUMsS0FBSyxJQUFJLEtBQUssQ0FBQyxNQUFNLEtBQUcsQ0FBQztZQUFFLE9BQU8sRUFBRSxDQUFDO1FBRTFDLElBQUksU0FBUyxHQUFVLEVBQUUsQ0FBQztRQUUxQixJQUFJLE9BQU0sQ0FBQyxLQUFLLENBQUMsSUFBRSxRQUFRLElBQUksT0FBTSxDQUFDLEtBQUssQ0FBQyxJQUFFLFFBQVEsRUFBRTtZQUN0RCxTQUFTLEdBQUcsS0FBSyxDQUFDLE1BQU0sQ0FBQyxHQUFHLENBQUMsRUFBRSxHQUFFLE9BQU8sR0FBRyxLQUFHLEtBQUssQ0FBQSxDQUFBLENBQUMsQ0FBQyxDQUFDO1NBQ3ZEO1FBRUQsSUFBSSxPQUFNLENBQUMsS0FBSyxDQUFDLElBQUUsUUFBUSxFQUFFO1lBQzNCLElBQUksSUFBSSxHQUFHLEtBQUssQ0FBQyxDQUFDLENBQUMsQ0FBQztZQUNwQixJQUFJLEtBQUssR0FBRyxJQUFJLENBQUMsS0FBSyxDQUFDLEdBQUcsQ0FBQyxDQUFDO1lBQzVCLEtBQUssQ0FBQyxPQUFPLENBQUMsR0FBRyxDQUFDLEVBQUU7Z0JBQ2xCLElBQUksR0FBRyxHQUFRLEdBQUcsQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQztnQkFFN0IsSUFBRyxLQUFLLENBQUMsTUFBTSxHQUFDLENBQUMsRUFBRTtvQkFDakIsS0FBSSxJQUFJLENBQUMsR0FBQyxDQUFDLEVBQUUsQ0FBQyxHQUFDLEtBQUssQ0FBQyxNQUFNLEVBQUMsQ0FBQyxFQUFFLEVBQUU7d0JBQy9CLEdBQUcsR0FBQyxHQUFHLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUM7cUJBQ25CO2lCQUNGO2dCQUNELElBQUksR0FBRyxLQUFHLEtBQUssQ0FBQyxDQUFDLENBQUMsRUFBRTtvQkFDbEIsU0FBUyxDQUFDLElBQUksQ0FBQyxHQUFHLENBQUMsQ0FBQztpQkFDckI7WUFDSCxDQUFDLENBQUMsQ0FBQTtTQUNIO1FBRUQsSUFBRyxPQUFNLENBQUMsS0FBSyxDQUFDLElBQUUsVUFBVSxFQUFFO1lBQzVCLFNBQVMsR0FBRyxLQUFLLENBQUMsS0FBSyxDQUFDLENBQUM7U0FDMUI7UUFDRCxPQUFPLFNBQVMsQ0FBQztJQUNuQixDQUFDOzt1R0FoQ1UsVUFBVTtxR0FBVixVQUFVOzJGQUFWLFVBQVU7a0JBSHRCLElBQUk7bUJBQUM7b0JBQ0osSUFBSSxFQUFFLFFBQVE7aUJBQ2YiLCJzb3VyY2VzQ29udGVudCI6WyIvKiogQ29weXJpZ2h0IDIwMjMgSW5mb3N5cyBMdGQuICovXHJcbmltcG9ydCB7IFBpcGUsIFBpcGVUcmFuc2Zvcm0gfSBmcm9tICdAYW5ndWxhci9jb3JlJztcclxuXHJcbkBQaXBlKHtcclxuICBuYW1lOiAnZmlsdGVyJ1xyXG59KVxyXG5leHBvcnQgY2xhc3MgRmlsdGVyUGlwZSBpbXBsZW1lbnRzIFBpcGVUcmFuc2Zvcm0ge1xyXG5cclxuICB0cmFuc2Zvcm0odmFsdWU6IGFueVtdLCBwYXJhbTogW3N0cmluZywgYW55XSB8IHN0cmluZyB8IG51bWJlciB8IEZ1bmN0aW9uKTogYW55W10ge1xyXG4gICAgaWYgKCF2YWx1ZSB8fCB2YWx1ZS5sZW5ndGg9PT0wKSByZXR1cm4gW107XHJcblxyXG4gICAgbGV0IHJlc3VsdEFycjogYW55W10gPSBbXTtcclxuXHJcbiAgICBpZiAodHlwZW9mKHBhcmFtKT09J3N0cmluZycgfHwgdHlwZW9mKHBhcmFtKT09J251bWJlcicpIHtcclxuICAgICAgcmVzdWx0QXJyID0gdmFsdWUuZmlsdGVyKHZhbCA9PiB7cmV0dXJuIHZhbD09PXBhcmFtfSk7XHJcbiAgICB9XHJcblxyXG4gICAgaWYgKHR5cGVvZihwYXJhbSk9PSdvYmplY3QnKSB7XHJcbiAgICAgIGxldCBwcm9wID0gcGFyYW1bMF07XHJcbiAgICAgIGxldCBwcm9wcyA9IHByb3Auc3BsaXQoJy4nKTtcclxuICAgICAgdmFsdWUuZm9yRWFjaCh2YWwgPT4ge1xyXG4gICAgICAgIGxldCByZXM6IGFueSA9IHZhbFtwcm9wc1swXV07XHJcbiAgICAgICAgXHJcbiAgICAgICAgaWYocHJvcHMubGVuZ3RoPjEpIHtcclxuICAgICAgICAgIGZvcihsZXQgaT0xOyBpPHByb3BzLmxlbmd0aDtpKyspIHtcclxuICAgICAgICAgICAgcmVzPXJlc1twcm9wc1tpXV07XHJcbiAgICAgICAgICB9XHJcbiAgICAgICAgfVxyXG4gICAgICAgIGlmIChyZXM9PT1wYXJhbVsxXSkge1xyXG4gICAgICAgICAgcmVzdWx0QXJyLnB1c2godmFsKTtcclxuICAgICAgICB9XHJcbiAgICAgIH0pXHJcbiAgICB9XHJcblxyXG4gICAgaWYodHlwZW9mKHBhcmFtKT09J2Z1bmN0aW9uJykge1xyXG4gICAgICByZXN1bHRBcnIgPSBwYXJhbSh2YWx1ZSk7XHJcbiAgICB9XHJcbiAgICByZXR1cm4gcmVzdWx0QXJyO1xyXG4gIH1cclxuXHJcbn1cclxuIl19