UNPKG

@true-directive/base

Version:

The set of base classes for the TrueDirective Grid

46 lines (45 loc) 1.42 kB
/** * 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 };