@wbg-mde/r-factory
Version:
Metadata editor R integration module
68 lines (67 loc) • 3.44 kB
JavaScript
;
var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {
var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
return c > 3 && r && Object.defineProperty(target, key, r), r;
};
Object.defineProperty(exports, "__esModule", { value: true });
const repository_1 = require("@wbg-mde/repository");
const api_helper_1 = require("../shared/api-helper");
const _ = require('lodash');
let VariableStatistics = class VariableStatistics {
updateVariableStatistics(params) {
this.formatInput(params.variableInfo);
return api_helper_1.APIHelper.call('updateStats', 'post', {
"typeOfActions": params.variableInfo,
"csvpath": params.csvPath
}).then((response) => {
return response.data;
});
}
formatInput(statisticsInfo) {
var destringInfo = _.filter(statisticsInfo, (x) => x.action === 'destring');
if (destringInfo && destringInfo.length > 0) {
destringInfo.forEach((dinfo) => {
var statsInfo = _.find(statisticsInfo, (x) => (x.action === 'recalcStats' && x.name === dinfo.name));
if (statsInfo) {
statsInfo.properties.forEach((prop) => {
prop.catValu = parseFloat(prop.catValu);
});
}
});
}
let encodeMissings = _.filter(statisticsInfo, (x) => x.action === 'encodeMissing');
encodeMissings.forEach((opData) => {
var equalToOpData = opData.properties.filter((x) => x.op === '=');
var gteOpData = opData.properties.filter((x) => x.op === '>=');
var lteOpData = opData.properties.filter((x) => x.op === '<=');
var rangeOpData = opData.properties.filter((x) => x.op === '..');
if (rangeOpData.length == 1) {
if (rangeOpData[0].val === '*' && rangeOpData[0].val2 === '*') {
rangeOpData = [];
}
else if (rangeOpData[0].val === '*' || rangeOpData[0].val2 === '*') {
if (rangeOpData[0].val === '*') {
lteOpData.push({ "op": '<=', val: rangeOpData[0].val2 });
}
if (rangeOpData[0].val2 === '*') {
gteOpData.push({ "op": '>=', val: rangeOpData[0].val });
}
rangeOpData = [];
}
}
if (gteOpData.length > 1) {
gteOpData = [_.minBy(gteOpData, function (o) { return parseFloat(o.val); })];
}
if (lteOpData.length > 1) {
lteOpData = [_.maxBy(lteOpData, function (o) { return parseFloat(o.val); })];
}
opData.properties = [...equalToOpData, ...rangeOpData, ...gteOpData, ...lteOpData];
});
}
};
VariableStatistics = __decorate([
repository_1.Trace()
], VariableStatistics);
exports.VariableStatistics = VariableStatistics;