UNPKG

angular2-boiler-plate

Version:

Angular 2 Boiler plate that integrated with WebPack, TypeScript, DatePicker, RxJs for Reactive Extensions in Java Script , Karma , Jasmine for unit testing , WebKit ,protractor e2e testing

41 lines (35 loc) 1.06 kB
import { PipeTransform, Pipe } from '@angular/core'; @Pipe({ name: 'orderBy' }) export class OrderByPipe implements PipeTransform { transform(items: any, key: string, descOrder: boolean): any { return sortArray(items, key, descOrder); } } export function sortArray<T>(items: Array<T>, key: string, descOrder: boolean): Array<T> { if (!items || items.length < 2) return items; let len = items.length, array: T[]; if (len > 65536) { array = new Array(len); } else { array = []; array.length = len; } for (let i = 0; i < len; i++) { array[i] = items[i]; } return array.sort(function (a, b) { let x = a[key]; let y = b[key]; if (typeof x === 'string') { x = x.toLowerCase(); } if (typeof y === 'string') { y = y.toLowerCase(); } if (descOrder) return ((x > y) ? -1 : ((x < y) ? 1 : 0)); return ((x < y) ? -1 : ((x > y) ? 1 : 0)); }); }