UNPKG

@hxui/angular

Version:

This README includes the steps that are necessary to import the HxUi-angular into a project or to contribute with development.

84 lines (83 loc) 7.96 kB
/** * @fileoverview added by tsickle * @suppress {checkTypes} checked by tsc */ import { Injectable } from '@angular/core'; import sortBy from 'array-sort-by'; import { TabularColumnTypes } from './tabular-column.interface'; /** @enum {number} */ const 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; } export class TabularSortByService { /** * @param {?=} rows * @param {?=} sortProps * @return {?} */ sortBy(rows = [], 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, item => { const /** @type {?} */ sort = []; for (const /** @type {?} */ prop of sortProps) { 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]); } } return sort; }); } } TabularSortByService.decorators = [ { type: Injectable }, ]; 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,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidGFidWxhci1zb3J0LWJ5LnNlcnZpY2UuanMiLCJzb3VyY2VSb290Ijoibmc6Ly9AaHh1aS9hbmd1bGFyLyIsInNvdXJjZXMiOlsibGliL3RhYnVsYXIvdGFidWxhci1zb3J0LWJ5LnNlcnZpY2UudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7OztBQUFBLE9BQU8sRUFBQyxVQUFVLEVBQUMsTUFBTSxlQUFlLENBQUM7QUFFekMsT0FBTyxNQUFNLE1BQU0sZUFBZSxDQUFDO0FBQ25DLE9BQU8sRUFBQyxrQkFBa0IsRUFBQyxNQUFNLDRCQUE0QixDQUFDOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztBQWU5RCxNQUFNOzs7Ozs7SUFHRyxNQUFNLENBQUMsT0FBc0IsRUFBRSxFQUFFLFlBQStCLEVBQUU7Ozs7Ozs7Ozs7OztRQWF2RSxNQUFNLENBQUMsSUFBSSxFQUFFLElBQUksQ0FBQyxFQUFFO1lBQ2xCLHVCQUFNLElBQUksR0FBRyxFQUFFLENBQUM7WUFDaEIsR0FBRyxDQUFDLENBQUMsdUJBQU0sSUFBSSxJQUFJLFNBQVMsQ0FBQyxDQUFDLENBQUM7Z0JBQzdCLEVBQUUsQ0FBQyxDQUFDLElBQUksQ0FBQyxJQUFJLEtBQUssa0JBQWtCLENBQUMsTUFBTSxJQUFJLElBQUksQ0FBQyxTQUFTLEtBQUssZUFBZSxDQUFDLFVBQVUsQ0FBQyxDQUFDLENBQUM7b0JBQzdGLElBQUksQ0FBQyxJQUFJLENBQUMsT0FBTyxHQUFHLElBQUksQ0FBQyxJQUFJLENBQUMsUUFBUSxDQUFDLENBQUMsQ0FBQztpQkFDMUM7Z0JBQUMsSUFBSSxDQUFDLEVBQUUsQ0FBQyxDQUFDLElBQUksQ0FBQyxJQUFJLEtBQUssa0JBQWtCLENBQUMsTUFBTSxJQUFJLElBQUksQ0FBQyxTQUFTLEtBQUssZUFBZSxDQUFDLFVBQVUsQ0FBQyxDQUFDLENBQUM7b0JBQ3BHLElBQUksQ0FBQyxJQUFJLENBQUMsQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLFFBQVEsQ0FBQyxDQUFDLENBQUM7aUJBQ2pDO2dCQUFDLElBQUksQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxJQUFJLEtBQUssa0JBQWtCLENBQUMsSUFBSSxJQUFJLElBQUksQ0FBQyxJQUFJLEtBQUssa0JBQWtCLENBQUMsUUFBUSxDQUFDLElBQUksSUFBSSxDQUFDLFNBQVMsS0FBSyxlQUFlLENBQUMsVUFBVSxDQUFDLENBQUMsQ0FBQztvQkFDakosSUFBSSxDQUFDLElBQUksQ0FBQyxDQUFDLElBQUksSUFBSSxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsUUFBUSxDQUFDLENBQUMsQ0FBQyxDQUFDO2lCQUMzQztnQkFBQyxJQUFJLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsSUFBSSxLQUFLLGtCQUFrQixDQUFDLElBQUksSUFBSSxJQUFJLENBQUMsSUFBSSxLQUFLLGtCQUFrQixDQUFDLFFBQVEsQ0FBQyxJQUFJLElBQUksQ0FBQyxTQUFTLEtBQUssZUFBZSxDQUFDLFNBQVMsQ0FBQyxDQUFDLENBQUM7b0JBQ2hKLElBQUksQ0FBQyxJQUFJLENBQUMsSUFBSSxJQUFJLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxRQUFRLENBQUMsQ0FBQyxDQUFDLENBQUM7aUJBQzFDO2dCQUFDLElBQUksQ0FBQyxDQUFDO29CQUNOLElBQUksQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxRQUFRLENBQUMsQ0FBQyxDQUFDO2lCQUNoQzthQUNGO1lBQ0YsTUFBTSxDQUFDLElBQUksQ0FBQztTQUNaLENBQUMsQ0FBQzs7OztZQWpDTixVQUFVIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtJbmplY3RhYmxlfSBmcm9tICdAYW5ndWxhci9jb3JlJztcclxuaW1wb3J0IHtJVGFidWxhclJvd30gZnJvbSAnLi90YWJ1bGFyLXJvdy5pbnRlcmZhY2UnO1xyXG5pbXBvcnQgc29ydEJ5IGZyb20gJ2FycmF5LXNvcnQtYnknO1xyXG5pbXBvcnQge1RhYnVsYXJDb2x1bW5UeXBlc30gZnJvbSAnLi90YWJ1bGFyLWNvbHVtbi5pbnRlcmZhY2UnO1xyXG5cclxuZXhwb3J0IGVudW0gU29ydEJ5RGlyZWN0aW9uIHtcclxuICAgIEFzY2VuZGluZyxcclxuICAgIERlc2NlbmRpbmcsXHJcbiAgICBOb25lXHJcbn1cclxuXHJcbmV4cG9ydCBpbnRlcmZhY2UgSVNvcnRCeVByb3BlcnR5IHtcclxuICBwcm9wZXJ0eTogc3RyaW5nO1xyXG4gIGRpcmVjdGlvbjogU29ydEJ5RGlyZWN0aW9uO1xyXG4gIHR5cGU6IFRhYnVsYXJDb2x1bW5UeXBlcztcclxufVxyXG5cclxuQEluamVjdGFibGUoKVxyXG5leHBvcnQgY2xhc3MgVGFidWxhclNvcnRCeVNlcnZpY2Uge1xyXG5cclxuXHJcbiAgcHVibGljIHNvcnRCeShyb3dzOiBJVGFidWxhclJvd1tdID0gW10sIHNvcnRQcm9wczogSVNvcnRCeVByb3BlcnR5W10gPSBbXSkge1xyXG5cclxuICAgIC8qKlxyXG4gICAgICogQGV4YW1wbGUgU29ydGluZ1xyXG4gICAgICogU29ydGluZyBBU0MgYnkgQG5hbWUsIGFmdGVyIERFU0MgYnkgQGFnZSwgYWZ0ZXIgQVNDIGJ5IEBpZFxyXG4gICAgICogbGV0IGFyciA9IFtcclxuICAgICAqIHsgaWQ6IDksIGFnZTogMjYsIG5hbWU6ICdwZWRybycgfSxcclxuICAgICAqIHsgaWQ6IDYsIGFnZTogMjEsIG5hbWU6ICdQZWRybycgfSxcclxuICAgICAqIHsgaWQ6IDcsIGFnZTogMjYsIG5hbWU6ICdNYXJpYScgfSxcclxuICAgICAqIHsgaWQ6IDIsIGFnZTogMjYsIG5hbWU6ICdtYXLDrWEnIH1cclxuICAgICAqIF07XHJcbiAgICAgKiBzb3J0QnkoYXJyLCBpdGVtID0+IFtpdGVtLm5hbWUsIC1pdGVtLmFnZSwgaXRlbS5pZF0pO1xyXG4gICAgICovXHJcbiAgICBzb3J0Qnkocm93cywgaXRlbSA9PiB7XHJcbiAgICAgIGNvbnN0IHNvcnQgPSBbXTtcclxuICAgICAgZm9yIChjb25zdCBwcm9wIG9mIHNvcnRQcm9wcykge1xyXG4gICAgICAgIGlmIChwcm9wLnR5cGUgPT09IFRhYnVsYXJDb2x1bW5UeXBlcy5TdHJpbmcgJiYgcHJvcC5kaXJlY3Rpb24gPT09IFNvcnRCeURpcmVjdGlvbi5EZXNjZW5kaW5nKSB7XHJcbiAgICAgICAgICBzb3J0LnB1c2goJ2Rlc2M6JyArIGl0ZW1bcHJvcC5wcm9wZXJ0eV0pO1xyXG4gICAgICAgIH0gZWxzZSBpZiAocHJvcC50eXBlID09PSBUYWJ1bGFyQ29sdW1uVHlwZXMuTnVtYmVyICYmIHByb3AuZGlyZWN0aW9uID09PSBTb3J0QnlEaXJlY3Rpb24uRGVzY2VuZGluZykge1xyXG4gICAgICAgICAgc29ydC5wdXNoKC1pdGVtW3Byb3AucHJvcGVydHldKTtcclxuICAgICAgICB9IGVsc2UgaWYgKChwcm9wLnR5cGUgPT09IFRhYnVsYXJDb2x1bW5UeXBlcy5EYXRlIHx8IHByb3AudHlwZSA9PT0gVGFidWxhckNvbHVtblR5cGVzLkRhdGVUaW1lKSAmJiBwcm9wLmRpcmVjdGlvbiA9PT0gU29ydEJ5RGlyZWN0aW9uLkRlc2NlbmRpbmcpIHtcclxuICAgICAgICAgIHNvcnQucHVzaCgtbmV3IERhdGUoaXRlbVtwcm9wLnByb3BlcnR5XSkpO1xyXG4gICAgICAgIH0gZWxzZSBpZiAoKHByb3AudHlwZSA9PT0gVGFidWxhckNvbHVtblR5cGVzLkRhdGUgfHwgcHJvcC50eXBlID09PSBUYWJ1bGFyQ29sdW1uVHlwZXMuRGF0ZVRpbWUpICYmIHByb3AuZGlyZWN0aW9uID09PSBTb3J0QnlEaXJlY3Rpb24uQXNjZW5kaW5nKSB7XHJcbiAgICAgICAgICBzb3J0LnB1c2gobmV3IERhdGUoaXRlbVtwcm9wLnByb3BlcnR5XSkpO1xyXG4gICAgICAgIH0gZWxzZSB7XHJcbiAgICAgICAgICBzb3J0LnB1c2goaXRlbVtwcm9wLnByb3BlcnR5XSk7XHJcbiAgICAgICAgfVxyXG4gICAgICB9XHJcbiAgICAgcmV0dXJuIHNvcnQ7XHJcbiAgICB9KTtcclxuXHJcbiAgfVxyXG5cclxufVxyXG4iXX0=