@angular-generic-table/core
Version:
A generic table component for Angular
66 lines (65 loc) • 6.51 kB
JavaScript
/**
* @fileoverview added by tsickle
* @suppress {checkTypes} checked by tsc
*/
import { Pipe } from '@angular/core';
export class GtRowClassPipe {
/**
* @param {?} array
* @param {?} gtFields
* @return {?}
*/
transform(array, gtFields) {
if (array) {
// find columns with rowClass property defined
const /** @type {?} */ COLUMNS_WITH_CLASS = gtFields
.map(column => column)
.filter(column => column.rowClass);
COLUMNS_WITH_CLASS.map(column => {
// for each column with rowClass property defined...
array.map(row => {
// loop through rows and set row class
if (typeof column.rowClass === 'function') {
// if row class is a function, try using the function...
try {
if (row.$$gtRowClass) {
row.$$gtRowClass = row.$$gtRowClass.concat(' ' + column.rowClass(row, column));
}
else {
row.$$gtRowClass = column.rowClass(row, column);
}
}
catch (/** @type {?} */ error) {
console.log('Error when trying to get row class name using formula.', error);
}
}
else {
// if not a function, return plain string value
if (row.$$gtRowClass) {
row.$$gtRowClass = row.$$gtRowClass.concat(' ' + column.rowClass);
}
else {
row.$$gtRowClass = column.rowClass;
}
}
});
});
}
return array;
}
}
GtRowClassPipe.decorators = [
{ type: Pipe, args: [{
name: 'gtRowClass'
},] },
];
function GtRowClassPipe_tsickle_Closure_declarations() {
/** @type {!Array<{type: !Function, args: (undefined|!Array<?>)}>} */
GtRowClassPipe.decorators;
/**
* @nocollapse
* @type {function(): !Array<(null|{type: ?, decorators: (undefined|!Array<{type: !Function, args: (undefined|!Array<?>)}>)})>}
*/
GtRowClassPipe.ctorParameters;
}
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZ3Qtcm93LWNsYXNzLnBpcGUuanMiLCJzb3VyY2VSb290Ijoibmc6Ly9AYW5ndWxhci1nZW5lcmljLXRhYmxlL2NvcmUvIiwic291cmNlcyI6WyJwaXBlcy9ndC1yb3ctY2xhc3MucGlwZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7O0FBQUEsT0FBTyxFQUFFLElBQUksRUFBaUIsTUFBTSxlQUFlLENBQUM7QUFNcEQsTUFBTTs7Ozs7O0lBQ0wsU0FBUyxDQUFDLEtBQWlCLEVBQUUsUUFBd0M7UUFDcEUsRUFBRSxDQUFDLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQzs7WUFFWCx1QkFBTSxrQkFBa0IsR0FBRyxRQUFRO2lCQUNqQyxHQUFHLENBQUMsTUFBTSxDQUFDLEVBQUUsQ0FBQyxNQUFNLENBQUM7aUJBQ3JCLE1BQU0sQ0FBQyxNQUFNLENBQUMsRUFBRSxDQUFDLE1BQU0sQ0FBQyxRQUFRLENBQUMsQ0FBQztZQUNwQyxrQkFBa0IsQ0FBQyxHQUFHLENBQUMsTUFBTSxDQUFDLEVBQUU7O2dCQUUvQixLQUFLLENBQUMsR0FBRyxDQUFDLEdBQUcsQ0FBQyxFQUFFOztvQkFFZixFQUFFLENBQUMsQ0FBQyxPQUFPLE1BQU0sQ0FBQyxRQUFRLEtBQUssVUFBVSxDQUFDLENBQUMsQ0FBQzs7d0JBRTNDLElBQUksQ0FBQzs0QkFDSixFQUFFLENBQUMsQ0FBQyxHQUFHLENBQUMsWUFBWSxDQUFDLENBQUMsQ0FBQztnQ0FDdEIsR0FBRyxDQUFDLFlBQVksR0FBRyxHQUFHLENBQUMsWUFBWSxDQUFDLE1BQU0sQ0FDekMsR0FBRyxHQUFHLE1BQU0sQ0FBQyxRQUFRLENBQUMsR0FBRyxFQUFFLE1BQU0sQ0FBQyxDQUNsQyxDQUFDOzZCQUNGOzRCQUFDLElBQUksQ0FBQyxDQUFDO2dDQUNQLEdBQUcsQ0FBQyxZQUFZLEdBQUcsTUFBTSxDQUFDLFFBQVEsQ0FBQyxHQUFHLEVBQUUsTUFBTSxDQUFDLENBQUM7NkJBQ2hEO3lCQUNEO3dCQUFDLEtBQUssQ0FBQyxDQUFDLGlCQUFBLEtBQUssRUFBRSxDQUFDOzRCQUNoQixPQUFPLENBQUMsR0FBRyxDQUNWLHdEQUF3RCxFQUN4RCxLQUFLLENBQ0wsQ0FBQzt5QkFDRjtxQkFDRDtvQkFBQyxJQUFJLENBQUMsQ0FBQzs7d0JBRVAsRUFBRSxDQUFDLENBQUMsR0FBRyxDQUFDLFlBQVksQ0FBQyxDQUFDLENBQUM7NEJBQ3RCLEdBQUcsQ0FBQyxZQUFZLEdBQUcsR0FBRyxDQUFDLFlBQVksQ0FBQyxNQUFNLENBQUMsR0FBRyxHQUFHLE1BQU0sQ0FBQyxRQUFRLENBQUMsQ0FBQzt5QkFDbEU7d0JBQUMsSUFBSSxDQUFDLENBQUM7NEJBQ1AsR0FBRyxDQUFDLFlBQVksR0FBRyxNQUFNLENBQUMsUUFBUSxDQUFDO3lCQUNuQztxQkFDRDtpQkFDRCxDQUFDLENBQUM7YUFDSCxDQUFDLENBQUM7U0FDSDtRQUNELE1BQU0sQ0FBQyxLQUFLLENBQUM7S0FDYjs7O1lBMUNELElBQUksU0FBQztnQkFDTCxJQUFJLEVBQUUsWUFBWTthQUNsQiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IFBpcGUsIFBpcGVUcmFuc2Zvcm0gfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IEd0Q29uZmlnRmllbGQgfSBmcm9tICcuLi9pbnRlcmZhY2VzL2d0LWNvbmZpZy1maWVsZCc7XG5cbkBQaXBlKHtcblx0bmFtZTogJ2d0Um93Q2xhc3MnXG59KVxuZXhwb3J0IGNsYXNzIEd0Um93Q2xhc3NQaXBlIGltcGxlbWVudHMgUGlwZVRyYW5zZm9ybSB7XG5cdHRyYW5zZm9ybShhcnJheTogQXJyYXk8YW55PiwgZ3RGaWVsZHM6IEFycmF5PEd0Q29uZmlnRmllbGQ8YW55LCBhbnk+Pik6IGFueSB7XG5cdFx0aWYgKGFycmF5KSB7XG5cdFx0XHQvLyBmaW5kIGNvbHVtbnMgd2l0aCByb3dDbGFzcyBwcm9wZXJ0eSBkZWZpbmVkXG5cdFx0XHRjb25zdCBDT0xVTU5TX1dJVEhfQ0xBU1MgPSBndEZpZWxkc1xuXHRcdFx0XHQubWFwKGNvbHVtbiA9PiBjb2x1bW4pXG5cdFx0XHRcdC5maWx0ZXIoY29sdW1uID0+IGNvbHVtbi5yb3dDbGFzcyk7XG5cdFx0XHRDT0xVTU5TX1dJVEhfQ0xBU1MubWFwKGNvbHVtbiA9PiB7XG5cdFx0XHRcdC8vIGZvciBlYWNoIGNvbHVtbiB3aXRoIHJvd0NsYXNzIHByb3BlcnR5IGRlZmluZWQuLi5cblx0XHRcdFx0YXJyYXkubWFwKHJvdyA9PiB7XG5cdFx0XHRcdFx0Ly8gbG9vcCB0aHJvdWdoIHJvd3MgYW5kIHNldCByb3cgY2xhc3Ncblx0XHRcdFx0XHRpZiAodHlwZW9mIGNvbHVtbi5yb3dDbGFzcyA9PT0gJ2Z1bmN0aW9uJykge1xuXHRcdFx0XHRcdFx0Ly8gaWYgcm93IGNsYXNzIGlzIGEgZnVuY3Rpb24sIHRyeSB1c2luZyB0aGUgZnVuY3Rpb24uLi5cblx0XHRcdFx0XHRcdHRyeSB7XG5cdFx0XHRcdFx0XHRcdGlmIChyb3cuJCRndFJvd0NsYXNzKSB7XG5cdFx0XHRcdFx0XHRcdFx0cm93LiQkZ3RSb3dDbGFzcyA9IHJvdy4kJGd0Um93Q2xhc3MuY29uY2F0KFxuXHRcdFx0XHRcdFx0XHRcdFx0JyAnICsgY29sdW1uLnJvd0NsYXNzKHJvdywgY29sdW1uKVxuXHRcdFx0XHRcdFx0XHRcdCk7XG5cdFx0XHRcdFx0XHRcdH0gZWxzZSB7XG5cdFx0XHRcdFx0XHRcdFx0cm93LiQkZ3RSb3dDbGFzcyA9IGNvbHVtbi5yb3dDbGFzcyhyb3csIGNvbHVtbik7XG5cdFx0XHRcdFx0XHRcdH1cblx0XHRcdFx0XHRcdH0gY2F0Y2ggKGVycm9yKSB7XG5cdFx0XHRcdFx0XHRcdGNvbnNvbGUubG9nKFxuXHRcdFx0XHRcdFx0XHRcdCdFcnJvciB3aGVuIHRyeWluZyB0byBnZXQgcm93IGNsYXNzIG5hbWUgdXNpbmcgZm9ybXVsYS4nLFxuXHRcdFx0XHRcdFx0XHRcdGVycm9yXG5cdFx0XHRcdFx0XHRcdCk7XG5cdFx0XHRcdFx0XHR9XG5cdFx0XHRcdFx0fSBlbHNlIHtcblx0XHRcdFx0XHRcdC8vIGlmIG5vdCBhIGZ1bmN0aW9uLCByZXR1cm4gcGxhaW4gc3RyaW5nIHZhbHVlXG5cdFx0XHRcdFx0XHRpZiAocm93LiQkZ3RSb3dDbGFzcykge1xuXHRcdFx0XHRcdFx0XHRyb3cuJCRndFJvd0NsYXNzID0gcm93LiQkZ3RSb3dDbGFzcy5jb25jYXQoJyAnICsgY29sdW1uLnJvd0NsYXNzKTtcblx0XHRcdFx0XHRcdH0gZWxzZSB7XG5cdFx0XHRcdFx0XHRcdHJvdy4kJGd0Um93Q2xhc3MgPSBjb2x1bW4ucm93Q2xhc3M7XG5cdFx0XHRcdFx0XHR9XG5cdFx0XHRcdFx0fVxuXHRcdFx0XHR9KTtcblx0XHRcdH0pO1xuXHRcdH1cblx0XHRyZXR1cm4gYXJyYXk7XG5cdH1cbn1cbiJdfQ==