UNPKG

@helgoland/core

Version:

76 lines (75 loc) 7.16 kB
/** * @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=