@gooddata/react-components
Version:
GoodData.UI - A powerful JavaScript library for building analytical applications
74 lines • 3.35 kB
JavaScript
;
Object.defineProperty(exports, "__esModule", { value: true });
// (C) 2019 GoodData Corporation
var cloneDeep = require("lodash/cloneDeep");
var every = require("lodash/every");
var BucketNames = require("../../../../constants/bucketNames");
var bucket_1 = require("../../../constants/bucket");
var bucketHelper_1 = require("../../../utils/bucketHelper");
function findSecondMasterMeasure(allMeasures) {
var masterBucketItems = bucketHelper_1.findMasterBucketItems(allMeasures);
return masterBucketItems.length > 1 ? masterBucketItems[1] : null;
}
exports.findSecondMasterMeasure = findSecondMasterMeasure;
function tryToMapForeignBuckets(extendedReferencePoint) {
var newReferencePoint = setHeadlineRefPointBuckets(extendedReferencePoint);
var totalBuckets = extendedReferencePoint.buckets.length;
var allMeasuresCompatible = true;
var bucketIndex = -1;
while (allMeasuresCompatible && ++bucketIndex < totalBuckets) {
var sourceBucket = extendedReferencePoint.buckets[bucketIndex];
var targetBucket = newReferencePoint[bucket_1.BUCKETS][bucketIndex];
if (!targetBucket) {
if (sourceBucket.items.length) {
allMeasuresCompatible = false;
}
continue;
}
var targetBucketUiConfig = newReferencePoint.uiConfig.buckets[targetBucket.localIdentifier];
if (!targetBucketUiConfig || !targetBucketUiConfig.enabled) {
allMeasuresCompatible = false;
continue;
}
var measuresFitToLimit = sourceBucket.items.length <= targetBucketUiConfig.itemsLimit;
if (!measuresFitToLimit) {
allMeasuresCompatible = false;
continue;
}
var isCompatibleMeasureType = every(sourceBucket.items, function (item) { return item.type === bucket_1.METRIC; });
if (!isCompatibleMeasureType) {
allMeasuresCompatible = false;
continue;
}
targetBucket.items = sourceBucket.items;
}
return allMeasuresCompatible ? newReferencePoint : null;
}
exports.tryToMapForeignBuckets = tryToMapForeignBuckets;
function setHeadlineRefPointBuckets(extendedReferencePoint, primaryMeasure, secondaryMeasure) {
var newReferencePoint = cloneDeep(extendedReferencePoint);
newReferencePoint[bucket_1.BUCKETS] = [
{
localIdentifier: BucketNames.MEASURES,
items: primaryMeasure ? [primaryMeasure] : [],
},
{
localIdentifier: BucketNames.SECONDARY_MEASURES,
items: secondaryMeasure ? [secondaryMeasure] : [],
},
];
return newReferencePoint;
}
exports.setHeadlineRefPointBuckets = setHeadlineRefPointBuckets;
function findComplementaryOverTimeComparisonMeasure(primaryMeasure, allMeasures) {
if (!primaryMeasure) {
return null;
}
if (bucketHelper_1.isDerivedBucketItem(primaryMeasure)) {
return bucketHelper_1.findMasterBucketItem(primaryMeasure, allMeasures) || null;
}
var derivedOfPrimaryMeasure = bucketHelper_1.findDerivedBucketItems(primaryMeasure, allMeasures);
return derivedOfPrimaryMeasure.length > 0 ? derivedOfPrimaryMeasure[0] : null;
}
exports.findComplementaryOverTimeComparisonMeasure = findComplementaryOverTimeComparisonMeasure;
//# sourceMappingURL=headlineBucketHelper.js.map