ngp-sort-pipe
Version:
Angular sort/orderby pipe, order one dimensional array or an array of objects
31 lines • 3.09 kB
JavaScript
import { __decorate } from "tslib";
/*
*ngFor="let c of oneDimArray | sortBy:'asc'"
*ngFor="let c of arrayOfObjects | sortBy:'asc':'propertyName'"
*/
import { Pipe } from '@angular/core';
import { orderBy } from 'lodash';
let SortByPipe = class SortByPipe {
transform(value, order = '', column = '') {
if (!value || order === '' || !order) {
return value;
} // no array
if (!column || column === '') {
if (order === 'asc') {
return value.sort();
}
else {
return value.sort().reverse();
}
} // sort 1d array
if (value.length <= 1) {
return value;
} // array with only one item
return orderBy(value, [column], [order]);
}
};
SortByPipe = __decorate([
Pipe({ name: 'sortBy' })
], SortByPipe);
export { SortByPipe };
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic29ydC1ieS5waXBlLmpzIiwic291cmNlUm9vdCI6Im5nOi8vbmdwLXNvcnQtcGlwZS8iLCJzb3VyY2VzIjpbImxpYi9zb3J0LWJ5LnBpcGUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IjtBQUFBOzs7RUFHRTtBQUNGLE9BQU8sRUFBRSxJQUFJLEVBQWlCLE1BQU0sZUFBZSxDQUFDO0FBQ3BELE9BQU8sRUFBRSxPQUFPLEVBQVMsTUFBTSxRQUFRLENBQUM7QUFHeEMsSUFBYSxVQUFVLEdBQXZCLE1BQWEsVUFBVTtJQUVyQixTQUFTLENBQUMsS0FBWSxFQUFFLEtBQUssR0FBRyxFQUFFLEVBQUUsU0FBaUIsRUFBRTtRQUNyRCxJQUFJLENBQUMsS0FBSyxJQUFJLEtBQUssS0FBSyxFQUFFLElBQUksQ0FBQyxLQUFLLEVBQUU7WUFBRSxPQUFPLEtBQUssQ0FBQztTQUFFLENBQUMsV0FBVztRQUNuRSxJQUFJLENBQUMsTUFBTSxJQUFJLE1BQU0sS0FBSyxFQUFFLEVBQUU7WUFDNUIsSUFBRyxLQUFLLEtBQUcsS0FBSyxFQUFDO2dCQUFDLE9BQU8sS0FBSyxDQUFDLElBQUksRUFBRSxDQUFBO2FBQUM7aUJBQ2xDO2dCQUFDLE9BQU8sS0FBSyxDQUFDLElBQUksRUFBRSxDQUFDLE9BQU8sRUFBRSxDQUFDO2FBQUM7U0FDckMsQ0FBQyxnQkFBZ0I7UUFDbEIsSUFBSSxLQUFLLENBQUMsTUFBTSxJQUFJLENBQUMsRUFBRTtZQUFFLE9BQU8sS0FBSyxDQUFDO1NBQUUsQ0FBQywyQkFBMkI7UUFDcEUsT0FBTyxPQUFPLENBQUMsS0FBSyxFQUFFLENBQUMsTUFBTSxDQUFDLEVBQUUsQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDO0lBQzNDLENBQUM7Q0FDRixDQUFBO0FBWFksVUFBVTtJQUR0QixJQUFJLENBQUMsRUFBRSxJQUFJLEVBQUUsUUFBUSxFQUFFLENBQUM7R0FDWixVQUFVLENBV3RCO1NBWFksVUFBVSIsInNvdXJjZXNDb250ZW50IjpbIi8qXG4gKm5nRm9yPVwibGV0IGMgb2Ygb25lRGltQXJyYXkgfCBzb3J0Qnk6J2FzYydcIlxuICpuZ0Zvcj1cImxldCBjIG9mIGFycmF5T2ZPYmplY3RzIHwgc29ydEJ5Oidhc2MnOidwcm9wZXJ0eU5hbWUnXCJcbiovXG5pbXBvcnQgeyBQaXBlLCBQaXBlVHJhbnNmb3JtIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBvcmRlckJ5LHNvcnRCeSB9IGZyb20gJ2xvZGFzaCc7XG5cbkBQaXBlKHsgbmFtZTogJ3NvcnRCeScgfSlcbmV4cG9ydCBjbGFzcyBTb3J0QnlQaXBlIGltcGxlbWVudHMgUGlwZVRyYW5zZm9ybSB7XG5cbiAgdHJhbnNmb3JtKHZhbHVlOiBhbnlbXSwgb3JkZXIgPSAnJywgY29sdW1uOiBzdHJpbmcgPSAnJyk6IGFueVtdIHtcbiAgICBpZiAoIXZhbHVlIHx8IG9yZGVyID09PSAnJyB8fCAhb3JkZXIpIHsgcmV0dXJuIHZhbHVlOyB9IC8vIG5vIGFycmF5XG4gICAgaWYgKCFjb2x1bW4gfHwgY29sdW1uID09PSAnJykgeyBcbiAgICAgIGlmKG9yZGVyPT09J2FzYycpe3JldHVybiB2YWx1ZS5zb3J0KCl9XG4gICAgICBlbHNle3JldHVybiB2YWx1ZS5zb3J0KCkucmV2ZXJzZSgpO31cbiAgICB9IC8vIHNvcnQgMWQgYXJyYXlcbiAgICBpZiAodmFsdWUubGVuZ3RoIDw9IDEpIHsgcmV0dXJuIHZhbHVlOyB9IC8vIGFycmF5IHdpdGggb25seSBvbmUgaXRlbVxuICAgIHJldHVybiBvcmRlckJ5KHZhbHVlLCBbY29sdW1uXSwgW29yZGVyXSk7XG4gIH1cbn0iXX0=