UNPKG

@gooddata/react-components

Version:

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

73 lines 4.36 kB
"use strict"; 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