UNPKG

@gooddata/react-components

Version:

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

62 lines 2.45 kB
"use strict"; 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