ng-custom-pipe
Version:
An Angular Library, that gives you a hussle free experience on data operation using pipes
33 lines • 3.61 kB
JavaScript
/** Copyright 2023 Infosys Ltd. */
import { Pipe } from '@angular/core';
import * as i0 from "@angular/core";
export class GroupByPipe {
transform(value, col) {
let result = [];
let group = [];
value.forEach((row) => {
let key = row[col];
if (!group.includes(key)) {
result.push({ key: key, value: [row] });
group.push(key);
}
else {
result.forEach(ar => {
if (ar.key === key) {
ar.value.push(row);
}
});
}
});
return result;
}
}
GroupByPipe.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.9", ngImport: i0, type: GroupByPipe, deps: [], target: i0.ɵɵFactoryTarget.Pipe });
GroupByPipe.ɵpipe = i0.ɵɵngDeclarePipe({ minVersion: "14.0.0", version: "15.2.9", ngImport: i0, type: GroupByPipe, name: "groupBy" });
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.9", ngImport: i0, type: GroupByPipe, decorators: [{
type: Pipe,
args: [{
name: 'groupBy'
}]
}] });
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZ3JvdXAtYnkucGlwZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL25nLWN1c3RvbS1waXBlL3NyYy9saWIvYWdncmVnYXRlL2dyb3VwLWJ5LnBpcGUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsa0NBQWtDO0FBQ2xDLE9BQU8sRUFBRSxJQUFJLEVBQWlCLE1BQU0sZUFBZSxDQUFDOztBQUtwRCxNQUFNLE9BQU8sV0FBVztJQUV0QixTQUFTLENBQUMsS0FBZSxFQUFFLEdBQVc7UUFDcEMsSUFBSSxNQUFNLEdBQWtDLEVBQUUsQ0FBQztRQUMvQyxJQUFJLEtBQUssR0FBYSxFQUFFLENBQUM7UUFFekIsS0FBSyxDQUFDLE9BQU8sQ0FBQyxDQUFDLEdBQVEsRUFBQyxFQUFFO1lBQ3RCLElBQUksR0FBRyxHQUFHLEdBQUcsQ0FBQyxHQUFHLENBQUMsQ0FBQztZQUNuQixJQUFHLENBQUMsS0FBSyxDQUFDLFFBQVEsQ0FBQyxHQUFHLENBQUMsRUFBRTtnQkFDckIsTUFBTSxDQUFDLElBQUksQ0FBQyxFQUFDLEdBQUcsRUFBRSxHQUFHLEVBQUUsS0FBSyxFQUFFLENBQUMsR0FBRyxDQUFDLEVBQUMsQ0FBQyxDQUFDO2dCQUN0QyxLQUFLLENBQUMsSUFBSSxDQUFDLEdBQUcsQ0FBQyxDQUFDO2FBQ25CO2lCQUFNO2dCQUNILE1BQU0sQ0FBQyxPQUFPLENBQUMsRUFBRSxDQUFDLEVBQUU7b0JBQ2hCLElBQUksRUFBRSxDQUFDLEdBQUcsS0FBRyxHQUFHLEVBQUU7d0JBQ2QsRUFBRSxDQUFDLEtBQUssQ0FBQyxJQUFJLENBQUMsR0FBRyxDQUFDLENBQUM7cUJBQ3RCO2dCQUNMLENBQUMsQ0FBQyxDQUFBO2FBQ0w7UUFDTCxDQUFDLENBQUMsQ0FBQTtRQUNGLE9BQU8sTUFBTSxDQUFDO0lBQ2hCLENBQUM7O3dHQXBCVSxXQUFXO3NHQUFYLFdBQVc7MkZBQVgsV0FBVztrQkFIdkIsSUFBSTttQkFBQztvQkFDSixJQUFJLEVBQUUsU0FBUztpQkFDaEIiLCJzb3VyY2VzQ29udGVudCI6WyIvKiogQ29weXJpZ2h0IDIwMjMgSW5mb3N5cyBMdGQuICovXHJcbmltcG9ydCB7IFBpcGUsIFBpcGVUcmFuc2Zvcm0gfSBmcm9tICdAYW5ndWxhci9jb3JlJztcclxuXHJcbkBQaXBlKHtcclxuICBuYW1lOiAnZ3JvdXBCeSdcclxufSlcclxuZXhwb3J0IGNsYXNzIEdyb3VwQnlQaXBlIGltcGxlbWVudHMgUGlwZVRyYW5zZm9ybSB7XHJcblxyXG4gIHRyYW5zZm9ybSh2YWx1ZTogT2JqZWN0W10sIGNvbDogc3RyaW5nKTogeyBrZXk6IGFueTsgdmFsdWU6IGFueVtdOyB9W10ge1xyXG4gICAgbGV0IHJlc3VsdDogeyBrZXk6IGFueTsgdmFsdWU6IGFueVtdOyB9W10gPSBbXTtcclxuICAgIGxldCBncm91cDogc3RyaW5nW10gPSBbXTtcclxuXHJcbiAgICB2YWx1ZS5mb3JFYWNoKChyb3c6IGFueSk9PiB7XHJcbiAgICAgICAgbGV0IGtleSA9IHJvd1tjb2xdO1xyXG4gICAgICAgIGlmKCFncm91cC5pbmNsdWRlcyhrZXkpKSB7XHJcbiAgICAgICAgICAgIHJlc3VsdC5wdXNoKHtrZXk6IGtleSwgdmFsdWU6IFtyb3ddfSk7XHJcbiAgICAgICAgICAgIGdyb3VwLnB1c2goa2V5KTtcclxuICAgICAgICB9IGVsc2Uge1xyXG4gICAgICAgICAgICByZXN1bHQuZm9yRWFjaChhciA9PiB7XHJcbiAgICAgICAgICAgICAgICBpZiAoYXIua2V5PT09a2V5KSB7XHJcbiAgICAgICAgICAgICAgICAgICAgYXIudmFsdWUucHVzaChyb3cpO1xyXG4gICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICB9KVxyXG4gICAgICAgIH1cclxuICAgIH0pXHJcbiAgICByZXR1cm4gcmVzdWx0O1xyXG4gIH1cclxuXHJcbn1cclxuIl19