ngx-easy-table
Version:
Angular easy table
64 lines • 8.93 kB
JavaScript
import { Pipe } from '@angular/core';
import { FiltersService } from '../services/filters.service';
import * as i0 from "@angular/core";
export class SortPipe {
constructor() {
this.defaultArray = [];
}
static isNaN(aV, bV) {
return isNaN(parseFloat(aV)) || !isFinite(aV) || isNaN(parseFloat(bV)) || !isFinite(bV);
}
static compare(a, b, key) {
const split = key.split('.');
const aPath = FiltersService.getPath(split, a);
const bPath = FiltersService.getPath(split, b);
const aValue = (aPath + '').toLowerCase();
const bValue = (bPath + '').toLowerCase();
if (SortPipe.isNaN(aPath, bPath)) {
return aValue.localeCompare(bValue);
}
if (parseFloat(aPath) < parseFloat(bPath)) {
return -1;
}
if (parseFloat(aPath) > parseFloat(bPath)) {
return 1;
}
return 0;
}
transform(array, filter, config) {
if (this.defaultArray.length === 0) {
this.defaultArray = array;
}
if (!filter.key || filter.key === '') {
return array;
}
if (filter.order === '') {
return this.defaultArray;
}
if (filter.order === 'asc') {
return this.sortAsc(array, filter, config);
}
return this.sortDesc(array, filter, config);
}
sortAsc(array, filter, config) {
if (config && config.groupRows) {
return array.map((arr) => arr.sort((a, b) => SortPipe.compare(a, b, filter.key)));
}
return array.sort((a, b) => SortPipe.compare(a, b, filter.key));
}
sortDesc(array, filter, config) {
if (config && config.groupRows) {
return array.map((arr) => arr.sort((a, b) => SortPipe.compare(b, a, filter.key)));
}
return array.sort((a, b) => SortPipe.compare(b, a, filter.key));
}
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.11", ngImport: i0, type: SortPipe, deps: [], target: i0.ɵɵFactoryTarget.Pipe }); }
static { this.ɵpipe = i0.ɵɵngDeclarePipe({ minVersion: "14.0.0", version: "17.3.11", ngImport: i0, type: SortPipe, name: "sort" }); }
}
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.11", ngImport: i0, type: SortPipe, decorators: [{
type: Pipe,
args: [{
name: 'sort',
}]
}] });
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic29ydC5waXBlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvbmd4LWVhc3ktdGFibGUvc3JjL2xpYi9waXBlcy9zb3J0LnBpcGUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLElBQUksRUFBaUIsTUFBTSxlQUFlLENBQUM7QUFDcEQsT0FBTyxFQUFFLGNBQWMsRUFBRSxNQUFNLDZCQUE2QixDQUFDOztBQU03RCxNQUFNLE9BQU8sUUFBUTtJQUhyQjtRQUlVLGlCQUFZLEdBQVUsRUFBRSxDQUFDO0tBc0RsQztJQXBEUyxNQUFNLENBQUMsS0FBSyxDQUFDLEVBQU8sRUFBRSxFQUFPO1FBQ25DLE9BQU8sS0FBSyxDQUFDLFVBQVUsQ0FBQyxFQUFFLENBQUMsQ0FBQyxJQUFJLENBQUMsUUFBUSxDQUFDLEVBQUUsQ0FBQyxJQUFJLEtBQUssQ0FBQyxVQUFVLENBQUMsRUFBRSxDQUFDLENBQUMsSUFBSSxDQUFDLFFBQVEsQ0FBQyxFQUFFLENBQUMsQ0FBQztJQUMxRixDQUFDO0lBRU8sTUFBTSxDQUFDLE9BQU8sQ0FBQyxDQUFRLEVBQUUsQ0FBUSxFQUFFLEdBQVc7UUFDcEQsTUFBTSxLQUFLLEdBQUcsR0FBRyxDQUFDLEtBQUssQ0FBQyxHQUFHLENBQUMsQ0FBQztRQUM3QixNQUFNLEtBQUssR0FBRyxjQUFjLENBQUMsT0FBTyxDQUFDLEtBQUssRUFBRSxDQUFDLENBQUMsQ0FBQztRQUMvQyxNQUFNLEtBQUssR0FBRyxjQUFjLENBQUMsT0FBTyxDQUFDLEtBQUssRUFBRSxDQUFDLENBQUMsQ0FBQztRQUMvQyxNQUFNLE1BQU0sR0FBRyxDQUFDLEtBQUssR0FBRyxFQUFFLENBQUMsQ0FBQyxXQUFXLEVBQUUsQ0FBQztRQUMxQyxNQUFNLE1BQU0sR0FBRyxDQUFDLEtBQUssR0FBRyxFQUFFLENBQUMsQ0FBQyxXQUFXLEVBQUUsQ0FBQztRQUMxQyxJQUFJLFFBQVEsQ0FBQyxLQUFLLENB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ZW50IjpbImltcG9ydCB7IFBpcGUsIFBpcGVUcmFuc2Zvcm0gfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IEZpbHRlcnNTZXJ2aWNlIH0gZnJvbSAnLi4vc2VydmljZXMvZmlsdGVycy5zZXJ2aWNlJztcbmltcG9ydCB7IENvbmZpZyB9IGZyb20gJy4uJztcblxuQFBpcGUoe1xuICBuYW1lOiAnc29ydCcsXG59KVxuZXhwb3J0IGNsYXNzIFNvcnRQaXBlIGltcGxlbWVudHMgUGlwZVRyYW5zZm9ybSB7XG4gIHByaXZhdGUgZGVmYXVsdEFycmF5OiBhbnlbXSA9IFtdO1xuXG4gIHByaXZhdGUgc3RhdGljIGlzTmFOKGFWOiBhbnksIGJWOiBhbnkpOiBib29sZWFuIHtcbiAgICByZXR1cm4gaXNOYU4ocGFyc2VGbG9hdChhVikpIHx8ICFpc0Zpbml0ZShhVikgfHwgaXNOYU4ocGFyc2VGbG9hdChiVikpIHx8ICFpc0Zpbml0ZShiVik7XG4gIH1cblxuICBwcml2YXRlIHN0YXRpYyBjb21wYXJlKGE6IGFueVtdLCBiOiBhbnlbXSwga2V5OiBzdHJpbmcpOiBudW1iZXIge1xuICAgIGNvbnN0IHNwbGl0ID0ga2V5LnNwbGl0KCcuJyk7XG4gICAgY29uc3QgYVBhdGggPSBGaWx0ZXJzU2VydmljZS5nZXRQYXRoKHNwbGl0LCBhKTtcbiAgICBjb25zdCBiUGF0aCA9IEZpbHRlcnNTZXJ2aWNlLmdldFBhdGgoc3BsaXQsIGIpO1xuICAgIGNvbnN0IGFWYWx1ZSA9IChhUGF0aCArICcnKS50b0xvd2VyQ2FzZSgpO1xuICAgIGNvbnN0IGJWYWx1ZSA9IChiUGF0aCArICcnKS50b0xvd2VyQ2FzZSgpO1xuICAgIGlmIChTb3J0UGlwZS5pc05hTihhUGF0aCwgYlBhdGgpKSB7XG4gICAgICByZXR1cm4gYVZhbHVlLmxvY2FsZUNvbXBhcmUoYlZhbHVlKTtcbiAgICB9XG4gICAgaWYgKHBhcnNlRmxvYXQoYVBhdGgpIDwgcGFyc2VGbG9hdChiUGF0aCkpIHtcbiAgICAgIHJldHVybiAtMTtcbiAgICB9XG4gICAgaWYgKHBhcnNlRmxvYXQoYVBhdGgpID4gcGFyc2VGbG9hdChiUGF0aCkpIHtcbiAgICAgIHJldHVybiAxO1xuICAgIH1cblxuICAgIHJldHVybiAwO1xuICB9XG5cbiAgdHJhbnNmb3JtKGFycmF5OiBhbnlbXSwgZmlsdGVyOiB7IG9yZGVyOiBzdHJpbmc7IGtleTogc3RyaW5nIH0sIGNvbmZpZz86IENvbmZpZyk6IGFueVtdIHtcbiAgICBpZiAodGhpcy5kZWZhdWx0QXJyYXkubGVuZ3RoID09PSAwKSB7XG4gICAgICB0aGlzLmRlZmF1bHRBcnJheSA9IGFycmF5O1xuICAgIH1cbiAgICBpZiAoIWZpbHRlci5rZXkgfHwgZmlsdGVyLmtleSA9PT0gJycpIHtcbiAgICAgIHJldHVybiBhcnJheTtcbiAgICB9XG4gICAgaWYgKGZpbHRlci5vcmRlciA9PT0gJycpIHtcbiAgICAgIHJldHVybiB0aGlzLmRlZmF1bHRBcnJheTtcbiAgICB9XG4gICAgaWYgKGZpbHRlci5vcmRlciA9PT0gJ2FzYycpIHtcbiAgICAgIHJldHVybiB0aGlzLnNvcnRBc2MoYXJyYXksIGZpbHRlciwgY29uZmlnKTtcbiAgICB9XG4gICAgcmV0dXJuIHRoaXMuc29ydERlc2MoYXJyYXksIGZpbHRlciwgY29uZmlnKTtcbiAgfVxuXG4gIHByaXZhdGUgc29ydEFzYyhhcnJheTogYW55W10sIGZpbHRlcjogeyBvcmRlcjogc3RyaW5nOyBrZXk6IHN0cmluZyB9LCBjb25maWc/OiBDb25maWcpOiBhbnlbXSB7XG4gICAgaWYgKGNvbmZpZyAmJiBjb25maWcuZ3JvdXBSb3dzKSB7XG4gICAgICByZXR1cm4gYXJyYXkubWFwKChhcnIpID0+IGFyci5zb3J0KChhLCBiKSA9PiBTb3J0UGlwZS5jb21wYXJlKGEsIGIsIGZpbHRlci5rZXkpKSk7XG4gICAgfVxuICAgIHJldHVybiBhcnJheS5zb3J0KChhLCBiKSA9PiBTb3J0UGlwZS5jb21wYXJlKGEsIGIsIGZpbHRlci5rZXkpKTtcbiAgfVxuXG4gIHByaXZhdGUgc29ydERlc2MoYXJyYXk6IGFueVtdLCBmaWx0ZXI6IHsgb3JkZXI6IHN0cmluZzsga2V5OiBzdHJpbmcgfSwgY29uZmlnPzogQ29uZmlnKTogYW55W10ge1xuICAgIGlmIChjb25maWcgJiYgY29uZmlnLmdyb3VwUm93cykge1xuICAgICAgcmV0dXJuIGFycmF5Lm1hcCgoYXJyKSA9PiBhcnIuc29ydCgoYSwgYikgPT4gU29ydFBpcGUuY29tcGFyZShiLCBhLCBmaWx0ZXIua2V5KSkpO1xuICAgIH1cbiAgICByZXR1cm4gYXJyYXkuc29ydCgoYSwgYikgPT4gU29ydFBpcGUuY29tcGFyZShiLCBhLCBmaWx0ZXIua2V5KSk7XG4gIH1cbn1cbiJdfQ==