UNPKG

ng-custom-pipe

Version:

An Angular Library, that gives you a hussle free experience on data operation using pipes

59 lines 8.9 kB
/** Copyright 2023 Infosys Ltd. */ import { Pipe } from '@angular/core'; import * as i0 from "@angular/core"; export class OrderByPipe { transform(inputArr, orderKey, sortingOrderAsc, valType = 'string') { const reversed = sortingOrderAsc === 'asc' ? 1 : -1; if (!inputArr || inputArr.length === 0) { return []; } if (valType === 'boolean') { if (orderKey !== '' && orderKey !== null) { inputArr.sort((a, b) => { return reversed * (Number(a[orderKey]) - Number(b[orderKey])); }); } else { inputArr.sort((a, b) => { return reversed * (Number(a) - Number(b)); }); } } else if (valType === 'number') { if (orderKey !== '' && orderKey !== null) { inputArr.sort((a, b) => { return reversed * (a[orderKey] - b[orderKey]); }); } else { inputArr.sort((a, b) => { return reversed * (a - b); }); } } else if (valType === 'date') { if (orderKey !== '' && orderKey !== null) { inputArr.sort((a, b) => { return reversed * (new Date(a[orderKey]).valueOf() - new Date(b[orderKey]).valueOf()); }); } else { inputArr.sort((a, b) => { return reversed * (new Date(a).valueOf() - new Date(b).valueOf()); }); } } else { if (orderKey !== '' && orderKey !== null) { inputArr.sort((a, b) => { return a[orderKey].toLowerCase() < b[orderKey].toLowerCase() ? reversed * -1 : a[orderKey].toLowerCase() > b[orderKey].toLowerCase() ? reversed : 0; }); } else { inputArr.sort((a, b) => { return a.toLowerCase() < b.toLowerCase() ? reversed * -1 : a.toLowerCase() > b.toLowerCase() ? reversed : 0; }); } } return inputArr; } } OrderByPipe.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.9", ngImport: i0, type: OrderByPipe, deps: [], target: i0.ɵɵFactoryTarget.Pipe }); OrderByPipe.ɵpipe = i0.ɵɵngDeclarePipe({ minVersion: "14.0.0", version: "15.2.9", ngImport: i0, type: OrderByPipe, name: "orderBy" }); i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.9", ngImport: i0, type: OrderByPipe, decorators: [{ type: Pipe, args: [{ name: 'orderBy' }] }] }); //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoib3JkZXItYnkucGlwZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL25nLWN1c3RvbS1waXBlL3NyYy9saWIvYXJyYXkvb3JkZXItYnkucGlwZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxrQ0FBa0M7QUFDbEMsT0FBTyxFQUFFLElBQUksRUFBaUIsTUFBTSxlQUFlLENBQUM7O0FBS3BELE1BQU0sT0FBTyxXQUFXO0lBRXRCLFNBQVMsQ0FBQyxRQUFlLEVBQUUsUUFBZ0IsRUFBRSxlQUErQixFQUFFLFVBQW9ELFFBQVE7UUFDeEksTUFBTSxRQUFRLEdBQUcsZUFBZSxLQUFLLEtBQUssQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQztRQUNwRCxJQUFJLENBQUMsUUFBUSxJQUFJLFFBQVEsQ0FBQyxNQUFNLEtBQUcsQ0FBQyxFQUFFO1lBQ3BDLE9BQU8sRUFBRSxDQUFDO1NBQ1g7UUFFRCxJQUFJLE9BQU8sS0FBSyxTQUFTLEVBQUU7WUFDekIsSUFBSSxRQUFRLEtBQUssRUFBRSxJQUFJLFFBQVEsS0FBSyxJQUFJLEVBQUU7Z0JBQ3hDLFFBQVEsQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxFQUFFLEVBQUUsR0FBRyxPQUFPLFFBQVEsR0FBRyxDQUFDLE1BQU0sQ0FBQyxDQUFDLENBQUMsUUFBUSxDQUFDLENBQUMsR0FBRyxNQUFNLENBQUMsQ0FBQyxDQUFDLFFBQVEsQ0FBQyxDQUFDLENBQUMsQ0FBQSxDQUFDLENBQUMsQ0FBQyxDQUFDO2FBQzVGO2lCQUFNO2dCQUNMLFFBQVEsQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxFQUFFLEVBQUUsR0FBRyxPQUFPLFFBQVEsR0FBRyxDQUFDLE1BQU0sQ0FBQyxDQUFDLENBQUMsR0FBRyxNQUFNLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQSxDQUFDLENBQUMsQ0FBQyxDQUFDO2FBQ3hFO1NBQ0Y7YUFBTSxJQUFJLE9BQU8sS0FBSyxRQUFRLEVBQUU7WUFDL0IsSUFBSSxRQUFRLEtBQUssRUFBRSxJQUFJLFFBQVEsS0FBSyxJQUFJLEVBQUU7Z0JBQ3hDLFFBQVEsQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxFQUFFLEVBQUUsR0FBRyxPQUFPLFFBQVEsR0FBRyxDQUFDLENBQUMsQ0FBQyxRQUFRLENBQUMsR0FBRyxDQUFDLENBQUMsUUFBUSxDQUFDLENBQUMsQ0FBQSxDQUFDLENBQUMsQ0FBQyxDQUFDO2FBQzVFO2lCQUFNO2dCQUNMLFFBQVEsQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxFQUFFLEVBQUUsR0FBRyxPQUFPLFFBQVEsR0FBRyxDQUFDLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQSxDQUFDLENBQUMsQ0FBQyxDQUFDO2FBQ3hEO1NBQ0Y7YUFBTSxJQUFJLE9BQU8sS0FBSyxNQUFNLEVBQUU7WUFDN0IsSUFBSSxRQUFRLEtBQUssRUFBRSxJQUFJLFFBQVEsS0FBSyxJQUFJLEVBQUU7Z0JBQ3hDLFFBQVEsQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxFQUFFLEVBQUUsR0FBRyxPQUFPLFFBQVEsR0FBRyxDQUFDLElBQUksSUFBSSxDQUFDLENBQUMsQ0FBQyxRQUFRLENBQUMsQ0FBQyxDQUFDLE9BQU8sRUFBRSxHQUFHLElBQUksSUFBSSxDQUFDLENBQUMsQ0FBQyxRQUFRLENBQUMsQ0FBQyxDQUFDLE9BQU8sRUFBRSxDQUFDLENBQUEsQ0FBQyxDQUFDLENBQUMsQ0FBQzthQUNwSDtpQkFBTTtnQkFDTCxRQUFRLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsRUFBRSxFQUFFLEdBQUcsT0FBTyxRQUFRLEdBQUcsQ0FBQyxJQUFJLElBQUksQ0FBQyxDQUFDLENBQUMsQ0FBQyxPQUFPLEVBQUUsR0FBRyxJQUFJLElBQUksQ0FBQyxDQUFDLENBQUMsQ0FBQyxPQUFPLEVBQUUsQ0FBQyxDQUFBLENBQUMsQ0FBQyxDQUFDLENBQUM7YUFDaEc7U0FDRjthQUFNO1lBQ0wsSUFBSSxRQUFRLEtBQUssRUFBRSxJQUFJLFFBQVEsS0FBSyxJQUFJLEVBQUU7Z0JBQ3hDLFFBQVEsQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxFQUFFLEVBQUU7b0JBQ3JCLE9BQU8sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxDQUFDLFdBQVcsRUFBRSxHQUFHLENBQUMsQ0FBQyxRQUFRLENBQUMsQ0FBQyxXQUFXLEVBQUU7d0JBQzFELENBQUMsQ0FBQyxRQUFRLEdBQUcsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxRQUFRLENBQUMsQ0FBQyxXQUFXLEVBQUUsR0FBRyxDQUFDLENBQUMsUUFBUSxDQUFDLENBQUMsV0FBVyxFQUFFLENBQUMsQ0FBQyxDQUFDLFFBQVEsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDO2dCQUMzRixDQUFDLENBQUMsQ0FBQzthQUNKO2lCQUFNO2dCQUNMLFFBQVEsQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxFQUFFLEVBQUU7b0JBQ3JCLE9BQU8sQ0FBQyxDQUFDLFdBQVcsRUFBRSxHQUFHLENBQUMsQ0FBQyxXQUFXLEVBQUUsQ0FBQyxDQUFDLENBQUMsUUFBUSxHQUFHLENBQUMsQ0FBQyxDQUFDLENBQUM7d0JBQ3hELENBQUMsQ0FBQyxXQUFXLEVBQUUsR0FBRyxDQUFDLENBQUMsV0FBVyxFQUFFLENBQUMsQ0FBQyxDQUFDLFFBQVEsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDO2dCQUNyRCxDQUFDLENBQUMsQ0FBQzthQUNKO1NBQ0Y7UUFFRCxPQUFPLFFBQVEsQ0FBQztJQUNsQixDQUFDOzt3R0F6Q1UsV0FBVztzR0FBWCxXQUFXOzJGQUFYLFdBQVc7a0JBSHZCLElBQUk7bUJBQUM7b0JBQ0osSUFBSSxFQUFFLFNBQVM7aUJBQ2hCIiwic291cmNlc0NvbnRlbnQiOlsiLyoqIENvcHlyaWdodCAyMDIzIEluZm9zeXMgTHRkLiAqL1xyXG5pbXBvcnQgeyBQaXBlLCBQaXBlVHJhbnNmb3JtIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XHJcblxyXG5AUGlwZSh7XHJcbiAgbmFtZTogJ29yZGVyQnknXHJcbn0pXHJcbmV4cG9ydCBjbGFzcyBPcmRlckJ5UGlwZSBpbXBsZW1lbnRzIFBpcGVUcmFuc2Zvcm0ge1xyXG5cclxuICB0cmFuc2Zvcm0oaW5wdXRBcnI6IGFueVtdLCBvcmRlcktleTogc3RyaW5nLCBzb3J0aW5nT3JkZXJBc2M6ICdhc2MnIHwgJ2Rlc2MnLCB2YWxUeXBlOiAnc3RyaW5nJyB8ICdib29sZWFuJyB8ICdudW1iZXInIHwgJ2RhdGUnID0gJ3N0cmluZycpOiBhbnlbXSB7XHJcbiAgICBjb25zdCByZXZlcnNlZCA9IHNvcnRpbmdPcmRlckFzYyA9PT0gJ2FzYycgPyAxIDogLTE7XHJcbiAgICBpZiAoIWlucHV0QXJyIHx8IGlucHV0QXJyLmxlbmd0aD09PTApIHtcclxuICAgICAgcmV0dXJuIFtdO1xyXG4gICAgfVxyXG5cclxuICAgIGlmICh2YWxUeXBlID09PSAnYm9vbGVhbicpIHtcclxuICAgICAgaWYgKG9yZGVyS2V5ICE9PSAnJyAmJiBvcmRlcktleSAhPT0gbnVsbCkge1xyXG4gICAgICAgIGlucHV0QXJyLnNvcnQoKGEsIGIpID0+IHsgcmV0dXJuIHJldmVyc2VkICogKE51bWJlcihhW29yZGVyS2V5XSkgLSBOdW1iZXIoYltvcmRlcktleV0pKSB9KTtcclxuICAgICAgfSBlbHNlIHtcclxuICAgICAgICBpbnB1dEFyci5zb3J0KChhLCBiKSA9PiB7IHJldHVybiByZXZlcnNlZCAqIChOdW1iZXIoYSkgLSBOdW1iZXIoYikpIH0pO1xyXG4gICAgICB9XHJcbiAgICB9IGVsc2UgaWYgKHZhbFR5cGUgPT09ICdudW1iZXInKSB7XHJcbiAgICAgIGlmIChvcmRlcktleSAhPT0gJycgJiYgb3JkZXJLZXkgIT09IG51bGwpIHtcclxuICAgICAgICBpbnB1dEFyci5zb3J0KChhLCBiKSA9PiB7IHJldHVybiByZXZlcnNlZCAqIChhW29yZGVyS2V5XSAtIGJbb3JkZXJLZXldKSB9KTtcclxuICAgICAgfSBlbHNlIHtcclxuICAgICAgICBpbnB1dEFyci5zb3J0KChhLCBiKSA9PiB7IHJldHVybiByZXZlcnNlZCAqIChhIC0gYikgfSk7XHJcbiAgICAgIH1cclxuICAgIH0gZWxzZSBpZiAodmFsVHlwZSA9PT0gJ2RhdGUnKSB7XHJcbiAgICAgIGlmIChvcmRlcktleSAhPT0gJycgJiYgb3JkZXJLZXkgIT09IG51bGwpIHtcclxuICAgICAgICBpbnB1dEFyci5zb3J0KChhLCBiKSA9PiB7IHJldHVybiByZXZlcnNlZCAqIChuZXcgRGF0ZShhW29yZGVyS2V5XSkudmFsdWVPZigpIC0gbmV3IERhdGUoYltvcmRlcktleV0pLnZhbHVlT2YoKSkgfSk7XHJcbiAgICAgIH0gZWxzZSB7XHJcbiAgICAgICAgaW5wdXRBcnIuc29ydCgoYSwgYikgPT4geyByZXR1cm4gcmV2ZXJzZWQgKiAobmV3IERhdGUoYSkudmFsdWVPZigpIC0gbmV3IERhdGUoYikudmFsdWVPZigpKSB9KTtcclxuICAgICAgfVxyXG4gICAgfSBlbHNlIHtcclxuICAgICAgaWYgKG9yZGVyS2V5ICE9PSAnJyAmJiBvcmRlcktleSAhPT0gbnVsbCkge1xyXG4gICAgICAgIGlucHV0QXJyLnNvcnQoKGEsIGIpID0+IHtcclxuICAgICAgICAgIHJldHVybiBhW29yZGVyS2V5XS50b0xvd2VyQ2FzZSgpIDwgYltvcmRlcktleV0udG9Mb3dlckNhc2UoKVxyXG4gICAgICAgICAgICA/IHJldmVyc2VkICogLTEgOiBhW29yZGVyS2V5XS50b0xvd2VyQ2FzZSgpID4gYltvcmRlcktleV0udG9Mb3dlckNhc2UoKSA/IHJldmVyc2VkIDogMDtcclxuICAgICAgICB9KTtcclxuICAgICAgfSBlbHNlIHtcclxuICAgICAgICBpbnB1dEFyci5zb3J0KChhLCBiKSA9PiB7XHJcbiAgICAgICAgICByZXR1cm4gYS50b0xvd2VyQ2FzZSgpIDwgYi50b0xvd2VyQ2FzZSgpID8gcmV2ZXJzZWQgKiAtMSA6XHJcbiAgICAgICAgICAgIGEudG9Mb3dlckNhc2UoKSA+IGIudG9Mb3dlckNhc2UoKSA/IHJldmVyc2VkIDogMDtcclxuICAgICAgICB9KTtcclxuICAgICAgfVxyXG4gICAgfVxyXG5cclxuICAgIHJldHVybiBpbnB1dEFycjtcclxuICB9XHJcblxyXG59XHJcblxyXG4iXX0=