ng-custom-pipe
Version:
An Angular Library, that gives you a hussle free experience on data operation using pipes
41 lines • 4.9 kB
JavaScript
/** 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