com.phloxui
Version:
PhloxUI Ng2+ Framework
140 lines (139 loc) • 11.5 kB
JavaScript
/**
* @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==