@gooddata/react-components
Version:
GoodData.UI - A powerful JavaScript library for building analytical applications
71 lines • 4.05 kB
JavaScript
"use strict";
Object.defineProperty(exports, "__esModule", { value: true });
var _a, _b;
// (C) 2019 GoodData Corporation
var cloneDeep = require("lodash/cloneDeep");
var set = require("lodash/set");
var get = require("lodash/get");
var BucketNames = require("../../../constants/bucketNames");
var bucket_1 = require("../../constants/bucket");
var translations_1 = require("../translations");
var bucketHelper_1 = require("../bucketHelper");
var columnMeasureIcon = require("../../assets/combo/bucket-title-measures-column.svg");
var lineMeasureIcon = require("../../assets/combo/bucket-title-measures-line.svg");
var areaMeasureIcon = require("../../assets/combo/bucket-title-measures-area.svg");
var columnLineIcon = require("../../assets/combo/bucket-title-view-column-line.svg");
var columnAreaIcon = require("../../assets/combo/bucket-title-view-column-area.svg");
var lineAreaIcon = require("../../assets/combo/bucket-title-view-line-area.svg");
var columnViewIcon = require("../../assets/column/bucket-title-view.svg");
var lineViewIcon = require("../../assets/combo/bucket-title-view-line-line.svg");
var areaViewIcon = require("../../assets/area/bucket-title-view.svg");
var properties_1 = require("../../constants/properties");
var uiConfig_1 = require("../../constants/uiConfig");
var visualizationTypes_1 = require("../../../constants/visualizationTypes");
var common_1 = require("../../../components/visualizations/utils/common");
var COLUMN = visualizationTypes_1.VisualizationTypes.COLUMN, LINE = visualizationTypes_1.VisualizationTypes.LINE, AREA = visualizationTypes_1.VisualizationTypes.AREA;
var MEASURE_BUCKET_ICONS = (_a = {},
_a[COLUMN] = columnMeasureIcon,
_a[LINE] = lineMeasureIcon,
_a[AREA] = areaMeasureIcon,
_a);
var VIEW_BY_ICONS = (_b = {},
_b[COLUMN + "-" + COLUMN] = columnViewIcon,
_b[COLUMN + "-" + LINE] = columnLineIcon,
_b[COLUMN + "-" + AREA] = columnAreaIcon,
_b[LINE + "-" + COLUMN] = columnLineIcon,
_b[LINE + "-" + LINE] = lineViewIcon,
_b[LINE + "-" + AREA] = lineAreaIcon,
_b[AREA + "-" + COLUMN] = columnAreaIcon,
_b[AREA + "-" + LINE] = lineAreaIcon,
_b[AREA + "-" + AREA] = areaViewIcon,
_b);
function setCanStackInPercent(uiConfig, secondaryChartType, isDualAxis) {
var canStackInPercent = !(isDualAxis === false && common_1.isLineChart(secondaryChartType));
set(uiConfig, "optionalStacking.canStackInPercent", canStackInPercent);
}
function setComboChartUiConfig(referencePoint, intl, visualizationType) {
var referencePointConfigured = cloneDeep(referencePoint);
var measureBuckets = bucketHelper_1.getBucketsByNames(get(referencePointConfigured, bucket_1.BUCKETS), [
BucketNames.MEASURES,
BucketNames.SECONDARY_MEASURES,
]);
var chartTypes = [
get(referencePointConfigured, properties_1.PROPERTY_CONTROLS_PRIMARY_CHART_TYPE, COLUMN),
get(referencePointConfigured, properties_1.PROPERTY_CONTROLS_SECONDARY_CHART_TYPE, LINE),
];
var updatedUiConfig = bucketHelper_1.setBucketTitles(referencePointConfigured, visualizationType, intl);
var isDualAxis = get(referencePointConfigured, "properties.controls.dualAxis", true);
setCanStackInPercent(updatedUiConfig, chartTypes[1], isDualAxis);
measureBuckets.forEach(function (bucket, index) {
var type = chartTypes[index];
var localIdentifier = get(bucket, "localIdentifier", "");
var subtitle = translations_1.getTranslation("dashboard.bucket.combo.subtitle." + type, intl);
set(updatedUiConfig, [bucket_1.BUCKETS, localIdentifier, "subtitle"], subtitle);
set(updatedUiConfig, [bucket_1.BUCKETS, localIdentifier, "icon"], MEASURE_BUCKET_ICONS[type]);
});
set(updatedUiConfig, [bucket_1.BUCKETS, BucketNames.VIEW, "icon"], VIEW_BY_ICONS[chartTypes.join("-")]);
set(referencePointConfigured, uiConfig_1.UICONFIG, updatedUiConfig);
return referencePointConfigured;
}
exports.setComboChartUiConfig = setComboChartUiConfig;
//# sourceMappingURL=comboChartUiConfigHelper.js.map