ngx-easy-table
Version:
Angular easy table
141 lines • 10.1 kB
JavaScript
/**
* @fileoverview added by tsickle
* @suppress {checkTypes,constantProperty,extraRequire,missingOverride,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc
*/
import { Pipe } from '@angular/core';
import { FiltersService } from '../services/filters.service';
export class SortPipe {
constructor() {
this.defaultArray = [];
}
/**
* @private
* @param {?} aV
* @param {?} bV
* @return {?}
*/
static isNaN(aV, bV) {
return (isNaN(parseFloat(aV)) || !isFinite(aV)) || (isNaN(parseFloat(bV)) || !isFinite(bV));
}
/**
* @private
* @param {?} a
* @param {?} b
* @param {?} key
* @return {?}
*/
static compare(a, b, key) {
/** @type {?} */
const split = key.split('.');
/** @type {?} */
const aPath = FiltersService.getPath(split, a);
/** @type {?} */
const bPath = FiltersService.getPath(split, b);
/** @type {?} */
const aValue = (aPath + '').toLowerCase();
/** @type {?} */
const bValue = (bPath + '').toLowerCase();
if (SortPipe.isNaN(aPath, bPath)) {
return aValue.localeCompare(bValue);
}
else {
if (parseFloat(aPath) < parseFloat(bPath)) {
return -1;
}
if (parseFloat(aPath) > parseFloat(bPath)) {
return 1;
}
}
return 0;
}
/**
* @param {?} array
* @param {?} filter
* @param {?=} config
* @return {?}
*/
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);
}
else {
return this.sortDesc(array, filter, config);
}
}
/**
* @private
* @param {?} array
* @param {?} filter
* @param {?=} config
* @return {?}
*/
sortAsc(array, filter, config) {
if (config && config.groupRows) {
return array.map((/**
* @param {?} arr
* @return {?}
*/
(arr) => arr.sort((/**
* @param {?} a
* @param {?} b
* @return {?}
*/
(a, b) => SortPipe.compare(a, b, filter.key)))));
}
return array.sort((/**
* @param {?} a
* @param {?} b
* @return {?}
*/
(a, b) => SortPipe.compare(a, b, filter.key)));
}
/**
* @private
* @param {?} array
* @param {?} filter
* @param {?=} config
* @return {?}
*/
sortDesc(array, filter, config) {
if (config && config.groupRows) {
return array.map((/**
* @param {?} arr
* @return {?}
*/
(arr) => arr.sort((/**
* @param {?} a
* @param {?} b
* @return {?}
*/
(a, b) => SortPipe.compare(b, a, filter.key)))));
}
return array.sort((/**
* @param {?} a
* @param {?} b
* @return {?}
*/
(a, b) => SortPipe.compare(b, a, filter.key)));
}
}
SortPipe.decorators = [
{ type: Pipe, args: [{
name: 'sort',
},] }
];
if (false) {
/**
* @type {?}
* @private
*/
SortPipe.prototype.defaultArray;
}
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic29ydC5waXBlLmpzIiwic291cmNlUm9vdCI6Im5nOi8vbmd4LWVhc3ktdGFibGUvIiwic291cmNlcyI6WyJsaWIvcGlwZXMvc29ydC5waXBlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7QUFBQSxPQUFPLEVBQUUsSUFBSSxFQUFpQixNQUFNLGVBQWUsQ0FBQztBQUNwRCxPQUFPLEVBQUUsY0FBYyxFQUFFLE1BQU0sNkJBQTZCLENBQUM7QUFNN0QsTUFBTSxPQUFPLFFBQVE7SUFIckI7UUFJVSxpQkFBWSxHQUFVLEVBQUUsQ0FBQztJQXdEbkMsQ0FBQzs7Ozs7OztJQXREUyxNQUFNLENBQUMsS0FBSyxDQUFDLEVBQU8sRUFBRSxFQUFPO1FBQ25DLE9BQU8sQ0FBQyxLQUFLLENBQUMsVUFBVSxDQUFDLEVBQUUsQ0FBQyxDQUFDLElBQUksQ0FBQyxRQUFRLENBQUMsRUFBRSxDQUFDLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxVQUFVLENBQUMsRUFBRSxDQUFDLENBQUMsSUFBSSxDQUFDLFFBQVEsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDO0lBQzlGLENBQUM7Ozs7Ozs7O0lBRU8sTUFBTSxDQUFDLE9BQU8sQ0FBQyxDQUFRLEVBQUUsQ0FBUSxFQUFFLEdBQVc7O2NBQzlDLEtBQUssR0FBRyxHQUFHLENBQUMsS0FBSyxDQUFDLEdBQUcsQ0FBQzs7Y0FDdEIsS0FBSyxHQUFHLGNBQWMsQ0FBQyxPQUFPLENBQUMsS0FBSyxFQUFFLENBQUMsQ0FBQzs7Y0FDeEMsS0FBSyxHQUFHLGNBQWMsQ0FBQyxPQUFPLENBQUMsS0FBSyxFQUFFLENBQUMsQ0FBQzs7Y0FDeEMsTUFBTSxHQUFHLENBQUMsS0FBSyxHQUFHLEVBQUUsQ0FBQyxDQUFDLFdBQVcsRUFBRTs7Y0FDbkMsTUFBTSxHQUFHLENBQUMsS0FBSyxHQUFHLEVBQUUsQ0FBQyxDQUFDLFdBQVcsRUFBRTtRQUN6QyxJQUFJLFFBQVEsQ0FBQyxLQUFLLENBQUMsS0FBSyxFQUFFLEtBQUssQ0FBQyxFQUFFO1lBQ2hDLE9BQU8sTUFBTSxDQUFDLGFBQWEsQ0FBQyxNQUFNLENBQUMsQ0FBQztTQUNyQzthQUFNO1lBQ0wsSUFBSSxVQUFVLENBQUMsS0FBSyxDQUFDLEdBQUcsVUFBVSxDQUFDLEtBQUssQ0FBQyxFQUFFO2dCQUN6QyxPQUFPLENBQUMsQ0FBQyxDQUFDO2FBQ1g7WUFDRCxJQUFJLFVBQVUsQ0FBQyxLQUFLLENBQUMsR0FBRyxVQUFVLENBQUMsS0FBSyxDQUFDLEVBQUU7Z0JBQ3pDLE9BQU8sQ0FBQyxDQUFDO2FBQ1Y7U0FDRjtRQUVELE9BQU8sQ0FBQyxDQUFDO0lBQ1gsQ0FBQzs7Ozs7OztJQUVELFNBQVMsQ0FBQyxLQUFZLEVBQUUsTUFBc0MsRUFBRSxNQUFlO1FBQzdFLElBQUksSUFBSSxDQUFDLFlBQVksQ0FBQyxNQUFNLEtBQUssQ0FBQyxFQUFFO1lBQ2xDLElBQUksQ0FBQyxZQUFZLEdBQUcsS0FBSyxDQUFDO1NBQzNCO1FBQ0QsSUFBSSxDQUFDLE1BQU0sQ0FBQyxHQUFHLElBQUksTUFBTSxDQUFDLEdBQUcsS0FBSyxFQUFFLEVBQUU7WUFDcEMsT0FBTyxLQUFLLENBQUM7U0FDZDtRQUNELElBQUksTUFBTSxDQUFDLEtBQUssS0FBSyxFQUFFLEVBQUU7WUFDdkIsT0FBTyxJQUFJLENBQUMsWUFBWSxDQUFDO1NBQzFCO1FBQ0QsSUFBSSxNQUFNLENBQUMsS0FBSyxLQUFLLEtBQUssRUFBRTtZQUMxQixPQUFPLElBQUksQ0FBQyxPQUFPLENBQUMsS0FBSyxFQUFFLE1BQU0sRUFBRSxNQUFNLENBQUMsQ0FBQztTQUM1QzthQUFNO1lBQ0wsT0FBTyxJQUFJLENBQUMsUUFBUSxDQUFDLEtBQUssRUFBRSxNQUFNLEVBQUUsTUFBTSxDQUFDLENBQUM7U0FDN0M7SUFDSCxDQUFDOzs7Ozs7OztJQUVPLE9BQU8sQ0FBQyxLQUFZLEVBQUUsTUFBc0MsRUFBRSxNQUFlO1FBQ25GLElBQUksTUFBTSxJQUFJLE1BQU0sQ0FBQyxTQUFTLEVBQUU7WUFDOUIsT0FBTyxLQUFLLENBQUMsR0FBRzs7OztZQUFDLENBQUMsR0FBRyxFQUFFLEVBQUUsQ0FBQyxHQUFHLENBQUMsSUFBSTs7Ozs7WUFBQyxDQUFDLENBQUMsRUFBRSxDQUFDLEVBQUUsRUFBRSxDQUFDLFFBQVEsQ0FBQyxPQUFPLENBQUMsQ0FBQyxFQUFFLENBQUMsRUFBRSxNQUFNLENBQUMsR0FBRyxDQUFDLEVBQUMsRUFBQyxDQUFDO1NBQ25GO1FBQ0QsT0FBTyxLQUFLLENBQUMsSUFBSTs7Ozs7UUFBQyxDQUFDLENBQUMsRUFBRSxDQUFDLEVBQUUsRUFBRSxDQUFDLFFBQVEsQ0FBQyxPQUFPLENBQUMsQ0FBQyxFQUFFLENBQUMsRUFBRSxNQUFNLENBQUMsR0FBRyxDQUFDLEVBQUMsQ0FBQztJQUNsRSxDQUFDOzs7Ozs7OztJQUVPLFFBQVEsQ0FBQyxLQUFZLEVBQUUsTUFBc0MsRUFBRSxNQUFlO1FBQ3BGLElBQUksTUFBTSxJQUFJLE1BQU0sQ0FBQyxTQUFTLEVBQUU7WUFDOUIsT0FBTyxLQUFLLENBQUMsR0FBRzs7OztZQUFDLENBQUMsR0FBRyxFQUFFLEVBQUUsQ0FBQyxHQUFHLENBQUMsSUFBSTs7Ozs7WUFBQyxDQUFDLENBQUMsRUFBRSxDQUFDLEVBQUUsRUFBRSxDQUFDLFFBQVEsQ0FBQyxPQUFPLENBQUMsQ0FBQyxFQUFFLENBQUMsRUFBRSxNQUFNLENBQUMsR0FBRyxDQUFDLEVBQUMsRUFBQyxDQUFDO1NBQ25GO1FBQ0QsT0FBTyxLQUFLLENBQUMsSUFBSTs7Ozs7UUFBQyxDQUFDLENBQUMsRUFBRSxDQUFDLEVBQUUsRUFBRSxDQUFDLFFBQVEsQ0FBQyxPQUFPLENBQUMsQ0FBQyxFQUFFLENBQUMsRUFBRSxNQUFNLENBQUMsR0FBRyxDQUFDLEVBQUMsQ0FBQztJQUNsRSxDQUFDOzs7WUEzREYsSUFBSSxTQUFDO2dCQUNKLElBQUksRUFBRSxNQUFNO2FBQ2I7Ozs7Ozs7SUFFQyxnQ0FBaUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBQaXBlLCBQaXBlVHJhbnNmb3JtIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBGaWx0ZXJzU2VydmljZSB9IGZyb20gJy4uL3NlcnZpY2VzL2ZpbHRlcnMuc2VydmljZSc7XG5pbXBvcnQgeyBDb25maWcgfSBmcm9tICcuLic7XG5cbkBQaXBlKHtcbiAgbmFtZTogJ3NvcnQnLFxufSlcbmV4cG9ydCBjbGFzcyBTb3J0UGlwZSBpbXBsZW1lbnRzIFBpcGVUcmFuc2Zvcm0ge1xuICBwcml2YXRlIGRlZmF1bHRBcnJheTogYW55W10gPSBbXTtcblxuICBwcml2YXRlIHN0YXRpYyBpc05hTihhVjogYW55LCBiVjogYW55KTogYm9vbGVhbiB7XG4gICAgcmV0dXJuIChpc05hTihwYXJzZUZsb2F0KGFWKSkgfHwgIWlzRmluaXRlKGFWKSkgfHwgKGlzTmFOKHBhcnNlRmxvYXQoYlYpKSB8fCAhaXNGaW5pdGUoYlYpKTtcbiAgfVxuXG4gIHByaXZhdGUgc3RhdGljIGNvbXBhcmUoYTogYW55W10sIGI6IGFueVtdLCBrZXk6IHN0cmluZyk6IG51bWJlciB7XG4gICAgY29uc3Qgc3BsaXQgPSBrZXkuc3BsaXQoJy4nKTtcbiAgICBjb25zdCBhUGF0aCA9IEZpbHRlcnNTZXJ2aWNlLmdldFBhdGgoc3BsaXQsIGEpO1xuICAgIGNvbnN0IGJQYXRoID0gRmlsdGVyc1NlcnZpY2UuZ2V0UGF0aChzcGxpdCwgYik7XG4gICAgY29uc3QgYVZhbHVlID0gKGFQYXRoICsgJycpLnRvTG93ZXJDYXNlKCk7XG4gICAgY29uc3QgYlZhbHVlID0gKGJQYXRoICsgJycpLnRvTG93ZXJDYXNlKCk7XG4gICAgaWYgKFNvcnRQaXBlLmlzTmFOKGFQYXRoLCBiUGF0aCkpIHtcbiAgICAgIHJldHVybiBhVmFsdWUubG9jYWxlQ29tcGFyZShiVmFsdWUpO1xuICAgIH0gZWxzZSB7XG4gICAgICBpZiAocGFyc2VGbG9hdChhUGF0aCkgPCBwYXJzZUZsb2F0KGJQYXRoKSkge1xuICAgICAgICByZXR1cm4gLTE7XG4gICAgICB9XG4gICAgICBpZiAocGFyc2VGbG9hdChhUGF0aCkgPiBwYXJzZUZsb2F0KGJQYXRoKSkge1xuICAgICAgICByZXR1cm4gMTtcbiAgICAgIH1cbiAgICB9XG5cbiAgICByZXR1cm4gMDtcbiAgfVxuXG4gIHRyYW5zZm9ybShhcnJheTogYW55W10sIGZpbHRlcjogeyBvcmRlcjogc3RyaW5nLCBrZXk6IHN0cmluZyB9LCBjb25maWc/OiBDb25maWcpOiBhbnlbXSB7XG4gICAgaWYgKHRoaXMuZGVmYXVsdEFycmF5Lmxlbmd0aCA9PT0gMCkge1xuICAgICAgdGhpcy5kZWZhdWx0QXJyYXkgPSBhcnJheTtcbiAgICB9XG4gICAgaWYgKCFmaWx0ZXIua2V5IHx8IGZpbHRlci5rZXkgPT09ICcnKSB7XG4gICAgICByZXR1cm4gYXJyYXk7XG4gICAgfVxuICAgIGlmIChmaWx0ZXIub3JkZXIgPT09ICcnKSB7XG4gICAgICByZXR1cm4gdGhpcy5kZWZhdWx0QXJyYXk7XG4gICAgfVxuICAgIGlmIChmaWx0ZXIub3JkZXIgPT09ICdhc2MnKSB7XG4gICAgICByZXR1cm4gdGhpcy5zb3J0QXNjKGFycmF5LCBmaWx0ZXIsIGNvbmZpZyk7XG4gICAgfSBlbHNlIHtcbiAgICAgIHJldHVybiB0aGlzLnNvcnREZXNjKGFycmF5LCBmaWx0ZXIsIGNvbmZpZyk7XG4gICAgfVxuICB9XG5cbiAgcHJpdmF0ZSBzb3J0QXNjKGFycmF5OiBhbnlbXSwgZmlsdGVyOiB7IG9yZGVyOiBzdHJpbmcsIGtleTogc3RyaW5nIH0sIGNvbmZpZz86IENvbmZpZyk6IGFueVtdIHtcbiAgICBpZiAoY29uZmlnICYmIGNvbmZpZy5ncm91cFJvd3MpIHtcbiAgICAgIHJldHVybiBhcnJheS5tYXAoKGFycikgPT4gYXJyLnNvcnQoKGEsIGIpID0+IFNvcnRQaXBlLmNvbXBhcmUoYSwgYiwgZmlsdGVyLmtleSkpKTtcbiAgICB9XG4gICAgcmV0dXJuIGFycmF5LnNvcnQoKGEsIGIpID0+IFNvcnRQaXBlLmNvbXBhcmUoYSwgYiwgZmlsdGVyLmtleSkpO1xuICB9XG5cbiAgcHJpdmF0ZSBzb3J0RGVzYyhhcnJheTogYW55W10sIGZpbHRlcjogeyBvcmRlcjogc3RyaW5nLCBrZXk6IHN0cmluZyB9LCBjb25maWc/OiBDb25maWcpOiBhbnlbXSB7XG4gICAgaWYgKGNvbmZpZyAmJiBjb25maWcuZ3JvdXBSb3dzKSB7XG4gICAgICByZXR1cm4gYXJyYXkubWFwKChhcnIpID0+IGFyci5zb3J0KChhLCBiKSA9PiBTb3J0UGlwZS5jb21wYXJlKGIsIGEsIGZpbHRlci5rZXkpKSk7XG4gICAgfVxuICAgIHJldHVybiBhcnJheS5zb3J0KChhLCBiKSA9PiBTb3J0UGlwZS5jb21wYXJlKGIsIGEsIGZpbHRlci5rZXkpKTtcbiAgfVxufVxuIl19