@gooddata/react-components
Version:
GoodData.UI - A powerful JavaScript library for building analytical applications
73 lines • 4.36 kB
JavaScript
;
Object.defineProperty(exports, "__esModule", { value: true });
// (C) 2019 GoodData Corporation
var cloneDeep = require("lodash/cloneDeep");
var get = require("lodash/get");
var set = require("lodash/set");
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 areaMeasuresIcon = require("../../assets/area/bucket-title-measures.svg");
var areaViewIcon = require("../../assets/area/bucket-title-view.svg");
var areaStackIcon = require("../../assets/area/bucket-title-stack.svg");
function getWarningMessageIdForMeasuresBucket(categoriesCount) {
return categoriesCount > 1
? "dashboard.bucket.metric_view_by_warning"
: "dashboard.bucket.metric_stack_by_warning";
}
function getWarningMessageIdForViewByBucket(measuresCount) {
return measuresCount > 1
? "dashboard.bucket.category_view_by_warning"
: "dashboard.bucket.view_stack_by_warning";
}
function getWarningMessageIdForStackByBucket(categoriesCount) {
return categoriesCount > 1
? "dashboard.bucket.stack_view_by_warning"
: "dashboard.bucket.measure_stack_by_warning";
}
function setAreaChartBucketWarningMessages(referencePoint, messageConfig, intl) {
var buckets = get(referencePoint, bucket_1.BUCKETS, []);
var updatedUiConfig = get(referencePoint, uiConfig_1.UICONFIG);
return buckets.reduce(function (uiConfig, bucket) {
var localIdentifier = get(bucket, "localIdentifier", "");
var bucketUiConfig = get(uiConfig, [bucket_1.BUCKETS, localIdentifier]);
var isEnabled = get(bucketUiConfig, "enabled", false);
var canAddItem = get(bucketUiConfig, "canAddItems");
// skip disabled buckets
if (canAddItem || !isEnabled) {
return uiConfig;
}
var warningMessageId = messageConfig[localIdentifier];
var warningMessage = intl ? intl.formatMessage({ id: warningMessageId }) : warningMessageId;
return set(uiConfig, [bucket_1.BUCKETS, localIdentifier, "warningMessage"], warningMessage);
}, updatedUiConfig);
}
function setAreaChartUiConfig(referencePoint, intl, visualizationType) {
var _a;
var referencePointConfigured = cloneDeep(referencePoint);
var buckets = get(referencePointConfigured, bucket_1.BUCKETS, []);
var categoriesCount = bucketHelper_1.getItemsCount(buckets, BucketNames.VIEW);
var measuresCount = bucketRules_1.getMasterMeasuresCount(buckets, BucketNames.MEASURES);
var isStackEmpty = bucketRules_1.hasNoStacks(buckets);
var canAddMeasuresItems = !measuresCount || (categoriesCount <= 1 && isStackEmpty);
var canAddViewItems = !categoriesCount || (measuresCount <= 1 && isStackEmpty);
var canAddStackItems = categoriesCount <= 1 && measuresCount <= 1;
var messageConfig = (_a = {},
_a[BucketNames.MEASURES] = getWarningMessageIdForMeasuresBucket(categoriesCount),
_a[BucketNames.VIEW] = getWarningMessageIdForViewByBucket(measuresCount),
_a[BucketNames.STACK] = getWarningMessageIdForStackByBucket(categoriesCount),
_a);
set(referencePointConfigured, uiConfig_1.UICONFIG, bucketHelper_1.setBucketTitles(referencePoint, visualizationType, intl));
set(referencePointConfigured, [uiConfig_1.UICONFIG, bucket_1.BUCKETS, BucketNames.MEASURES, "canAddItems"], canAddMeasuresItems);
set(referencePointConfigured, [uiConfig_1.UICONFIG, bucket_1.BUCKETS, BucketNames.VIEW, "canAddItems"], canAddViewItems);
set(referencePointConfigured, [uiConfig_1.UICONFIG, bucket_1.BUCKETS, BucketNames.STACK, "canAddItems"], canAddStackItems);
setAreaChartBucketWarningMessages(referencePointConfigured, messageConfig, intl);
set(referencePointConfigured, [uiConfig_1.UICONFIG, bucket_1.BUCKETS, BucketNames.MEASURES, "icon"], areaMeasuresIcon);
set(referencePointConfigured, [uiConfig_1.UICONFIG, bucket_1.BUCKETS, BucketNames.VIEW, "icon"], areaViewIcon);
set(referencePointConfigured, [uiConfig_1.UICONFIG, bucket_1.BUCKETS, BucketNames.STACK, "icon"], areaStackIcon);
return referencePointConfigured;
}
exports.setAreaChartUiConfig = setAreaChartUiConfig;
//# sourceMappingURL=areaChartUiConfigHelper.js.map