@gooddata/react-components
Version:
GoodData.UI - A powerful JavaScript library for building analytical applications
97 lines • 6.17 kB
JavaScript
"use strict";
Object.defineProperty(exports, "__esModule", { value: true });
// (C) 2019-2020 GoodData Corporation
var cloneDeep = require("lodash/cloneDeep");
var get = require("lodash/get");
var set = require("lodash/set");
var forEach = require("lodash/forEach");
var BucketNames = require("../../../constants/bucketNames");
var uiConfig_1 = require("../../constants/uiConfig");
var bucket_1 = require("../../constants/bucket");
var bucketRules_1 = require("./../bucketRules");
var bucketHelper_1 = require("./../bucketHelper");
var translations_1 = require("./../translations");
var propertiesHelper_1 = require("./../propertiesHelper");
var columnMeasuresIcon = require("../../assets/column/bucket-title-measures.svg");
var columnViewIcon = require("../../assets/column/bucket-title-view.svg");
var columnStackIcon = require("../../assets/column/bucket-title-stack.svg");
var barMeasuresIcon = require("../../assets/bar/bucket-title-measures.svg");
var barViewIcon = require("../../assets/bar/bucket-title-view.svg");
var barStackIcon = require("../../assets/bar/bucket-title-stack.svg");
var visualizationTypes_1 = require("../../../constants/visualizationTypes");
function setBaseChartBucketWarningMessages(referencePoint, intl) {
var buckets = get(referencePoint, bucket_1.BUCKETS, []);
var updatedUiConfig = cloneDeep(get(referencePoint, uiConfig_1.UICONFIG));
forEach(buckets, function (bucket) {
var localIdentifier = get(bucket, "localIdentifier", "");
var bucketUiConfig = get(updatedUiConfig, [bucket_1.BUCKETS, localIdentifier]);
// skip disabled buckets
if (!get(bucketUiConfig, "enabled", false)) {
return;
}
if (!get(bucketUiConfig, "canAddItems")) {
var warningMessageId = void 0;
if (bucket.localIdentifier === BucketNames.MEASURES) {
warningMessageId = "dashboard.bucket.metric_stack_by_warning";
}
else if (bucket.localIdentifier === BucketNames.STACK) {
warningMessageId = "dashboard.bucket.category_stack_by_warning";
}
if (warningMessageId) {
var warningMessage = translations_1.getTranslation(warningMessageId, intl);
set(updatedUiConfig, [bucket_1.BUCKETS, localIdentifier, "warningMessage"], warningMessage);
}
}
});
return updatedUiConfig;
}
function setBaseChartUiConfig(referencePoint, intl, visualizationType) {
var _a, _b;
var referencePointConfigured = cloneDeep(referencePoint);
var buckets = get(referencePointConfigured, bucket_1.BUCKETS, []);
var measuresCanAddItems = bucketRules_1.hasNoMeasures(buckets) || bucketRules_1.hasNoStacks(buckets);
var stackCanAddItems = !bucketRules_1.hasMoreThanOneMasterMeasure(buckets, BucketNames.MEASURES);
set(referencePointConfigured, [uiConfig_1.UICONFIG], bucketHelper_1.setBucketTitles(referencePoint, visualizationType, intl));
set(referencePointConfigured, [uiConfig_1.UICONFIG, bucket_1.BUCKETS, BucketNames.MEASURES, "canAddItems"], measuresCanAddItems);
set(referencePointConfigured, [uiConfig_1.UICONFIG, bucket_1.BUCKETS, BucketNames.VIEW, "canAddItems"], true);
set(referencePointConfigured, [uiConfig_1.UICONFIG, bucket_1.BUCKETS, BucketNames.STACK, "canAddItems"], stackCanAddItems);
set(referencePointConfigured, [uiConfig_1.UICONFIG, uiConfig_1.OPEN_AS_REPORT, uiConfig_1.SUPPORTED], !propertiesHelper_1.hasColorMapping(referencePointConfigured.properties));
var iconsMap = {
column: (_a = {},
_a[BucketNames.MEASURES] = columnMeasuresIcon,
_a[BucketNames.VIEW] = columnViewIcon,
_a[BucketNames.STACK] = columnStackIcon,
_a),
bar: (_b = {},
_b[BucketNames.MEASURES] = barMeasuresIcon,
_b[BucketNames.VIEW] = barViewIcon,
_b[BucketNames.STACK] = barStackIcon,
_b),
};
set(referencePointConfigured, [uiConfig_1.UICONFIG, bucket_1.BUCKETS, BucketNames.MEASURES, "icon"], get(iconsMap, [visualizationType, BucketNames.MEASURES]));
set(referencePointConfigured, [uiConfig_1.UICONFIG, bucket_1.BUCKETS, BucketNames.VIEW, "icon"], get(iconsMap, [visualizationType, BucketNames.VIEW]));
set(referencePointConfigured, [uiConfig_1.UICONFIG, bucket_1.BUCKETS, BucketNames.STACK, "icon"], get(iconsMap, [visualizationType, BucketNames.STACK]));
set(referencePointConfigured, uiConfig_1.UICONFIG, setBaseChartBucketWarningMessages(referencePointConfigured, intl));
return referencePointConfigured;
}
exports.setBaseChartUiConfig = setBaseChartUiConfig;
function setBaseChartUiConfigRecommendations(referencePoint, visualizationType, weekFiltersEnabled) {
// Recommendations
if (visualizationType === visualizationTypes_1.VisualizationTypes.COLUMN) {
var newReferencePoint = cloneDeep(referencePoint);
var buckets = get(newReferencePoint, bucket_1.BUCKETS);
var percentEnabled = bucketRules_1.percentRecommendationEnabled(buckets);
var comparisonAndTrending = bucketRules_1.comparisonAndTrendingRecommendationEnabled(buckets);
var overTimeComparison = bucketRules_1.overTimeComparisonRecommendationEnabled(newReferencePoint, weekFiltersEnabled);
var previousPeriod = bucketRules_1.previousPeriodRecommendationEnabled(buckets);
set(newReferencePoint, [uiConfig_1.UICONFIG, uiConfig_1.RECOMMENDATIONS, "percent"], percentEnabled);
set(newReferencePoint, [uiConfig_1.UICONFIG, uiConfig_1.RECOMMENDATIONS, "comparison"], comparisonAndTrending);
set(newReferencePoint, [uiConfig_1.UICONFIG, uiConfig_1.RECOMMENDATIONS, "trending"], comparisonAndTrending);
set(newReferencePoint, [uiConfig_1.UICONFIG, uiConfig_1.RECOMMENDATIONS, "overTimeComparison"], overTimeComparison);
set(newReferencePoint, [uiConfig_1.UICONFIG, uiConfig_1.RECOMMENDATIONS, "previousPeriod"], previousPeriod);
return newReferencePoint;
}
return referencePoint;
}
exports.setBaseChartUiConfigRecommendations = setBaseChartUiConfigRecommendations;
//# sourceMappingURL=baseChartUiConfigHelper.js.map