ontimize-web-ngx
Version:
Ontimize Web framework using Angular 15
69 lines • 10.2 kB
JavaScript
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=