UNPKG

ontimize-web-ngx

Version:
69 lines 10.2 kB
import { Pipe } from '@angular/core'; import * as i0 from "@angular/core"; export class OrderByPipe { static _orderByComparator(a, b) { if ((isNaN(parseFloat(a)) || !isFinite(a)) || (isNaN(parseFloat(b)) || !isFinite(b))) { if (a.toLowerCase() < b.toLowerCase()) { return -1; } if (a.toLowerCase() > b.toLowerCase()) { return 1; } } else { if (parseFloat(a) < parseFloat(b)) { return -1; } if (parseFloat(a) > parseFloat(b)) { return 1; } } return 0; } transform(input, [config = '+']) { if (!Array.isArray(input)) { return input; } if (!Array.isArray(config) || (Array.isArray(config) && config.length === 1)) { const propertyToCheck = !Array.isArray(config) ? config : config[0]; const desc = propertyToCheck.substr(0, 1) === '-'; if (!propertyToCheck || propertyToCheck === '-' || propertyToCheck === '+') { return !desc ? input.sort() : input.sort().reverse(); } else { const property = propertyToCheck.substr(0, 1) === '+' || propertyToCheck.substr(0, 1) === '-' ? propertyToCheck.substr(1) : propertyToCheck; return input.sort((a, b) => { return !desc ? OrderByPipe._orderByComparator(a[property], b[property]) : -OrderByPipe._orderByComparator(a[property], b[property]); }); } } else { return input.sort((a, b) => { for (let i = 0; i < config.length; i++) { const desc = config[i].substr(0, 1) === '-'; const property = config[i].substr(0, 1) === '+' || config[i].substr(0, 1) === '-' ? config[i].substr(1) : config[i]; let comparison = !desc ? OrderByPipe._orderByComparator(a[property], b[property]) : -OrderByPipe._orderByComparator(a[property], b[property]); if (comparison = 0) { return comparison; } } return 0; }); } } } OrderByPipe.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.10", ngImport: i0, type: OrderByPipe, deps: [], target: i0.ɵɵFactoryTarget.Pipe }); OrderByPipe.ɵpipe = i0.ɵɵngDeclarePipe({ minVersion: "14.0.0", version: "15.2.10", ngImport: i0, type: OrderByPipe, name: "orderBy", pure: false }); i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.10", ngImport: i0, type: OrderByPipe, decorators: [{ type: Pipe, args: [{ name: 'orderBy', pure: false }] }] }); //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoib3JkZXItYnkucGlwZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3Byb2plY3RzL29udGltaXplLXdlYi1uZ3gvc3JjL2xpYi9waXBlcy9vcmRlci1ieS5waXBlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxJQUFJLEVBQWlCLE1BQU0sZUFBZSxDQUFDOztBQUlwRCxNQUFNLE9BQU8sV0FBVztJQUV0QixNQUFNLENBQUMsa0JBQWtCLENBQUMsQ0FBTSxFQUFFLENBQU07UUFFdEMsSUFBSSxDQUFDLEtBQUssQ0FBQyxVQUFVLENBQUMsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLFFBQVEsQ0FBQyxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLFVBQVUsQ0FBQyxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsUUFBUSxDQUFDLENBQUMsQ0FBQyxDQUFDLEVBQUU7WUFFcEYsSUFBSSxDQUFDLENBQUMsV0FBVyxFQUFFLEdBQUcsQ0FBQyxDQUFDLFdBQVcsRUFBRSxFQUFFO2dCQUFFLE9BQU8sQ0FBQyxDQUFDLENBQUM7YUFBRTtZQUNyRCxJQUFJLENBQUMsQ0FBQyxXQUFXLEVBQUUsR0FBRyxDQUFDLENBQUMsV0FBVyxFQUFFLEVBQUU7Z0JBQUUsT0FBTyxDQUFDLENBQUM7YUFBRTtTQUNyRDthQUFNO1lBRUwsSUFBSSxVQUFVLENBQUMsQ0FBQyxDQUFDLEdBQUcsVUFBVSxDQUFDLENBQUMsQ0FBQyxFQUFFO2dCQUFFLE9BQU8sQ0FBQyxDQUFDLENBQUM7YUFBRTtZQUNqRCxJQUFJLFVBQVUsQ0FBQyxDQUFDLENBQUMsR0FBRyxVQUFVLENBQUMsQ0FBQyxDQUFDLEVBQUU7Z0JBQUUsT0FBTyxDQUFDLENBQUM7YUFBRTtTQUNqRDtRQUVELE9BQU8sQ0FBQyxDQUFDO0lBQ1gsQ0FBQztJQUVELFNBQVMsQ0FBQyxLQUFVLEVBQUUsQ0FBQyxNQUFNLEdBQUcsR0FBRyxDQUFDO1FBRWxDLElB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QUc5RCxJQUFJLFVBQVUsR0FBRyxDQUFDLEVBQUU7d0JBQUUsT0FBTyxVQUFVLENBQUM7cUJBQUU7aUJBQzNDO2dCQUVELE9BQU8sQ0FBQyxDQUFDO1lBQ1gsQ0FBQyxDQUFDLENBQUM7U0FDSjtJQUNILENBQUM7O3lHQTNEVSxXQUFXO3VHQUFYLFdBQVc7NEZBQVgsV0FBVztrQkFGdkIsSUFBSTttQkFBQyxFQUFFLElBQUksRUFBRSxTQUFTLEVBQUUsSUFBSSxFQUFFLEtBQUssRUFBRSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IFBpcGUsIFBpcGVUcmFuc2Zvcm0gfSBmcm9tICdAYW5ndWxhci9jb3JlJztcblxuQFBpcGUoeyBuYW1lOiAnb3JkZXJCeScsIHB1cmU6IGZhbHNlIH0pXG5cbmV4cG9ydCBjbGFzcyBPcmRlckJ5UGlwZSBpbXBsZW1lbnRzIFBpcGVUcmFuc2Zvcm0ge1xuXG4gIHN0YXRpYyBfb3JkZXJCeUNvbXBhcmF0b3IoYTogYW55LCBiOiBhbnkpOiBudW1iZXIge1xuXG4gICAgaWYgKChpc05hTihwYXJzZUZsb2F0KGEpKSB8fCAhaXNGaW5pdGUoYSkpIHx8IChpc05hTihwYXJzZUZsb2F0KGIpKSB8fCAhaXNGaW5pdGUoYikpKSB7XG4gICAgICAvLyBJc24ndCBhIG51bWJlciBzbyBsb3dlcmNhc2UgdGhlIHN0cmluZyB0byBwcm9wZXJseSBjb21wYXJlXG4gICAgICBpZiAoYS50b0xvd2VyQ2FzZSgpIDwgYi50b0xvd2VyQ2FzZSgpKSB7IHJldHVybiAtMTsgfVxuICAgICAgaWYgKGEudG9Mb3dlckNhc2UoKSA+IGIudG9Mb3dlckNhc2UoKSkgeyByZXR1cm4gMTsgfVxuICAgIH0gZWxzZSB7XG4gICAgICAvLyBQYXJzZSBzdHJpbmdzIGFzIG51bWJlcnMgdG8gY29tcGFyZSBwcm9wZXJseVxuICAgICAgaWYgKHBhcnNlRmxvYXQoYSkgPCBwYXJzZUZsb2F0KGIpKSB7IHJldHVybiAtMTsgfVxuICAgICAgaWYgKHBhcnNlRmxvYXQoYSkgPiBwYXJzZUZsb2F0KGIpKSB7IHJldHVybiAxOyB9XG4gICAgfVxuXG4gICAgcmV0dXJuIDA7IC8vIGVxdWFsIGVhY2ggb3RoZXJcbiAgfVxuXG4gIHRyYW5zZm9ybShpbnB1dDogYW55LCBbY29uZmlnID0gJysnXSk6IGFueSB7XG5cbiAgICBpZiAoIUFycmF5LmlzQXJyYXkoaW5wdXQpKSB7IHJldHVybiBpbnB1dDsgfVxuXG4gICAgaWYgKCFBcnJheS5pc0FycmF5KGNvbmZpZykgfHwgKEFycmF5LmlzQXJyYXkoY29uZmlnKSAmJiBjb25maWcubGVuZ3RoID09PSAxKSkge1xuICAgICAgY29uc3QgcHJvcGVydHlUb0NoZWNrOiBzdHJpbmcgPSAhQXJyYXkuaXNBcnJheShjb25maWcpID8gY29uZmlnIDogY29uZmlnWzBdO1xuICAgICAgY29uc3QgZGVzYyA9IHByb3BlcnR5VG9DaGVjay5zdWJzdHIoMCwgMSkgPT09ICctJztcblxuICAgICAgLy8gQmFzaWMgYXJyYXlcbiAgICAgIGlmICghcHJvcGVydHlUb0NoZWNrIHx8IHByb3BlcnR5VG9DaGVjayA9PT0gJy0nIHx8IHByb3BlcnR5VG9DaGVjayA9PT0gJysnKSB7XG4gICAgICAgIHJldHVybiAhZGVzYyA/IGlucHV0LnNvcnQoKSA6IGlucHV0LnNvcnQoKS5yZXZlcnNlKCk7XG4gICAgICB9IGVsc2Uge1xuICAgICAgICBjb25zdCBwcm9wZXJ0eTogc3RyaW5nID0gcHJvcGVydHlUb0NoZWNrLnN1YnN0cigwLCAxKSA9PT0gJysnIHx8IHByb3BlcnR5VG9DaGVjay5zdWJzdHIoMCwgMSkgPT09ICctJ1xuICAgICAgICAgID8gcHJvcGVydHlUb0NoZWNrLnN1YnN0cigxKVxuICAgICAgICAgIDogcHJvcGVydHlUb0NoZWNrO1xuXG4gICAgICAgIHJldHVybiBpbnB1dC5zb3J0KChhOiBhbnksIGI6IGFueSkgPT4ge1xuICAgICAgICAgIHJldHVybiAhZGVzY1xuICAgICAgICAgICAgPyBPcmRlckJ5UGlwZS5fb3JkZXJCeUNvbXBhcmF0b3IoYVtwcm9wZXJ0eV0sIGJbcHJvcGVydHldKVxuICAgICAgICAgICAgOiAtT3JkZXJCeVBpcGUuX29yZGVyQnlDb21wYXJhdG9yKGFbcHJvcGVydHldLCBiW3Byb3BlcnR5XSk7XG4gICAgICAgIH0pO1xuICAgICAgfVxuICAgIH0gZWxzZSB7XG4gICAgICAvLyBMb29wIG92ZXIgcHJvcGVydHkgb2YgdGhlIGFycmF5IGluIG9yZGVyIGFuZCBzb3J0XG4gICAgICByZXR1cm4gaW5wdXQuc29ydCgoYTogYW55LCBiOiBhbnkpID0+IHtcbiAgICAgICAgZm9yIChsZXQgaTogbnVtYmVyID0gMDsgaSA8IGNvbmZpZy5sZW5ndGg7IGkrKykge1xuICAgICAgICAgIGNvbnN0IGRlc2MgPSBjb25maWdbaV0uc3Vic3RyKDAsIDEpID09PSAnLSc7XG4gICAgICAgICAgY29uc3QgcHJvcGVydHkgPSBjb25maWdbaV0uc3Vic3RyKDAsIDEpID09PSAnKycgfHwgY29uZmlnW2ldLnN1YnN0cigwLCAxKSA9PT0gJy0nXG4gICAgICAgICAgICA/IGNvbmZpZ1tpXS5zdWJzdHIoMSlcbiAgICAgICAgICAgIDogY29uZmlnW2ldO1xuXG4gICAgICAgICAgbGV0IGNvbXBhcmlzb24gPSAhZGVzY1xuICAgICAgICAgICAgPyBPcmRlckJ5UGlwZS5fb3JkZXJCeUNvbXBhcmF0b3IoYVtwcm9wZXJ0eV0sIGJbcHJvcGVydHldKVxuICAgICAgICAgICAgOiAtT3JkZXJCeVBpcGUuX29yZGVyQnlDb21wYXJhdG9yKGFbcHJvcGVydHldLCBiW3Byb3BlcnR5XSk7XG5cbiAgICAgICAgICAvLyBEb24ndCByZXR1cm4gMCB5ZXQgaW4gY2FzZSBvZiBuZWVkaW5nIHRvIHNvcnQgYnkgbmV4dCBwcm9wZXJ0eVxuICAgICAgICAgIGlmIChjb21wYXJpc29uID0gMCkgeyByZXR1cm4gY29tcGFyaXNvbjsgfVxuICAgICAgICB9XG5cbiAgICAgICAgcmV0dXJuIDA7IC8vIGVxdWFsIGVhY2ggb3RoZXJcbiAgICAgIH0pO1xuICAgIH1cbiAgfVxufVxuXG4iXX0=