@formant/ava
Version:
A framework for automated visual analytics.
40 lines (39 loc) • 1.78 kB
JavaScript
;
Object.defineProperty(exports, "__esModule", { value: true });
exports.calculateImpactMeasureReferenceValues = exports.calculateImpactValue = exports.dataToDataProps = void 0;
var tslib_1 = require("tslib");
var lodash_1 = require("lodash");
var data_1 = require("../../data");
var aggregate_1 = require("../utils/aggregate");
function dataToDataProps(data, extra) {
if (!data) {
throw new Error('Argument `data` is missing.');
}
var df = new data_1.DataFrame(data, extra);
var dataTypeInfos = df.info();
var dataProps = [];
dataTypeInfos.forEach(function (info) {
var _a;
var newInfo = tslib_1.__assign(tslib_1.__assign({}, info), { domainType: ((_a = (0, lodash_1.intersection)(['Interval', 'Continuous'], info.levelOfMeasurements)) === null || _a === void 0 ? void 0 : _a.length) ? 'measure' : 'dimension' });
dataProps.push(newInfo);
});
return dataProps;
}
exports.dataToDataProps = dataToDataProps;
function calculateImpactValue(data, measure) {
var measureAggregator = aggregate_1.AggregatorMap[measure.method];
var value = measureAggregator(data, measure.fieldName);
return value;
}
exports.calculateImpactValue = calculateImpactValue;
/** calculate the reference values for impact measures */
function calculateImpactMeasureReferenceValues(data, measures) {
var referenceMap = {};
measures === null || measures === void 0 ? void 0 : measures.forEach(function (measure) {
var measureKey = "".concat(measure.fieldName, "@").concat(measure.method);
var value = calculateImpactValue(data, measure);
referenceMap[measureKey] = value;
});
return referenceMap;
}
exports.calculateImpactMeasureReferenceValues = calculateImpactMeasureReferenceValues;