UNPKG

ngx-easy-table

Version:
141 lines 10.1 kB
/** * @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