UNPKG

com.phloxui

Version:

PhloxUI Ng2+ Framework

140 lines (139 loc) 11.5 kB
/** * @fileoverview added by tsickle * @suppress {checkTypes} checked by tsc */ import { Pipe } from '@angular/core'; import { DataUtils } from '../share/utils/DataUtils'; var /** @type {?} */ NAME = "phx_sort"; var SortPipe = /** @class */ (function () { function SortPipe() { } /** * @param {?} a * @param {?} b * @return {?} */ SortPipe.prototype.compare = /** * @param {?} a * @param {?} b * @return {?} */ function (a, b) { if (a === b) { return 0; } if (a === null && b === undefined) { return 0; } if (a === undefined && b === null) { return 0; } if (a === null || a === undefined) { return -1; } if (b === null || b === undefined) { return 1; } if (typeof a !== typeof b) { // If typeof a and b are not the same, compare them by using their string values. return this.compare(a.toString(), b.toString()); } // Typeof a and b are the same. // Compare by each type separately. if (typeof a === 'number') { if (a > b) { return 1; } else { return -1; } } else if (typeof a === 'boolean') { if (a) { return 1; } else { return -1; } } else if (typeof a === 'function') { // Compare with function's return value. return this.compare(a(), b()); } else if (typeof a === 'string') { return a.localeCompare(b); } else if (Array.isArray(a)) { var /** @type {?} */ aLen = a.length; var /** @type {?} */ bLen = b.length; if (aLen === bLen) { return 0; } else if (aLen > bLen) { return 1; } else { return -1; } } else { return this.compare(JSON.stringify(a), JSON.stringify(b)); } }; /** * @param {?} value * @param {?=} field * @param {?=} ascending * @return {?} */ SortPipe.prototype.transform = /** * @param {?} value * @param {?=} field * @param {?=} ascending * @return {?} */ function (value, field, ascending) { var _this = this; if (value === null || value === undefined || !Array.isArray(value)) { return value; } if (field === null || field === undefined || typeof field !== 'string') { field = ''; } if (ascending === null || ascending === undefined || typeof ascending !== 'boolean') { ascending = true; } return value.sort(function (a, b) { var /** @type {?} */ aVal = a; var /** @type {?} */ bVal = b; if (field !== '') { aVal = DataUtils.getDataValue(field, a); bVal = DataUtils.getDataValue(field, b); } if (ascending) { return _this.compare(aVal, bVal); } else { return -_this.compare(aVal, bVal); } }); }; SortPipe.decorators = [ { type: Pipe, args: [{ name: NAME, pure: false },] }, ]; return SortPipe; }()); export { SortPipe }; function SortPipe_tsickle_Closure_declarations() { /** @type {!Array<{type: !Function, args: (undefined|!Array<?>)}>} */ SortPipe.decorators; /** * @nocollapse * @type {function(): !Array<(null|{type: ?, decorators: (undefined|!Array<{type: !Function, args: (undefined|!Array<?>)}>)})>} */ SortPipe.ctorParameters; } //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiU29ydFBpcGUucGlwZS5qcyIsInNvdXJjZVJvb3QiOiJuZzovL2NvbS5waGxveHVpLyIsInNvdXJjZXMiOlsibGliL3BpcGUvU29ydFBpcGUucGlwZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7O0FBQUEsT0FBTyxFQUFFLElBQUksRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUNyQyxPQUFPLEVBQUUsU0FBUyxFQUFFLE1BQU0sMEJBQTBCLENBQUM7QUFFckQscUJBQU0sSUFBSSxHQUFXLFVBQVUsQ0FBQzs7Ozs7Ozs7O0lBUXRCLDBCQUFPOzs7OztjQUFDLENBQU0sRUFBRSxDQUFNO1FBQzVCLEVBQUUsQ0FBQyxDQUFDLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQyxDQUFDO1lBQ1osTUFBTSxDQUFDLENBQUMsQ0FBQztTQUNWO1FBQ0QsRUFBRSxDQUFDLENBQUMsQ0FBQyxLQUFLLElBQUksSUFBSSxDQUFDLEtBQUssU0FBUyxDQUFDLENBQUMsQ0FBQztZQUNsQyxNQUFNLENBQUMsQ0FBQyxDQUFDO1NBQ1Y7UUFDRCxFQUFFLENBQUMsQ0FBQyxDQUFDLEtBQUssU0FBUyxJQUFJLENBQUMsS0FBSyxJQUFJLENBQUMsQ0FBQyxDQUFDO1lBQ2xDLE1BQU0sQ0FBQyxDQUFDLENBQUM7U0FDVjtRQUNELEVBQUUsQ0FBQyxDQUFDLENBQUMsS0FBSyxJQUFJLElBQUksQ0FBQyxLQUFLLFNBQVMsQ0FBQyxDQUFDLENBQUM7WUFDbEMsTUFBTSxDQUFDLENBQUMsQ0FBQyxDQUFDO1NBQ1g7UUFDRCxFQUFFLENBQUMsQ0FBQyxDQUFDLEtBQUssSUFBSSxJQUFJLENBQUMsS0FBSyxTQUFTLENBQUMsQ0FBQyxDQUFDO1lBQ2xDLE1BQU0sQ0FBQyxDQUFDLENBQUM7U0FDVjtRQUVELEVBQUUsQ0FBQyxDQUFDLE9BQU8sQ0FBQyxLQUFLLE9BQU8sQ0FBQyxDQUFDLENBQUMsQ0FBQzs7WUFFMUIsTUFBTSxDQUFDLElBQUksQ0FBQyxPQUFPLENBQUMsQ0FBQyxDQUFDLFFBQVEsRUFBRSxFQUFFLENBQUMsQ0FBQyxRQUFRLEVBQUUsQ0FBQyxDQUFDO1NBQ2pEOzs7UUFJRCxFQUFFLENBQUMsQ0FBQyxPQUFPLENBQUMsS0FBSyxRQUFRLENBQUMsQ0FBQyxDQUFDO1lBQzFCLEVBQUUsQ0FBQyxDQUFDLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQyxDQUFDO2dCQUNWLE1BQU0sQ0FBQyxDQUFDLENBQUM7YUFDVjtZQUFDLElBQUksQ0FBQyxDQUFDO2dCQUNOLE1BQU0sQ0FBQyxDQUFDLENBQUMsQ0FBQzthQUNYO1NBQ0Y7UUFBQyxJQUFJLENBQUMsRUFBRSxDQUFDLENBQUMsT0FBTyxDQUFDLEtBQUssU0FBUyxDQUFDLENBQUMsQ0FBQztZQUNsQyxFQUFFLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDO2dCQUNOLE1BQU0sQ0FBQyxDQUFDLENBQUM7YUFDVjtZQUFDLElBQUksQ0FBQyxDQUFDO2dCQUNOLE1BQU0sQ0FBQyxDQUFDLENBQUMsQ0FBQzthQUNYO1NBQ0Y7UUFBQyxJQUFJLENBQUMsRUFBRSxDQUFDLENBQUMsT0FBTyxDQUFDLEtBQUssVUFBVSxDQUFDLENBQUMsQ0FBQzs7WUFFbkMsTUFBTSxDQUFDLElBQUksQ0FBQyxPQUFPLENBQUMsQ0FBQyxFQUFFLEVBQUUsQ0FBQyxFQUFFLENBQUMsQ0FBQztTQUMvQjtRQUFDLElBQUksQ0FBQyxFQUFFLENBQUMsQ0FBQyxPQUFPLENBQUMsS0FBSyxRQUFRLENBQUMsQ0FBQyxDQUFDO1lBQ2pDLE1BQU0sQ0FBQyxDQUFDLENBQUMsYUFBYSxDQUFDLENBQUMsQ0FBQyxDQUFDO1NBQzNCO1FBQUMsSUFBSSxDQUFDLEVBQUUsQ0FBQyxDQUFDLEtBQUssQ0FBQyxPQUFPLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDO1lBQzVCLHFCQUFJLElBQUksR0FBVyxDQUFDLENBQUMsTUFBTSxDQUFDO1lBQzVCLHFCQUFJLElBQUksR0FBVyxDQUFDLENBQUMsTUFBTSxDQUFDO1lBRTVCLEVBQUUsQ0FBQyxDQUFDLElBQUksS0FBSyxJQUFJLENBQUMsQ0FBQyxDQUFDO2dCQUNsQixNQUFNLENBQUMsQ0FBQyxDQUFDO2FBQ1Y7WUFBQyxJQUFJLENBQUMsRUFBRSxDQUFDLENBQUMsSUFBSSxHQUFHLElBQUksQ0FBQyxDQUFDLENBQUM7Z0JBQ3ZCLE1BQU0sQ0FBQyxDQUFDLENBQUM7YUFDVjtZQUFDLElBQUksQ0FBQyxDQUFDO2dCQUNOLE1BQU0sQ0FBQyxDQUFDLENBQUMsQ0FBQzthQUNYO1NBQ0Y7UUFBQyxJQUFJLENBQUMsQ0FBQztZQUNOLE1BQU0sQ0FBQyxJQUFJLENBQUMsT0FBTyxDQUFDLElBQUksQ0FBQyxTQUFTLENBQUMsQ0FBQyxDQUFDLEVBQUUsSUFBSSxDQUFDLFNBQVMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDO1NBQzNEOzs7Ozs7OztJQUdJLDRCQUFTOzs7Ozs7Y0FBQyxLQUFVLEVBQUUsS0FBYyxFQUFFLFNBQW1COztRQUM5RCxFQUFFLENBQUMsQ0FBQyxLQUFLLEtBQUssSUFBSSxJQUFJLEtBQUssS0FBSyxTQUFTLElBQUksQ0FBQyxLQUFLLENBQUMsT0FBTyxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUMsQ0FBQztZQUNuRSxNQUFNLENBQUMsS0FBSyxDQUFDO1NBQ2Q7UUFDRCxFQUFFLENBQUMsQ0FBQyxLQUFLLEtBQUssSUFBSSxJQUFJLEtBQUssS0FBSyxTQUFTLElBQUksT0FBTyxLQUFLLEtBQUssUUFBUSxDQUFDLENBQUMsQ0FBQztZQUN2RSxLQUFLLEdBQUcsRUFBRSxDQUFDO1NBQ1o7UUFDRCxFQUFFLENBQUMsQ0FBQyxTQUFTLEtBQUssSUFBSSxJQUFJLFNBQVMsS0FBSyxTQUFTLElBQUksT0FBTyxTQUFTLEtBQUssU0FBUyxDQUFDLENBQUMsQ0FBQztZQUNwRixTQUFTLEdBQUcsSUFBSSxDQUFDO1NBQ2xCO1FBRUQsTUFBTSxDQUFDLEtBQUssQ0FBQyxJQUFJLENBQUMsVUFBQyxDQUFDLEVBQUUsQ0FBQztZQUNyQixxQkFBSSxJQUFJLEdBQVEsQ0FBQyxDQUFDO1lBQ2xCLHFCQUFJLElBQUksR0FBUSxDQUFDLENBQUM7WUFFbEIsRUFBRSxDQUFDLENBQUMsS0FBSyxLQUFLLEVBQUUsQ0FBQyxDQUFDLENBQUM7Z0JBQ2pCLElBQUksR0FBRyxTQUFTLENBQUMsWUFBWSxDQUFDLEtBQUssRUFBRSxDQUFDLENBQUMsQ0FBQztnQkFDeEMsSUFBSSxHQUFHLFNBQVMsQ0FBQyxZQUFZLENBQUMsS0FBSyxFQUFFLENBQUMsQ0FBQyxDQUFDO2FBQ3pDO1lBRUQsRUFBRSxDQUFDLENBQUMsU0FBUyxDQUFDLENBQUMsQ0FBQztnQkFDZCxNQUFNLENBQUMsS0FBSSxDQUFDLE9BQU8sQ0FBQyxJQUFJLEVBQUUsSUFBSSxDQUFDLENBQUM7YUFDakM7WUFBQyxJQUFJLENBQUMsQ0FBQztnQkFDTixNQUFNLENBQUMsQ0FBQyxLQUFJLENBQUMsT0FBTyxDQUFDLElBQUksRUFBRSxJQUFJLENBQUMsQ0FBQzthQUNsQztTQUNGLENBQUMsQ0FBQzs7O2dCQXhGTixJQUFJLFNBQUM7b0JBQ0osSUFBSSxFQUFFLElBQUk7b0JBQ1YsSUFBSSxFQUFFLEtBQUs7aUJBQ1o7O21CQVJEOztTQVNhLFFBQVEiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBQaXBlIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBEYXRhVXRpbHMgfSBmcm9tICcuLi9zaGFyZS91dGlscy9EYXRhVXRpbHMnO1xuXG5jb25zdCBOQU1FOiBzdHJpbmcgPSBcInBoeF9zb3J0XCI7XG5cbkBQaXBlKHtcbiAgbmFtZTogTkFNRSxcbiAgcHVyZTogZmFsc2Vcbn0pXG5leHBvcnQgY2xhc3MgU29ydFBpcGUge1xuXG4gIHByaXZhdGUgY29tcGFyZShhOiBhbnksIGI6IGFueSk6IG51bWJlciB7XG4gICAgaWYgKGEgPT09IGIpIHtcbiAgICAgIHJldHVybiAwO1xuICAgIH1cbiAgICBpZiAoYSA9PT0gbnVsbCAmJiBiID09PSB1bmRlZmluZWQpIHtcbiAgICAgIHJldHVybiAwO1xuICAgIH1cbiAgICBpZiAoYSA9PT0gdW5kZWZpbmVkICYmIGIgPT09IG51bGwpIHtcbiAgICAgIHJldHVybiAwO1xuICAgIH1cbiAgICBpZiAoYSA9PT0gbnVsbCB8fCBhID09PSB1bmRlZmluZWQpIHtcbiAgICAgIHJldHVybiAtMTtcbiAgICB9XG4gICAgaWYgKGIgPT09IG51bGwgfHwgYiA9PT0gdW5kZWZpbmVkKSB7XG4gICAgICByZXR1cm4gMTtcbiAgICB9XG5cbiAgICBpZiAodHlwZW9mIGEgIT09IHR5cGVvZiBiKSB7XG4gICAgICAvLyBJZiB0eXBlb2YgYSBhbmQgYiBhcmUgbm90IHRoZSBzYW1lLCBjb21wYXJlIHRoZW0gYnkgdXNpbmcgdGhlaXIgc3RyaW5nIHZhbHVlcy5cbiAgICAgIHJldHVybiB0aGlzLmNvbXBhcmUoYS50b1N0cmluZygpLCBiLnRvU3RyaW5nKCkpO1xuICAgIH1cblxuICAgIC8vIFR5cGVvZiBhIGFuZCBiIGFyZSB0aGUgc2FtZS5cbiAgICAvLyBDb21wYXJlIGJ5IGVhY2ggdHlwZSBzZXBhcmF0ZWx5LlxuICAgIGlmICh0eXBlb2YgYSA9PT0gJ251bWJlcicpIHtcbiAgICAgIGlmIChhID4gYikge1xuICAgICAgICByZXR1cm4gMTtcbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIHJldHVybiAtMTtcbiAgICAgIH1cbiAgICB9IGVsc2UgaWYgKHR5cGVvZiBhID09PSAnYm9vbGVhbicpIHtcbiAgICAgIGlmIChhKSB7XG4gICAgICAgIHJldHVybiAxO1xuICAgICAgfSBlbHNlIHtcbiAgICAgICAgcmV0dXJuIC0xO1xuICAgICAgfVxuICAgIH0gZWxzZSBpZiAodHlwZW9mIGEgPT09ICdmdW5jdGlvbicpIHtcbiAgICAgIC8vIENvbXBhcmUgd2l0aCBmdW5jdGlvbidzIHJldHVybiB2YWx1ZS5cbiAgICAgIHJldHVybiB0aGlzLmNvbXBhcmUoYSgpLCBiKCkpO1xuICAgIH0gZWxzZSBpZiAodHlwZW9mIGEgPT09ICdzdHJpbmcnKSB7XG4gICAgICByZXR1cm4gYS5sb2NhbGVDb21wYXJlKGIpO1xuICAgIH0gZWxzZSBpZiAoQXJyYXkuaXNBcnJheShhKSkge1xuICAgICAgbGV0IGFMZW46IG51bWJlciA9IGEubGVuZ3RoO1xuICAgICAgbGV0IGJMZW46IG51bWJlciA9IGIubGVuZ3RoO1xuXG4gICAgICBpZiAoYUxlbiA9PT0gYkxlbikge1xuICAgICAgICByZXR1cm4gMDtcbiAgICAgIH0gZWxzZSBpZiAoYUxlbiA+IGJMZW4pIHtcbiAgICAgICAgcmV0dXJuIDE7IFxuICAgICAgfSBlbHNlIHtcbiAgICAgICAgcmV0dXJuIC0xO1xuICAgICAgfVxuICAgIH0gZWxzZSB7XG4gICAgICByZXR1cm4gdGhpcy5jb21wYXJlKEpTT04uc3RyaW5naWZ5KGEpLCBKU09OLnN0cmluZ2lmeShiKSk7XG4gICAgfVxuICB9XG5cbiAgcHVibGljIHRyYW5zZm9ybSh2YWx1ZTogYW55LCBmaWVsZD86IHN0cmluZywgYXNjZW5kaW5nPzogYm9vbGVhbik6IGFueSB7XG4gICAgaWYgKHZhbHVlID09PSBudWxsIHx8IHZhbHVlID09PSB1bmRlZmluZWQgfHwgIUFycmF5LmlzQXJyYXkodmFsdWUpKSB7XG4gICAgICByZXR1cm4gdmFsdWU7XG4gICAgfVxuICAgIGlmIChmaWVsZCA9PT0gbnVsbCB8fCBmaWVsZCA9PT0gdW5kZWZpbmVkIHx8IHR5cGVvZiBmaWVsZCAhPT0gJ3N0cmluZycpIHtcbiAgICAgIGZpZWxkID0gJyc7XG4gICAgfVxuICAgIGlmIChhc2NlbmRpbmcgPT09IG51bGwgfHwgYXNjZW5kaW5nID09PSB1bmRlZmluZWQgfHwgdHlwZW9mIGFzY2VuZGluZyAhPT0gJ2Jvb2xlYW4nKSB7XG4gICAgICBhc2NlbmRpbmcgPSB0cnVlO1xuICAgIH1cblxuICAgIHJldHVybiB2YWx1ZS5zb3J0KChhLCBiKTogbnVtYmVyID0+IHtcbiAgICAgIGxldCBhVmFsOiBhbnkgPSBhO1xuICAgICAgbGV0IGJWYWw6IGFueSA9IGI7XG5cbiAgICAgIGlmIChmaWVsZCAhPT0gJycpIHtcbiAgICAgICAgYVZhbCA9IERhdGFVdGlscy5nZXREYXRhVmFsdWUoZmllbGQsIGEpO1xuICAgICAgICBiVmFsID0gRGF0YVV0aWxzLmdldERhdGFWYWx1ZShmaWVsZCwgYik7XG4gICAgICB9XG5cbiAgICAgIGlmIChhc2NlbmRpbmcpIHtcbiAgICAgICAgcmV0dXJuIHRoaXMuY29tcGFyZShhVmFsLCBiVmFsKTtcbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIHJldHVybiAtdGhpcy5jb21wYXJlKGFWYWwsIGJWYWwpO1xuICAgICAgfVxuICAgIH0pO1xuICB9XG5cbn1cbiJdfQ==