UNPKG

@ngx-custom-code/ngx-table-custom-sort

Version:

Angular easy table

19 lines 2.99 kB
import { Injectable } from '@angular/core'; import { from } from 'rxjs'; import { mergeMap, groupBy, reduce } from 'rxjs/operators'; import * as i0 from "@angular/core"; export class GroupRowsService { static doGroupRows(data, groupRowsBy) { const grouped = []; from(data) .pipe(groupBy((row) => row[groupRowsBy]), mergeMap((group) => group.pipe(reduce((acc, curr) => [...acc, curr], [])))) .subscribe((row) => grouped.push(row)); return grouped; } static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.0", ngImport: i0, type: GroupRowsService, deps: [], target: i0.ɵɵFactoryTarget.Injectable }); } static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "18.2.0", ngImport: i0, type: GroupRowsService }); } } i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.0", ngImport: i0, type: GroupRowsService, decorators: [{ type: Injectable }] }); //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZ3JvdXAtcm93cy5zZXJ2aWNlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvbmd4LWVhc3ktdGFibGUvc3JjL2xpYi9zZXJ2aWNlcy9ncm91cC1yb3dzLnNlcnZpY2UudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFVBQVUsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUMzQyxPQUFPLEVBQUUsSUFBSSxFQUFFLE1BQU0sTUFBTSxDQUFDO0FBQzVCLE9BQU8sRUFBRSxRQUFRLEVBQUUsT0FBTyxFQUFFLE1BQU0sRUFBRSxNQUFNLGdCQUFnQixDQUFDOztBQUczRCxNQUFNLE9BQU8sZ0JBQWdCO0lBQ3BCLE1BQU0sQ0FBQyxXQUFXLENBQUksSUFBUyxFQUFFLFdBQW1CO1FBQ3pELE1BQU0sT0FBTyxHQUFVLEVBQUUsQ0FBQztRQUMxQixJQUFJLENBQUMsSUFBSSxDQUFDO2FBQ1AsSUFBSSxDQUNILE9BQU8sQ0FBQyxDQUFDLEdBQUcsRUFBRSxFQUFFLENBQUMsR0FBRyxDQUFDLFdBQVcsQ0FBQyxDQUFDLEVBQ2xDLFFBQVEsQ0FBQyxDQUFDLEtBQUssRUFBRSxFQUFFLENBQUMsS0FBSyxDQUFDLElBQUksQ0FBQyxNQUFNLENBQUMsQ0FBQyxHQUFRLEVBQUUsSUFBTyxFQUFFLEVBQUUsQ0FBQyxDQUFDLEdBQUcsR0FBRyxFQUFFLElBQUksQ0FBQyxFQUFFLEVBQUUsQ0FBQyxDQUFDLENBQUMsQ0FDbkY7YUFDQSxTQUFTLENBQUMsQ0FBQyxHQUFHLEVBQUUsRUFBRSxDQUFDLE9BQU8sQ0FBQyxJQUFJLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQztRQUV6QyxPQUFPLE9BQU8sQ0FBQztJQUNqQixDQUFDOzhHQVhVLGdCQUFnQjtrSEFBaEIsZ0JBQWdCOzsyRkFBaEIsZ0JBQWdCO2tCQUQ1QixVQUFVIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgSW5qZWN0YWJsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xyXG5pbXBvcnQgeyBmcm9tIH0gZnJvbSAncnhqcyc7XHJcbmltcG9ydCB7IG1lcmdlTWFwLCBncm91cEJ5LCByZWR1Y2UgfSBmcm9tICdyeGpzL29wZXJhdG9ycyc7XHJcblxyXG5ASW5qZWN0YWJsZSgpXHJcbmV4cG9ydCBjbGFzcyBHcm91cFJvd3NTZXJ2aWNlIHtcclxuICBwdWJsaWMgc3RhdGljIGRvR3JvdXBSb3dzPFQ+KGRhdGE6IFRbXSwgZ3JvdXBSb3dzQnk6IHN0cmluZyk6IGFueVtdIHtcclxuICAgIGNvbnN0IGdyb3VwZWQ6IGFueVtdID0gW107XHJcbiAgICBmcm9tKGRhdGEpXHJcbiAgICAgIC5waXBlKFxyXG4gICAgICAgIGdyb3VwQnkoKHJvdykgPT4gcm93W2dyb3VwUm93c0J5XSksXHJcbiAgICAgICAgbWVyZ2VNYXAoKGdyb3VwKSA9PiBncm91cC5waXBlKHJlZHVjZSgoYWNjOiBUW10sIGN1cnI6IFQpID0+IFsuLi5hY2MsIGN1cnJdLCBbXSkpKVxyXG4gICAgICApXHJcbiAgICAgIC5zdWJzY3JpYmUoKHJvdykgPT4gZ3JvdXBlZC5wdXNoKHJvdykpO1xyXG5cclxuICAgIHJldHVybiBncm91cGVkO1xyXG4gIH1cclxufVxyXG4iXX0=