@gooddata/react-components
Version:
GoodData.UI - A powerful JavaScript library for building analytical applications
57 lines • 2.68 kB
JavaScript
;
Object.defineProperty(exports, "__esModule", { value: true });
// (C) 2007-2019 GoodData Corporation
var typings_1 = require("@gooddata/typings");
var get = require("lodash/get");
var negate = require("lodash/negate");
var DataLayer_1 = require("@gooddata/gooddata-js/lib/DataLayer");
function isDerivedMeasure(measure) {
return (typings_1.AFM.isPreviousPeriodMeasureDefinition(measure.definition) ||
typings_1.AFM.isPopMeasureDefinition(measure.definition));
}
exports.isDerivedMeasure = isDerivedMeasure;
function getMasterMeasureLocalIdentifier(measure) {
var measureDefinition = get(measure, ["definition", "popMeasure"]) || get(measure, ["definition", "previousPeriodMeasure"]);
return get(measureDefinition, ["measureIdentifier"]);
}
exports.getMasterMeasureLocalIdentifier = getMasterMeasureLocalIdentifier;
function findMeasureByLocalIdentifier(afm, localIdentifier) {
return (afm.measures || []).find(function (m) { return m.localIdentifier === localIdentifier; });
}
exports.findMeasureByLocalIdentifier = findMeasureByLocalIdentifier;
function getMasterMeasureObjQualifier(afm, localIdentifier) {
var measure = findMeasureByLocalIdentifier(afm, localIdentifier);
if (measure) {
var masterMeasureIdentifier = getMasterMeasureLocalIdentifier(measure);
if (masterMeasureIdentifier) {
measure = findMeasureByLocalIdentifier(afm, masterMeasureIdentifier);
}
if (!measure) {
return null;
}
return {
uri: get(measure, ["definition", "measure", "item", "uri"]),
identifier: get(measure, ["definition", "measure", "item", "identifier"]),
};
}
return null;
}
exports.getMasterMeasureObjQualifier = getMasterMeasureObjQualifier;
var getDateFilter = function (filters) {
return filters.find(DataLayer_1.AfmUtils.isDateFilter);
};
var getAttributeFilters = function (filters) {
if (filters === void 0) { filters = []; }
return filters.filter(DataLayer_1.AfmUtils.isAttributeFilter).filter(negate(DataLayer_1.AfmUtils.isAttributeFilterSelectAll));
};
var getMeasureValueFilters = function (filters) {
if (filters === void 0) { filters = []; }
return filters.filter(typings_1.AFM.isMeasureValueFilter);
};
exports.mergeFiltersToAfm = function (afm, additionalFilters) {
var attributeFilters = getAttributeFilters(additionalFilters);
var dateFilter = getDateFilter(additionalFilters);
var measureValueFilters = getMeasureValueFilters(additionalFilters);
return DataLayer_1.AfmUtils.appendFilters(afm, attributeFilters, dateFilter, measureValueFilters);
};
//# sourceMappingURL=afmHelper.js.map