UNPKG

@gooddata/react-components

Version:

GoodData.UI - A powerful JavaScript library for building analytical applications

65 lines 3.48 kB
"use strict"; 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