@hxui/angular
Version:
This README includes the steps that are necessary to import the HxUi-angular into a project or to contribute with development.
107 lines (106 loc) • 9.06 kB
JavaScript
/**
* @fileoverview added by tsickle
* @suppress {checkTypes} checked by tsc
*/
import * as tslib_1 from "tslib";
import { Injectable } from '@angular/core';
import sortBy from 'array-sort-by';
import { TabularColumnTypes } from './tabular-column.interface';
/** @enum {number} */
var SortByDirection = {
Ascending: 0,
Descending: 1,
None: 2,
};
export { SortByDirection };
SortByDirection[SortByDirection.Ascending] = "Ascending";
SortByDirection[SortByDirection.Descending] = "Descending";
SortByDirection[SortByDirection.None] = "None";
/**
* @record
*/
export function ISortByProperty() { }
function ISortByProperty_tsickle_Closure_declarations() {
/** @type {?} */
ISortByProperty.prototype.property;
/** @type {?} */
ISortByProperty.prototype.direction;
/** @type {?} */
ISortByProperty.prototype.type;
}
var TabularSortByService = /** @class */ (function () {
function TabularSortByService() {
}
/**
* @param {?=} rows
* @param {?=} sortProps
* @return {?}
*/
TabularSortByService.prototype.sortBy = /**
* @param {?=} rows
* @param {?=} sortProps
* @return {?}
*/
function (rows, sortProps) {
if (rows === void 0) { rows = []; }
if (sortProps === void 0) { sortProps = []; }
/**
* @example Sorting
* Sorting ASC by @name, after DESC by @age, after ASC by @id
* let arr = [
* { id: 9, age: 26, name: 'pedro' },
* { id: 6, age: 21, name: 'Pedro' },
* { id: 7, age: 26, name: 'Maria' },
* { id: 2, age: 26, name: 'maría' }
* ];
* sortBy(arr, item => [item.name, -item.age, item.id]);
*/
sortBy(rows, function (item) {
var /** @type {?} */ sort = [];
try {
for (var sortProps_1 = tslib_1.__values(sortProps), sortProps_1_1 = sortProps_1.next(); !sortProps_1_1.done; sortProps_1_1 = sortProps_1.next()) {
var prop = sortProps_1_1.value;
if (prop.type === TabularColumnTypes.String && prop.direction === SortByDirection.Descending) {
sort.push('desc:' + item[prop.property]);
}
else if (prop.type === TabularColumnTypes.Number && prop.direction === SortByDirection.Descending) {
sort.push(-item[prop.property]);
}
else if ((prop.type === TabularColumnTypes.Date || prop.type === TabularColumnTypes.DateTime) && prop.direction === SortByDirection.Descending) {
sort.push(-new Date(item[prop.property]));
}
else if ((prop.type === TabularColumnTypes.Date || prop.type === TabularColumnTypes.DateTime) && prop.direction === SortByDirection.Ascending) {
sort.push(new Date(item[prop.property]));
}
else {
sort.push(item[prop.property]);
}
}
}
catch (e_1_1) { e_1 = { error: e_1_1 }; }
finally {
try {
if (sortProps_1_1 && !sortProps_1_1.done && (_a = sortProps_1.return)) _a.call(sortProps_1);
}
finally { if (e_1) throw e_1.error; }
}
return sort;
var e_1, _a;
});
};
TabularSortByService.decorators = [
{ type: Injectable },
];
return TabularSortByService;
}());
export { TabularSortByService };
function TabularSortByService_tsickle_Closure_declarations() {
/** @type {!Array<{type: !Function, args: (undefined|!Array<?>)}>} */
TabularSortByService.decorators;
/**
* @nocollapse
* @type {function(): !Array<(null|{type: ?, decorators: (undefined|!Array<{type: !Function, args: (undefined|!Array<?>)}>)})>}
*/
TabularSortByService.ctorParameters;
}
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidGFidWxhci1zb3J0LWJ5LnNlcnZpY2UuanMiLCJzb3VyY2VSb290Ijoibmc6Ly9AaHh1aS9hbmd1bGFyLyIsInNvdXJjZXMiOlsibGliL3RhYnVsYXIvdGFidWxhci1zb3J0LWJ5LnNlcnZpY2UudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7QUFBQSxPQUFPLEVBQUMsVUFBVSxFQUFDLE1BQU0sZUFBZSxDQUFDO0FBRXpDLE9BQU8sTUFBTSxNQUFNLGVBQWUsQ0FBQztBQUNuQyxPQUFPLEVBQUMsa0JBQWtCLEVBQUMsTUFBTSw0QkFBNEIsQ0FBQzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztJQWtCckQscUNBQU07Ozs7O2NBQUMsSUFBd0IsRUFBRSxTQUFpQztRQUEzRCxxQkFBQSxFQUFBLFNBQXdCO1FBQUUsMEJBQUEsRUFBQSxjQUFpQzs7Ozs7Ozs7Ozs7O1FBYXZFLE1BQU0sQ0FBQyxJQUFJLEVBQUUsVUFBQSxJQUFJO1lBQ2YscUJBQU0sSUFBSSxHQUFHLEVBQUUsQ0FBQzs7Z0JBQ2hCLEdBQUcsQ0FBQyxDQUFlLElBQUEsY0FBQSxpQkFBQSxTQUFTLENBQUEsb0NBQUE7b0JBQXZCLElBQU0sSUFBSSxzQkFBQTtvQkFDYixFQUFFLENBQUMsQ0FBQyxJQUFJLENBQUMsSUFBSSxLQUFLLGtCQUFrQixDQUFDLE1BQU0sSUFBSSxJQUFJLENBQUMsU0FBUyxLQUFLLGVBQWUsQ0FBQyxVQUFVLENBQUMsQ0FBQyxDQUFDO3dCQUM3RixJQUFJLENBQUMsSUFBSSxDQUFDLE9BQU8sR0FBRyxJQUFJLENBQUMsSUFBSSxDQUFDLFFBQVEsQ0FBQyxDQUFDLENBQUM7cUJBQzFDO29CQUFDLElBQUksQ0FBQyxFQUFFLENBQUMsQ0FBQyxJQUFJLENBQUMsSUFBSSxLQUFLLGtCQUFrQixDQUFDLE1BQU0sSUFBSSxJQUFJLENBQUMsU0FBUyxLQUFLLGVBQWUsQ0FBQyxVQUFVLENBQUMsQ0FBQyxDQUFDO3dCQUNwRyxJQUFJLENBQUMsSUFBSSxDQUFDLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxRQUFRLENBQUMsQ0FBQyxDQUFDO3FCQUNqQztvQkFBQyxJQUFJLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsSUFBSSxLQUFLLGtCQUFrQixDQUFDLElBQUksSUFBSSxJQUFJLENBQUMsSUFBSSxLQUFLLGtCQUFrQixDQUFDLFFBQVEsQ0FBQyxJQUFJLElBQUksQ0FBQyxTQUFTLEtBQUssZUFBZSxDQUFDLFVBQVUsQ0FBQyxDQUFDLENBQUM7d0JBQ2pKLElBQUksQ0FBQyxJQUFJLENBQUMsQ0FBQyxJQUFJLElBQUksQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLFFBQVEsQ0FBQyxDQUFDLENBQUMsQ0FBQztxQkFDM0M7b0JBQUMsSUFBSSxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLElBQUksS0FBSyxrQkFBa0IsQ0FBQyxJQUFJLElBQUksSUFBSSxDQUFDLElBQUksS0FBSyxrQkFBa0IsQ0FBQyxRQUFRLENBQUMsSUFBSSxJQUFJLENBQUMsU0FBUyxLQUFLLGVBQWUsQ0FBQyxTQUFTLENBQUMsQ0FBQyxDQUFDO3dCQUNoSixJQUFJLENBQUMsSUFBSSxDQUFDLElBQUksSUFBSSxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsUUFBUSxDQUFDLENBQUMsQ0FBQyxDQUFDO3FCQUMxQztvQkFBQyxJQUFJLENBQUMsQ0FBQzt3QkFDTixJQUFJLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsUUFBUSxDQUFDLENBQUMsQ0FBQztxQkFDaEM7aUJBQ0Y7Ozs7Ozs7OztZQUNGLE1BQU0sQ0FBQyxJQUFJLENBQUM7O1NBQ1osQ0FBQyxDQUFDOzs7Z0JBakNOLFVBQVU7OytCQWpCWDs7U0FrQmEsb0JBQW9CIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtJbmplY3RhYmxlfSBmcm9tICdAYW5ndWxhci9jb3JlJztcclxuaW1wb3J0IHtJVGFidWxhclJvd30gZnJvbSAnLi90YWJ1bGFyLXJvdy5pbnRlcmZhY2UnO1xyXG5pbXBvcnQgc29ydEJ5IGZyb20gJ2FycmF5LXNvcnQtYnknO1xyXG5pbXBvcnQge1RhYnVsYXJDb2x1bW5UeXBlc30gZnJvbSAnLi90YWJ1bGFyLWNvbHVtbi5pbnRlcmZhY2UnO1xyXG5cclxuZXhwb3J0IGVudW0gU29ydEJ5RGlyZWN0aW9uIHtcclxuICAgIEFzY2VuZGluZyxcclxuICAgIERlc2NlbmRpbmcsXHJcbiAgICBOb25lXHJcbn1cclxuXHJcbmV4cG9ydCBpbnRlcmZhY2UgSVNvcnRCeVByb3BlcnR5IHtcclxuICBwcm9wZXJ0eTogc3RyaW5nO1xyXG4gIGRpcmVjdGlvbjogU29ydEJ5RGlyZWN0aW9uO1xyXG4gIHR5cGU6IFRhYnVsYXJDb2x1bW5UeXBlcztcclxufVxyXG5cclxuQEluamVjdGFibGUoKVxyXG5leHBvcnQgY2xhc3MgVGFidWxhclNvcnRCeVNlcnZpY2Uge1xyXG5cclxuXHJcbiAgcHVibGljIHNvcnRCeShyb3dzOiBJVGFidWxhclJvd1tdID0gW10sIHNvcnRQcm9wczogSVNvcnRCeVByb3BlcnR5W10gPSBbXSkge1xyXG5cclxuICAgIC8qKlxyXG4gICAgICogQGV4YW1wbGUgU29ydGluZ1xyXG4gICAgICogU29ydGluZyBBU0MgYnkgQG5hbWUsIGFmdGVyIERFU0MgYnkgQGFnZSwgYWZ0ZXIgQVNDIGJ5IEBpZFxyXG4gICAgICogbGV0IGFyciA9IFtcclxuICAgICAqIHsgaWQ6IDksIGFnZTogMjYsIG5hbWU6ICdwZWRybycgfSxcclxuICAgICAqIHsgaWQ6IDYsIGFnZTogMjEsIG5hbWU6ICdQZWRybycgfSxcclxuICAgICAqIHsgaWQ6IDcsIGFnZTogMjYsIG5hbWU6ICdNYXJpYScgfSxcclxuICAgICAqIHsgaWQ6IDIsIGFnZTogMjYsIG5hbWU6ICdtYXLDrWEnIH1cclxuICAgICAqIF07XHJcbiAgICAgKiBzb3J0QnkoYXJyLCBpdGVtID0+IFtpdGVtLm5hbWUsIC1pdGVtLmFnZSwgaXRlbS5pZF0pO1xyXG4gICAgICovXHJcbiAgICBzb3J0Qnkocm93cywgaXRlbSA9PiB7XHJcbiAgICAgIGNvbnN0IHNvcnQgPSBbXTtcclxuICAgICAgZm9yIChjb25zdCBwcm9wIG9mIHNvcnRQcm9wcykge1xyXG4gICAgICAgIGlmIChwcm9wLnR5cGUgPT09IFRhYnVsYXJDb2x1bW5UeXBlcy5TdHJpbmcgJiYgcHJvcC5kaXJlY3Rpb24gPT09IFNvcnRCeURpcmVjdGlvbi5EZXNjZW5kaW5nKSB7XHJcbiAgICAgICAgICBzb3J0LnB1c2goJ2Rlc2M6JyArIGl0ZW1bcHJvcC5wcm9wZXJ0eV0pO1xyXG4gICAgICAgIH0gZWxzZSBpZiAocHJvcC50eXBlID09PSBUYWJ1bGFyQ29sdW1uVHlwZXMuTnVtYmVyICYmIHByb3AuZGlyZWN0aW9uID09PSBTb3J0QnlEaXJlY3Rpb24uRGVzY2VuZGluZykge1xyXG4gICAgICAgICAgc29ydC5wdXNoKC1pdGVtW3Byb3AucHJvcGVydHldKTtcclxuICAgICAgICB9IGVsc2UgaWYgKChwcm9wLnR5cGUgPT09IFRhYnVsYXJDb2x1bW5UeXBlcy5EYXRlIHx8IHByb3AudHlwZSA9PT0gVGFidWxhckNvbHVtblR5cGVzLkRhdGVUaW1lKSAmJiBwcm9wLmRpcmVjdGlvbiA9PT0gU29ydEJ5RGlyZWN0aW9uLkRlc2NlbmRpbmcpIHtcclxuICAgICAgICAgIHNvcnQucHVzaCgtbmV3IERhdGUoaXRlbVtwcm9wLnByb3BlcnR5XSkpO1xyXG4gICAgICAgIH0gZWxzZSBpZiAoKHByb3AudHlwZSA9PT0gVGFidWxhckNvbHVtblR5cGVzLkRhdGUgfHwgcHJvcC50eXBlID09PSBUYWJ1bGFyQ29sdW1uVHlwZXMuRGF0ZVRpbWUpICYmIHByb3AuZGlyZWN0aW9uID09PSBTb3J0QnlEaXJlY3Rpb24uQXNjZW5kaW5nKSB7XHJcbiAgICAgICAgICBzb3J0LnB1c2gobmV3IERhdGUoaXRlbVtwcm9wLnByb3BlcnR5XSkpO1xyXG4gICAgICAgIH0gZWxzZSB7XHJcbiAgICAgICAgICBzb3J0LnB1c2goaXRlbVtwcm9wLnByb3BlcnR5XSk7XHJcbiAgICAgICAgfVxyXG4gICAgICB9XHJcbiAgICAgcmV0dXJuIHNvcnQ7XHJcbiAgICB9KTtcclxuXHJcbiAgfVxyXG5cclxufVxyXG4iXX0=