@angular-generic-table/core
Version:
A generic table component for Angular
71 lines (70 loc) • 5.49 kB
JavaScript
/**
* @fileoverview added by tsickle
* @suppress {checkTypes} checked by tsc
*/
import { Pipe } from '@angular/core';
// unsupported: template constraints.
/**
* @template R
*/
export class GtVisiblePipe {
constructor() {
/**
* Sort by column order
*/
this.getColumnOrder = function (a, b) {
if (a.columnOrder < b.columnOrder) {
return -1;
}
if (a.columnOrder > b.columnOrder || typeof a.columnOrder === 'undefined') {
return 1;
}
return 0;
};
}
/**
* @param {?} array
* @param {?} settings
* @param {?=} refreshPipe
* @return {?}
*/
transform(array, settings, refreshPipe) {
const /** @type {?} */ visibleColumns = settings
.sort(this.getColumnOrder)
.map((setting) => {
if (setting.visible !== false && setting.enabled !== false) {
return setting.objectKey;
}
});
return array
.filter((column) => {
return visibleColumns.indexOf(column.objectKey) !== -1;
})
.sort(function (a, b) {
return visibleColumns.indexOf(a.objectKey) <
visibleColumns.indexOf(b.objectKey)
? -1
: 1;
});
}
}
GtVisiblePipe.decorators = [
{ type: Pipe, args: [{
name: 'gtVisible'
},] },
];
function GtVisiblePipe_tsickle_Closure_declarations() {
/** @type {!Array<{type: !Function, args: (undefined|!Array<?>)}>} */
GtVisiblePipe.decorators;
/**
* @nocollapse
* @type {function(): !Array<(null|{type: ?, decorators: (undefined|!Array<{type: !Function, args: (undefined|!Array<?>)}>)})>}
*/
GtVisiblePipe.ctorParameters;
/**
* Sort by column order
* @type {?}
*/
GtVisiblePipe.prototype.getColumnOrder;
}
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZ3QtdmlzaWJsZS5waXBlLmpzIiwic291cmNlUm9vdCI6Im5nOi8vQGFuZ3VsYXItZ2VuZXJpYy10YWJsZS9jb3JlLyIsInNvdXJjZXMiOlsicGlwZXMvZ3QtdmlzaWJsZS5waXBlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7QUFBQSxPQUFPLEVBQUUsSUFBSSxFQUFpQixNQUFNLGVBQWUsQ0FBQzs7Ozs7QUFRcEQsTUFBTTs7Ozs7OEJBR29CLFVBQVMsQ0FBTSxFQUFFLENBQU07WUFDL0MsRUFBRSxDQUFDLENBQUMsQ0FBQyxDQUFDLFdBQVcsR0FBRyxDQUFDLENBQUMsV0FBVyxDQUFDLENBQUMsQ0FBQztnQkFDbkMsTUFBTSxDQUFDLENBQUMsQ0FBQyxDQUFDO2FBQ1Y7WUFDRCxFQUFFLENBQUMsQ0FBQyxDQUFDLENBQUMsV0FBVyxHQUFHLENBQUMsQ0FBQyxXQUFXLElBQUksT0FBTyxDQUFDLENBQUMsV0FBVyxLQUFLLFdBQVcsQ0FBQyxDQUFDLENBQUM7Z0JBQzNFLE1BQU0sQ0FBQyxDQUFDLENBQUM7YUFDVDtZQUNELE1BQU0sQ0FBQyxDQUFDLENBQUM7U0FDVDs7Ozs7Ozs7SUFFRCxTQUFTLENBQ1IsS0FBaUIsRUFDakIsUUFBZ0MsRUFDaEMsV0FBcUI7UUFFckIsdUJBQU0sY0FBYyxHQUFHLFFBQVE7YUFDN0IsSUFBSSxDQUFDLElBQUksQ0FBQyxjQUFjLENBQUM7YUFDekIsR0FBRyxDQUFDLENBQUMsT0FBd0IsRUFBRSxFQUFFO1lBQ2pDLEVBQUUsQ0FBQyxDQUFDLE9BQU8sQ0FBQyxPQUFPLEtBQUssS0FBSyxJQUFJLE9BQU8sQ0FBQyxPQUFPLEtBQUssS0FBSyxDQUFDLENBQUMsQ0FBQztnQkFDNUQsTUFBTSxDQUFDLE9BQU8sQ0FBQyxTQUFTLENBQUM7YUFDekI7U0FDRCxDQUFDLENBQUM7UUFFSixNQUFNLENBQUMsS0FBSzthQUNWLE1BQU0sQ0FBQyxDQUFDLE1BQVcsRUFBRSxFQUFFO1lBQ3ZCLE1BQU0sQ0FBQyxjQUFjLENBQUMsT0FBTyxDQUFDLE1BQU0sQ0FBQyxTQUFTLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQztTQUN2RCxDQUFDO2FBQ0QsSUFBSSxDQUFDLFVBQVMsQ0FBQyxFQUFFLENBQUM7WUFDbEIsTUFBTSxDQUFDLGNBQWMsQ0FBQyxPQUFPLENBQUMsQ0FBQyxDQUFDLFNBQVMsQ0FBQztnQkFDekMsY0FBYyxDQUFDLE9BQU8sQ0FBQyxDQUFDLENBQUMsU0FBUyxDQUFDO2dCQUNuQyxDQUFDLENBQUMsQ0FBQyxDQUFDO2dCQUNKLENBQUMsQ0FBQyxDQUFDLENBQUM7U0FDTCxDQUFDLENBQUM7S0FDSjs7O1lBdkNELElBQUksU0FBQztnQkFDTCxJQUFJLEVBQUUsV0FBVzthQUNqQiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IFBpcGUsIFBpcGVUcmFuc2Zvcm0gfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IEd0Q29uZmlnRmllbGQgfSBmcm9tICcuLi9pbnRlcmZhY2VzL2d0LWNvbmZpZy1maWVsZCc7XG5pbXBvcnQgeyBHdENvbmZpZ1NldHRpbmcgfSBmcm9tICcuLi9pbnRlcmZhY2VzL2d0LWNvbmZpZy1zZXR0aW5nJztcbmltcG9ydCB7IEd0Um93IH0gZnJvbSAnLi4vaW50ZXJmYWNlcy9ndC1yb3cnO1xuXG5AUGlwZSh7XG5cdG5hbWU6ICdndFZpc2libGUnXG59KVxuZXhwb3J0IGNsYXNzIEd0VmlzaWJsZVBpcGU8UiBleHRlbmRzIEd0Um93PiBpbXBsZW1lbnRzIFBpcGVUcmFuc2Zvcm0ge1xuXHQvLyBUT0RPOiBtb3ZlIHRvIGhlbHBlciBmdW5jdGlvbnNcblx0LyoqIFNvcnQgYnkgY29sdW1uIG9yZGVyICovXG5cdHByaXZhdGUgZ2V0Q29sdW1uT3JkZXIgPSBmdW5jdGlvbihhOiBhbnksIGI6IGFueSkge1xuXHRcdGlmIChhLmNvbHVtbk9yZGVyIDwgYi5jb2x1bW5PcmRlcikge1xuXHRcdFx0cmV0dXJuIC0xO1xuXHRcdH1cblx0XHRpZiAoYS5jb2x1bW5PcmRlciA+IGIuY29sdW1uT3JkZXIgfHwgdHlwZW9mIGEuY29sdW1uT3JkZXIgPT09ICd1bmRlZmluZWQnKSB7XG5cdFx0XHRyZXR1cm4gMTtcblx0XHR9XG5cdFx0cmV0dXJuIDA7XG5cdH07XG5cblx0dHJhbnNmb3JtKFxuXHRcdGFycmF5OiBBcnJheTxhbnk+LFxuXHRcdHNldHRpbmdzOiBBcnJheTxHdENvbmZpZ1NldHRpbmc+LFxuXHRcdHJlZnJlc2hQaXBlPzogYm9vbGVhblxuXHQpOiBBcnJheTxHdENvbmZpZ0ZpZWxkPFIsIGFueT4+IHwgQXJyYXk8R3RDb25maWdTZXR0aW5nPiB7XG5cdFx0Y29uc3QgdmlzaWJsZUNvbHVtbnMgPSBzZXR0aW5nc1xuXHRcdFx0LnNvcnQodGhpcy5nZXRDb2x1bW5PcmRlcilcblx0XHRcdC5tYXAoKHNldHRpbmc6IEd0Q29uZmlnU2V0dGluZykgPT4ge1xuXHRcdFx0XHRpZiAoc2V0dGluZy52aXNpYmxlICE9PSBmYWxzZSAmJiBzZXR0aW5nLmVuYWJsZWQgIT09IGZhbHNlKSB7XG5cdFx0XHRcdFx0cmV0dXJuIHNldHRpbmcub2JqZWN0S2V5O1xuXHRcdFx0XHR9XG5cdFx0XHR9KTtcblxuXHRcdHJldHVybiBhcnJheVxuXHRcdFx0LmZpbHRlcigoY29sdW1uOiBhbnkpID0+IHtcblx0XHRcdFx0cmV0dXJuIHZpc2libGVDb2x1bW5zLmluZGV4T2YoY29sdW1uLm9iamVjdEtleSkgIT09IC0xO1xuXHRcdFx0fSlcblx0XHRcdC5zb3J0KGZ1bmN0aW9uKGEsIGIpIHtcblx0XHRcdFx0cmV0dXJuIHZpc2libGVDb2x1bW5zLmluZGV4T2YoYS5vYmplY3RLZXkpIDxcblx0XHRcdFx0XHR2aXNpYmxlQ29sdW1ucy5pbmRleE9mKGIub2JqZWN0S2V5KVxuXHRcdFx0XHRcdD8gLTFcblx0XHRcdFx0XHQ6IDE7XG5cdFx0XHR9KTtcblx0fVxufVxuIl19