UNPKG

air-lib

Version:

This is Air's angular component library

45 lines 3.99 kB
/** * @fileoverview added by tsickle * @suppress {checkTypes,extraRequire,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc */ import { Pipe } from '@angular/core'; var GroupByPipe = /** @class */ (function () { function GroupByPipe() { } /** * @param {?} collection * @param {?} property * @return {?} */ GroupByPipe.prototype.transform = /** * @param {?} collection * @param {?} property * @return {?} */ function (collection, property) { // prevents the application from breaking if the array of objects doesn't exist yet if (!collection) { return new Array(); } /** @type {?} */ var groupedCollection = collection.reduce(function (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(function (key) { return ({ key: key, value: groupedCollection[key] }); }); }; GroupByPipe.decorators = [ { type: Pipe, args: [{ name: 'groupBy' },] } ]; return GroupByPipe; }()); export { GroupByPipe }; //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZ3JvdXAtYnkucGlwZS5qcyIsInNvdXJjZVJvb3QiOiJuZzovL2Fpci1saWIvIiwic291cmNlcyI6WyJsaWIvcGlwZXMvZ3JvdXAtYnkucGlwZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7O0FBQUEsT0FBTyxFQUFFLElBQUksRUFBaUIsTUFBTSxlQUFlLENBQUM7QUFFcEQ7SUFBQTtJQXdCQSxDQUFDOzs7Ozs7SUFuQkMsK0JBQVM7Ozs7O0lBQVQsVUFBVSxVQUFzQixFQUFFLFFBQWdCO1FBQ2hELG1GQUFtRjtRQUNuRixJQUFJLENBQUMsVUFBVSxFQUFFO1lBQ2YsT0FBTyxJQUFJLEtBQUssRUFBTyxDQUFDO1NBQ3pCOztZQUVLLGlCQUFpQixHQUFHLFVBQVUsQ0FBQyxNQUFNLENBQUMsVUFBQyxRQUFRLEVBQUUsT0FBTztZQUM1RCxJQUFJLENBQUMsUUFBUSxDQUFDLE9BQU8sQ0FBQyxRQUFRLENBQUMsQ0FBQyxFQUFFO2dCQUNoQyxRQUFRLENBQUMsT0FBTyxDQUFDLFFBQVEsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxPQUFPLENBQUMsQ0FBQzthQUN6QztpQkFBTTtnQkFDTCxRQUFRLENBQUMsT0FBTyxDQUFDLFFBQVEsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLE9BQU8sQ0FBQyxDQUFDO2FBQzNDO1lBRUQsT0FBTyxRQUFRLENBQUM7UUFDbEIsQ0FBQyxFQUFFLEVBQUUsQ0FBQztRQUVOLGtGQUFrRjtRQUNsRixPQUFPLE1BQU0sQ0FBQyxJQUFJLENBQUMsaUJBQWlCLENBQUMsQ0FBQyxHQUFHLENBQUMsVUFBQSxHQUFHLElBQUksT0FBQSxDQUFDLEVBQUUsR0FBRyxLQUFBLEVBQUUsS0FBSyxFQUFFLGlCQUFpQixDQUFDLEdBQUcsQ0FBQyxFQUFFLENBQUMsRUFBeEMsQ0FBd0MsQ0FBQyxDQUFDO0lBQzdGLENBQUM7O2dCQXZCRixJQUFJLFNBQUM7b0JBQ0osSUFBSSxFQUFFLFNBQVM7aUJBQ2hCOztJQXNCRCxrQkFBQztDQUFBLEFBeEJELElBd0JDO1NBcEJZLFdBQVciLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBQaXBlLCBQaXBlVHJhbnNmb3JtIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XHJcblxyXG5AUGlwZSh7XHJcbiAgbmFtZTogJ2dyb3VwQnknXHJcbn0pXHJcblxyXG5leHBvcnQgY2xhc3MgR3JvdXBCeVBpcGUgaW1wbGVtZW50cyBQaXBlVHJhbnNmb3JtIHtcclxuICB0cmFuc2Zvcm0oY29sbGVjdGlvbjogQXJyYXk8YW55PiwgcHJvcGVydHk6IHN0cmluZyk6IEFycmF5PGFueT4ge1xyXG4gICAgLy8gcHJldmVudHMgdGhlIGFwcGxpY2F0aW9uIGZyb20gYnJlYWtpbmcgaWYgdGhlIGFycmF5IG9mIG9iamVjdHMgZG9lc24ndCBleGlzdCB5ZXRcclxuICAgIGlmICghY29sbGVjdGlvbikge1xyXG4gICAgICByZXR1cm4gbmV3IEFycmF5PGFueT4oKTtcclxuICAgIH1cclxuXHJcbiAgICBjb25zdCBncm91cGVkQ29sbGVjdGlvbiA9IGNvbGxlY3Rpb24ucmVkdWNlKChwcmV2aW91cywgY3VycmVudCkgPT4ge1xyXG4gICAgICBpZiAoIXByZXZpb3VzW2N1cnJlbnRbcHJvcGVydHldXSkge1xyXG4gICAgICAgIHByZXZpb3VzW2N1cnJlbnRbcHJvcGVydHldXSA9IFtjdXJyZW50XTtcclxuICAgICAgfSBlbHNlIHtcclxuICAgICAgICBwcmV2aW91c1tjdXJyZW50W3Byb3BlcnR5XV0ucHVzaChjdXJyZW50KTtcclxuICAgICAgfVxyXG5cclxuICAgICAgcmV0dXJuIHByZXZpb3VzO1xyXG4gICAgfSwge30pO1xyXG5cclxuICAgIC8vIHRoaXMgd2lsbCByZXR1cm4gYW4gYXJyYXkgb2Ygb2JqZWN0cywgZWFjaCBvYmplY3QgY29udGFpbmluZyBhIGdyb3VwIG9mIG9iamVjdHNcclxuICAgIHJldHVybiBPYmplY3Qua2V5cyhncm91cGVkQ29sbGVjdGlvbikubWFwKGtleSA9PiAoeyBrZXksIHZhbHVlOiBncm91cGVkQ29sbGVjdGlvbltrZXldIH0pKTtcclxuICB9XHJcbn1cclxuIl19