UNPKG

@formant/ava

Version:

A framework for automated visual analytics.

40 lines (39 loc) 1.78 kB
"use strict"; 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;