UNPKG

air-lib

Version:

This is Air's angular component library

36 lines 3.6 kB
/** * @fileoverview added by tsickle * @suppress {checkTypes,extraRequire,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc */ import { Pipe } from '@angular/core'; export class GroupByPipe { /** * @param {?} collection * @param {?} property * @return {?} */ transform(collection, property) { // prevents the application from breaking if the array of objects doesn't exist yet if (!collection) { return new Array(); } /** @type {?} */ const groupedCollection = collection.reduce((previous, current) => { if (!previous[current[property]]) { previous[current[property]] = [current]; } else { previous[current[property]].push(current); } return previous; }, {}); // this will return an array of objects, each object containing a group of objects return Object.keys(groupedCollection).map(key => ({ key, value: groupedCollection[key] })); } } GroupByPipe.decorators = [ { type: Pipe, args: [{ name: 'groupBy' },] } ]; //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZ3JvdXAtYnkucGlwZS5qcyIsInNvdXJjZVJvb3QiOiJuZzovL2Fpci1saWIvIiwic291cmNlcyI6WyJsaWIvcGlwZXMvZ3JvdXAtYnkucGlwZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7O0FBQUEsT0FBTyxFQUFFLElBQUksRUFBaUIsTUFBTSxlQUFlLENBQUM7QUFNcEQsTUFBTTs7Ozs7O0lBQ0osU0FBUyxDQUFDLFVBQXNCLEVBQUUsUUFBZ0I7UUFDaEQsbUZBQW1GO1FBQ25GLElBQUksQ0FBQyxVQUFVLEVBQUU7WUFDZixPQUFPLElBQUksS0FBSyxFQUFPLENBQUM7U0FDekI7O2NBRUssaUJBQWlCLEdBQUcsVUFBVSxDQUFDLE1BQU0sQ0FBQyxDQUFDLFFBQVEsRUFBRSxPQUFPLEVBQUUsRUFBRTtZQUNoRSxJQUFJLENBQUMsUUFBUSxDQUFDLE9BQU8sQ0FBQyxRQUFRLENBQUMsQ0FBQyxFQUFFO2dCQUNoQyxRQUFRLENBQUMsT0FBTyxDQUFDLFFBQVEsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxPQUFPLENBQUMsQ0FBQzthQUN6QztpQkFBTTtnQkFDTCxRQUFRLENBQUMsT0FBTyxDQUFDLFFBQVEsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLE9BQU8sQ0FBQyxDQUFDO2FBQzNDO1lBRUQsT0FBTyxRQUFRLENBQUM7UUFDbEIsQ0FBQyxFQUFFLEVBQUUsQ0FBQztRQUVOLGtGQUFrRjtRQUNsRixPQUFPLE1BQU0sQ0FBQyxJQUFJLENBQUMsaUJBQWlCLENBQUMsQ0FBQyxHQUFHLENBQUMsR0FBRyxDQUFDLEVBQUUsQ0FBQyxDQUFDLEVBQUUsR0FBRyxFQUFFLEtBQUssRUFBRSxpQkFBaUIsQ0FBQyxHQUFHLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQztJQUM3RixDQUFDOzs7WUF2QkYsSUFBSSxTQUFDO2dCQUNKLElBQUksRUFBRSxTQUFTO2FBQ2hCIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgUGlwZSwgUGlwZVRyYW5zZm9ybSB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xyXG5cclxuQFBpcGUoe1xyXG4gIG5hbWU6ICdncm91cEJ5J1xyXG59KVxyXG5cclxuZXhwb3J0IGNsYXNzIEdyb3VwQnlQaXBlIGltcGxlbWVudHMgUGlwZVRyYW5zZm9ybSB7XHJcbiAgdHJhbnNmb3JtKGNvbGxlY3Rpb246IEFycmF5PGFueT4sIHByb3BlcnR5OiBzdHJpbmcpOiBBcnJheTxhbnk+IHtcclxuICAgIC8vIHByZXZlbnRzIHRoZSBhcHBsaWNhdGlvbiBmcm9tIGJyZWFraW5nIGlmIHRoZSBhcnJheSBvZiBvYmplY3RzIGRvZXNuJ3QgZXhpc3QgeWV0XHJcbiAgICBpZiAoIWNvbGxlY3Rpb24pIHtcclxuICAgICAgcmV0dXJuIG5ldyBBcnJheTxhbnk+KCk7XHJcbiAgICB9XHJcblxyXG4gICAgY29uc3QgZ3JvdXBlZENvbGxlY3Rpb24gPSBjb2xsZWN0aW9uLnJlZHVjZSgocHJldmlvdXMsIGN1cnJlbnQpID0+IHtcclxuICAgICAgaWYgKCFwcmV2aW91c1tjdXJyZW50W3Byb3BlcnR5XV0pIHtcclxuICAgICAgICBwcmV2aW91c1tjdXJyZW50W3Byb3BlcnR5XV0gPSBbY3VycmVudF07XHJcbiAgICAgIH0gZWxzZSB7XHJcbiAgICAgICAgcHJldmlvdXNbY3VycmVudFtwcm9wZXJ0eV1dLnB1c2goY3VycmVudCk7XHJcbiAgICAgIH1cclxuXHJcbiAgICAgIHJldHVybiBwcmV2aW91cztcclxuICAgIH0sIHt9KTtcclxuXHJcbiAgICAvLyB0aGlzIHdpbGwgcmV0dXJuIGFuIGFycmF5IG9mIG9iamVjdHMsIGVhY2ggb2JqZWN0IGNvbnRhaW5pbmcgYSBncm91cCBvZiBvYmplY3RzXHJcbiAgICByZXR1cm4gT2JqZWN0LmtleXMoZ3JvdXBlZENvbGxlY3Rpb24pLm1hcChrZXkgPT4gKHsga2V5LCB2YWx1ZTogZ3JvdXBlZENvbGxlY3Rpb25ba2V5XSB9KSk7XHJcbiAgfVxyXG59XHJcbiJdfQ==