@helgoland/core
Version:
76 lines (75 loc) • 7.16 kB
JavaScript
/**
* @fileoverview added by tsickle
* @suppress {checkTypes,extraRequire,uselessCode} checked by tsc
*/
import { Injectable } from '@angular/core';
import moment from 'moment';
var SumValuesService = /** @class */ (function () {
function SumValuesService() {
}
/**
* @param {?} startOf
* @param {?} period
* @param {?} data
* @return {?}
*/
SumValuesService.prototype.sum = /**
* @param {?} startOf
* @param {?} period
* @param {?} data
* @return {?}
*/
function (startOf, period, data) {
/** @type {?} */
var result = [];
if (data.length === 0) {
return result;
}
/** @type {?} */
var currentBucketStart = moment(data[0][0]).startOf(startOf);
/** @type {?} */
var currentBucketEnd = moment(currentBucketStart).add(period).subtract(1, 'millisecond');
/** @type {?} */
var bucketVals = [];
for (var i = 0; i < data.length; i++) {
/** @type {?} */
var time = moment(data[i][0]);
/** @type {?} */
var value = data[i][1];
var _loop_1 = function () {
if (bucketVals.length > 0) {
/** @type {?} */
var sum_1 = 0;
/** @type {?} */
var hasValues_1 = false;
bucketVals.forEach(function (e) {
if (typeof e === 'number') {
sum_1 += e;
hasValues_1 = true;
}
});
result.push([currentBucketStart.unix() * 1000, hasValues_1 ? sum_1 : 'NaN']);
}
else {
result.push([currentBucketStart.unix() * 1000, 'NaN']);
}
bucketVals = [];
currentBucketStart = currentBucketStart.add(period);
currentBucketEnd = currentBucketEnd.add(period);
};
while (!(currentBucketStart.isSameOrBefore(time) && currentBucketEnd.isSameOrAfter(time))) {
_loop_1();
}
bucketVals.push(value);
}
return result;
};
SumValuesService.decorators = [
{ type: Injectable },
];
/** @nocollapse */
SumValuesService.ctorParameters = function () { return []; };
return SumValuesService;
}());
export { SumValuesService };
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic3VtLXZhbHVlcy5zZXJ2aWNlLmpzIiwic291cmNlUm9vdCI6Im5nOi8vQGhlbGdvbGFuZC9jb3JlLyIsInNvdXJjZXMiOlsibGliL3Byb2Nlc3Npbmcvc3VtLXZhbHVlcy5zZXJ2aWNlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7QUFBQSxPQUFPLEVBQUUsVUFBVSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQzNDLE9BQU8sTUFBZ0MsTUFBTSxRQUFRLENBQUM7O0lBT3BEO0tBQWlCOzs7Ozs7O0lBRVYsOEJBQUc7Ozs7OztjQUFDLE9BQTJCLEVBQUUsTUFBZ0IsRUFBRSxJQUFzQjs7UUFDOUUsSUFBTSxNQUFNLEdBQXFCLEVBQUUsQ0FBQztRQUVwQyxFQUFFLENBQUMsQ0FBQyxJQUFJLENBQUMsTUFBTSxLQUFLLENBQUMsQ0FBQyxDQUFDLENBQUM7WUFBQyxNQUFNLENBQUMsTUFBTSxDQUFDO1NBQUU7O1FBRXpDLElBQUksa0JBQWtCLEdBQUcsTUFBTSxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLE9BQU8sQ0FBQyxPQUFPLENBQUMsQ0FBQzs7UUFFN0QsSUFBSSxnQkFBZ0IsR0FBRyxNQUFNLENBQUMsa0JBQWtCLENBQUMsQ0FBQyxHQUFHLENBQUMsTUFBTSxDQUFDLENBQUMsUUFBUSxDQUFDLENBQUMsRUFBRSxhQUFhLENBQUMsQ0FBQzs7UUFDekYsSUFBSSxVQUFVLEdBQUcsRUFBRSxDQUFDO1FBQ3BCLEdBQUcsQ0FBQyxDQUFDLElBQUksQ0FBQyxHQUFHLENBQUMsRUFBRSxDQUFDLEdBQUcsSUFBSSxDQUFDLE1BQU0sRUFBRSxDQUFDLEVBQUUsRUFBRSxDQUFDOztZQUNyQyxJQUFNLElBQUksR0FBRyxNQUFNLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUM7O1lBQ2hDLElBQU0sS0FBSyxHQUFHLElBQUksQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQzs7Z0JBR3ZCLEVBQUUsQ0FBQyxDQUFDLFVBQVUsQ0FBQyxNQUFNLEdBQUcsQ0FBQyxDQUFDLENBQUMsQ0FBQzs7b0JBRTFCLElBQUksS0FBRyxHQUFHLENBQUMsQ0FBQzs7b0JBQ1osSUFBSSxXQUFTLEdBQUcsS0FBSyxDQUFDO29CQUN0QixVQUFVLENBQUMsT0FBTyxDQUFDLFVBQUEsQ0FBQzt3QkFDbEIsRUFBRSxDQUFDLENBQUMsT0FBTyxDQUFDLEtBQUssUUFBUSxDQUFDLENBQUMsQ0FBQzs0QkFDMUIsS0FBRyxJQUFJLENBQUMsQ0FBQzs0QkFDVCxXQUFTLEdBQUcsSUFBSSxDQUFDO3lCQUNsQjtxQkFDRixDQUFDLENBQUM7b0JBQ0gsTUFBTSxDQUFDLElBQUksQ0FBQyxDQUFDLGtCQUFrQixDQUFDLElBQUksRUFBRSxHQUFHLElBQUksRUFBRSxXQUFTLENBQUMsQ0FBQyxDQUFDLEtBQUcsQ0FBQyxDQUFDLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQztpQkFDMUU7Z0JBQUMsSUFBSSxDQUFDLENBQUM7b0JBQ04sTUFBTSxDQUFDLElBQUksQ0FBQyxDQUFDLGtCQUFrQixDQUFDLElBQUksRUFBRSxHQUFHLElBQUksRUFBRSxLQUFLLENBQUMsQ0FBQyxDQUFDO2lCQUN4RDtnQkFDRCxVQUFVLEdBQUcsRUFBRSxDQUFDO2dCQUNoQixrQkFBa0IsR0FBRyxrQkFBa0IsQ0FBQyxHQUFHLENBQUMsTUFBTSxDQUFDLENBQUM7Z0JBQ3BELGdCQUFnQixHQUFHLGdCQUFnQixDQUFDLEdBQUcsQ0FBQyxNQUFNLENBQUMsQ0FBQzs7WUFqQmxELE9BQU8sQ0FBQyxDQUFDLGtCQUFrQixDQUFDLGNBQWMsQ0FBQyxJQUFJLENBQUMsSUFBSSxnQkFBZ0IsQ0FBQyxhQUFhLENBQUMsSUFBSSxDQUFDLENBQUM7O2FBa0J4RjtZQUNELFVBQVUsQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLENBQUM7U0FDeEI7UUFFRCxNQUFNLENBQUMsTUFBTSxDQUFDOzs7Z0JBeENqQixVQUFVOzs7OzJCQUxYOztTQU1hLGdCQUFnQiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEluamVjdGFibGUgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCBtb21lbnQsIHsgdW5pdE9mVGltZSwgRHVyYXRpb24gfSBmcm9tICdtb21lbnQnO1xuXG5pbXBvcnQgeyBUaW1lVmFsdWVUdXBsZSB9IGZyb20gJy4uL21vZGVsL2RhdGFzZXQtYXBpL2RhdGEnO1xuXG5ASW5qZWN0YWJsZSgpXG5leHBvcnQgY2xhc3MgU3VtVmFsdWVzU2VydmljZSB7XG5cbiAgY29uc3RydWN0b3IoKSB7IH1cblxuICBwdWJsaWMgc3VtKHN0YXJ0T2Y6IHVuaXRPZlRpbWUuU3RhcnRPZiwgcGVyaW9kOiBEdXJhdGlvbiwgZGF0YTogVGltZVZhbHVlVHVwbGVbXSk6IFRpbWVWYWx1ZVR1cGxlW10ge1xuICAgIGNvbnN0IHJlc3VsdDogVGltZVZhbHVlVHVwbGVbXSA9IFtdO1xuXG4gICAgaWYgKGRhdGEubGVuZ3RoID09PSAwKSB7IHJldHVybiByZXN1bHQ7IH1cblxuICAgIGxldCBjdXJyZW50QnVja2V0U3RhcnQgPSBtb21lbnQoZGF0YVswXVswXSkuc3RhcnRPZihzdGFydE9mKTtcbiAgICAvLyBzdWJzdHJhY3Qgb25lIG1pbGxpc2Vjb25kIGZvciBub3Qgb3ZlcmxhcHBpbmcgYnVja2V0c1xuICAgIGxldCBjdXJyZW50QnVja2V0RW5kID0gbW9tZW50KGN1cnJlbnRCdWNrZXRTdGFydCkuYWRkKHBlcmlvZCkuc3VidHJhY3QoMSwgJ21pbGxpc2Vjb25kJyk7XG4gICAgbGV0IGJ1Y2tldFZhbHMgPSBbXTtcbiAgICBmb3IgKGxldCBpID0gMDsgaSA8IGRhdGEubGVuZ3RoOyBpKyspIHtcbiAgICAgIGNvbnN0IHRpbWUgPSBtb21lbnQoZGF0YVtpXVswXSk7XG4gICAgICBjb25zdCB2YWx1ZSA9IGRhdGFbaV1bMV07XG5cbiAgICAgIHdoaWxlICghKGN1cnJlbnRCdWNrZXRTdGFydC5pc1NhbWVPckJlZm9yZSh0aW1lKSAmJiBjdXJyZW50QnVja2V0RW5kLmlzU2FtZU9yQWZ0ZXIodGltZSkpKSB7XG4gICAgICAgIGlmIChidWNrZXRWYWxzLmxlbmd0aCA+IDApIHtcbiAgICAgICAgICAvLyBjdXJyZW50bHkgTmFOIHZhbHVlcyB3aWxsIGJlIGNhbGN1bGF0ZWQgYXMgMDtcbiAgICAgICAgICBsZXQgc3VtID0gMDtcbiAgICAgICAgICBsZXQgaGFzVmFsdWVzID0gZmFsc2U7XG4gICAgICAgICAgYnVja2V0VmFscy5mb3JFYWNoKGUgPT4ge1xuICAgICAgICAgICAgaWYgKHR5cGVvZiBlID09PSAnbnVtYmVyJykge1xuICAgICAgICAgICAgICBzdW0gKz0gZTtcbiAgICAgICAgICAgICAgaGFzVmFsdWVzID0gdHJ1ZTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICB9KTtcbiAgICAgICAgICByZXN1bHQucHVzaChbY3VycmVudEJ1Y2tldFN0YXJ0LnVuaXgoKSAqIDEwMDAsIGhhc1ZhbHVlcyA/IHN1bSA6ICdOYU4nXSk7XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgcmVzdWx0LnB1c2goW2N1cnJlbnRCdWNrZXRTdGFydC51bml4KCkgKiAxMDAwLCAnTmFOJ10pO1xuICAgICAgICB9XG4gICAgICAgIGJ1Y2tldFZhbHMgPSBbXTtcbiAgICAgICAgY3VycmVudEJ1Y2tldFN0YXJ0ID0gY3VycmVudEJ1Y2tldFN0YXJ0LmFkZChwZXJpb2QpO1xuICAgICAgICBjdXJyZW50QnVja2V0RW5kID0gY3VycmVudEJ1Y2tldEVuZC5hZGQocGVyaW9kKTtcbiAgICAgIH1cbiAgICAgIGJ1Y2tldFZhbHMucHVzaCh2YWx1ZSk7XG4gICAgfVxuXG4gICAgcmV0dXJuIHJlc3VsdDtcbiAgfVxuXG59XG4iXX0=