@gooddata/react-components
Version:
GoodData.UI - A powerful JavaScript library for building analytical applications
112 lines • 4.34 kB
JavaScript
"use strict";
var __assign = (this && this.__assign) || function () {
__assign = Object.assign || function(t) {
for (var s, i = 1, n = arguments.length; i < n; i++) {
s = arguments[i];
for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p))
t[p] = s[p];
}
return t;
};
return __assign.apply(this, arguments);
};
Object.defineProperty(exports, "__esModule", { value: true });
var get = require("lodash/get");
var commonConfiguration_1 = require("./commonConfiguration");
var lineConfiguration_1 = require("./lineConfiguration");
var visualizationTypes_1 = require("../../../../constants/visualizationTypes");
var common_1 = require("../../utils/common");
var mdObjBucketHelper_1 = require("../../../../helpers/mdObjBucketHelper");
var bucketNames_1 = require("../../../../constants/bucketNames");
var COLUMN = visualizationTypes_1.VisualizationTypes.COLUMN, LINE = visualizationTypes_1.VisualizationTypes.LINE;
function getDefaultComboTypes(config) {
return {
primaryChartType: get(config, "primaryChartType", COLUMN),
secondaryChartType: get(config, "secondaryChartType", LINE),
};
}
function getDefaultChartType(config) {
var _a = getDefaultComboTypes(config), primaryChartType = _a.primaryChartType, secondaryChartType = _a.secondaryChartType;
if (primaryChartType === secondaryChartType) {
return primaryChartType;
}
if (primaryChartType === COLUMN || secondaryChartType === COLUMN) {
return COLUMN;
}
return LINE;
}
exports.getDefaultChartType = getDefaultChartType;
function isOnlyLineSeries(config) {
var _a = getDefaultComboTypes(config), primaryChartType = _a.primaryChartType, secondaryChartType = _a.secondaryChartType;
var buckets = get(config, "mdObject.buckets", []);
var isEmptyPrimaryMeasure = mdObjBucketHelper_1.isBucketEmpty(buckets, bucketNames_1.MEASURES);
var isEmptySecondaryMeasure = mdObjBucketHelper_1.isBucketEmpty(buckets, bucketNames_1.SECONDARY_MEASURES);
var isLineChartOnLeftAxis = common_1.isLineChart(primaryChartType);
var isLineChartOnRightAxis = common_1.isLineChart(secondaryChartType);
return ((isLineChartOnLeftAxis && isLineChartOnRightAxis) ||
(isLineChartOnLeftAxis && isEmptySecondaryMeasure) ||
(isEmptyPrimaryMeasure && isLineChartOnRightAxis));
}
function getComboConfiguration(config) {
var series = isOnlyLineSeries(config)
? {
series: {
states: {
inactive: {
opacity: 1,
},
},
},
}
: {};
var COMBO_TEMPLATE = {
chart: {
type: getDefaultChartType(config),
spacingTop: 20,
},
plotOptions: __assign({ column: {
dataLabels: {
enabled: true,
crop: false,
overflow: "none",
padding: 2,
},
maxPointWidth: commonConfiguration_1.MAX_POINT_WIDTH,
borderColor: "#00000000",
}, line: {
marker: {
symbol: "circle",
radius: 4.5,
},
lineWidth: lineConfiguration_1.LINE_WIDTH,
fillOpacity: 0.3,
stickyTracking: false,
states: {
hover: {
lineWidth: lineConfiguration_1.LINE_WIDTH + 1,
},
},
dataLabels: {
style: {
fontWeight: "normal",
},
},
}, area: {
marker: {
symbol: "circle",
radius: 4.5,
},
lineWidth: lineConfiguration_1.LINE_WIDTH,
fillOpacity: 0.6,
stickyTracking: false,
states: {
hover: {
lineWidth: lineConfiguration_1.LINE_WIDTH + 1,
},
},
} }, series),
};
return COMBO_TEMPLATE;
}
exports.getComboConfiguration = getComboConfiguration;
//# sourceMappingURL=comboConfiguration.js.map