@gooddata/react-components
Version:
GoodData.UI - A powerful JavaScript library for building analytical applications
65 lines • 3.48 kB
JavaScript
;
Object.defineProperty(exports, "__esModule", { value: true });
// (C) 2019-2020 GoodData Corporation
var forEach = require("lodash/forEach");
var set = require("lodash/set");
var isEmpty = require("lodash/isEmpty");
var includes = require("lodash/includes");
var isEqual = require("lodash/isEqual");
var cloneDeep = require("lodash/cloneDeep");
var OverTimeComparison_1 = require("../../interfaces/OverTimeComparison");
var bucket_1 = require("../constants/bucket");
var bucketHelper_1 = require("./bucketHelper");
var bucketRules_1 = require("./bucketRules");
function getTypeOfDerivedToKeep(supportedTypes, appliedType) {
return isEmpty(supportedTypes) || isEqual(supportedTypes, [OverTimeComparison_1.OverTimeComparisonTypes.NOTHING])
? OverTimeComparison_1.OverTimeComparisonTypes.NOTHING
: appliedType;
}
function configureOverTimeComparison(extendedReferencePoint, weekFiltersEnabled) {
var buckets = extendedReferencePoint.buckets, filters = extendedReferencePoint.filters, uiConfig = extendedReferencePoint.uiConfig;
var supportedOverTimeComparisonTypes = uiConfig.supportedOverTimeComparisonTypes;
var appliedComparisonType = bucketHelper_1.getComparisonTypeFromFilters(filters);
var isSelectedComparisonSupportedByVis = includes(supportedOverTimeComparisonTypes, appliedComparisonType);
var derivedOfTypeToKeep = getTypeOfDerivedToKeep(supportedOverTimeComparisonTypes, appliedComparisonType);
var comparisonOverTimeAllowed = bucketRules_1.isComparisonOverTimeAllowed(buckets, filters, weekFiltersEnabled);
var originalBuckets = cloneDeep(buckets);
forEach(buckets, function (bucket) {
var newItems = bucket.items;
if (!comparisonOverTimeAllowed) {
newItems = bucketHelper_1.filterOutArithmeticMeasuresFromDerived(newItems, originalBuckets);
newItems = bucketHelper_1.filterOutDerivedMeasures(newItems);
}
if (!isSelectedComparisonSupportedByVis) {
newItems = bucketHelper_1.filterOutIncompatibleArithmeticMeasures(newItems, originalBuckets, derivedOfTypeToKeep);
newItems = bucketHelper_1.keepOnlyMasterAndDerivedMeasuresOfType(newItems, derivedOfTypeToKeep);
}
bucket.items = newItems;
});
return extendedReferencePoint;
}
exports.configureOverTimeComparison = configureOverTimeComparison;
function removeShowInPercent(measure) {
return set(measure, bucket_1.SHOW_IN_PERCENT, null);
}
function configurePercent(extendedReferencePoint, percentDisabled) {
if (percentDisabled === void 0) { percentDisabled = false; }
forEach(extendedReferencePoint.buckets, function (bucket) {
var showInPercentEnabled = !percentDisabled &&
bucketRules_1.isShowInPercentAllowed(extendedReferencePoint.buckets, extendedReferencePoint.filters, bucket.localIdentifier);
if (!showInPercentEnabled) {
bucket.items.forEach(function (measure) {
if (measure.type === bucket_1.METRIC) {
removeShowInPercent(measure);
}
});
}
var bucketUiConfig = extendedReferencePoint.uiConfig.buckets[bucket.localIdentifier];
if (bucketUiConfig.accepts.indexOf(bucket_1.METRIC) >= 0) {
bucketUiConfig.isShowInPercentEnabled = showInPercentEnabled;
}
});
return extendedReferencePoint;
}
exports.configurePercent = configurePercent;
//# sourceMappingURL=bucketConfig.js.map