@true-directive/base
Version:
The set of base classes for the TrueDirective Grid
46 lines (45 loc) • 1.42 kB
JavaScript
/**
* Copyright (c) 2018-2019 Aleksey Melnikov, True Directive Company.
* @link https://truedirective.com/
* @license MIT
*/
import { SummaryType } from '../classes/summary.class';
var SummaryPipe = /** @class */ (function () {
function SummaryPipe() {
}
SummaryPipe.prototype.transform = function (rows, c, t) {
if (t === SummaryType.COUNT) {
return rows.length;
}
var res = null;
var rCount = 0;
if (t === SummaryType.SUM || t === SummaryType.AVERAGE) {
res = 0;
}
rows.forEach(function (r) {
if (t === SummaryType.SUM || t === SummaryType.AVERAGE) {
if (r[c.fieldName] !== null) {
res += r[c.fieldName];
rCount++;
}
}
if (t === SummaryType.MIN) {
res = res === null || r[c.fieldName] < res ? r[c.fieldName] : res;
}
if (t === SummaryType.MAX) {
res = res === null || r[c.fieldName] > res ? r[c.fieldName] : res;
}
});
if (t === SummaryType.AVERAGE) {
if (rCount > 0) {
res = res / rCount;
}
else {
res = null;
}
}
return res;
};
return SummaryPipe;
}());
export { SummaryPipe };