@gooddata/react-components
Version:
GoodData.UI - A powerful JavaScript library for building analytical applications
62 lines • 2.45 kB
JavaScript
;
Object.defineProperty(exports, "__esModule", { value: true });
// (C) 2019-2020 GoodData Corporation
var get = require("lodash/get");
var common_1 = require("../../utils/common");
var visualizationTypes_1 = require("../../../../constants/visualizationTypes");
var axisLabel_1 = require("../../../../constants/axisLabel");
var axisNameConfigGetter = function (chartOptions) { return function (axisNamePrefix) {
return get(chartOptions, axisNamePrefix + "Axes", []).map(function (axis) {
if (!axis) {
return {};
}
return {
title: getHighchartsAxisTitleConfiguration(chartOptions, axis, axisNamePrefix),
};
});
}; };
function getHighchartsAxisTitleConfiguration(chartOptions, axis, axisNamePrefix) {
var isYAxis = axisNamePrefix === "y";
var opposite = get(axis, "opposite", false);
var axisPropsKey = opposite
? "secondary_" + axisNamePrefix + "AxisProps.name"
: axisNamePrefix + "AxisProps.name";
var axisNameConfig = get(chartOptions, axisPropsKey, {});
var title = {};
if (axisNameConfig.position) {
title.align = axisNameConfig.position; // low | middle | high
}
// config.visible should be true/undefined by default
if (axisNameConfig.visible === false) {
title.text = "";
}
// opposite Y axis in combo, column and line chart
// should be rotated the same way as its counterpart
// and text alignment reversed from default
if (opposite &&
isYAxis &&
common_1.isOneOfTypes(chartOptions.type, [
visualizationTypes_1.VisualizationTypes.COMBO,
visualizationTypes_1.VisualizationTypes.COMBO2,
visualizationTypes_1.VisualizationTypes.COLUMN,
visualizationTypes_1.VisualizationTypes.LINE,
])) {
title.rotation = Number(axisLabel_1.ROTATE_NEGATIVE_90_DEGREES);
if (title.align === "low") {
title.textAlign = axisLabel_1.ALIGN_LEFT;
}
else if (title.align === "high") {
title.textAlign = axisLabel_1.ALIGN_RIGHT;
}
}
return title;
}
function getAxisNameConfiguration(chartOptions) {
var configGetter = axisNameConfigGetter(chartOptions);
return {
xAxis: configGetter("x"),
yAxis: configGetter("y"),
};
}
exports.getAxisNameConfiguration = getAxisNameConfiguration;
//# sourceMappingURL=getAxisNameConfiguration.js.map