@gooddata/react-components
Version:
GoodData.UI - A powerful JavaScript library for building analytical applications
81 lines • 3.08 kB
JavaScript
;
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 });
// (C) 2007-2020 GoodData Corporation
var partial = require("lodash/partial");
var variables_1 = require("../../styles/variables");
var drilldownEventing_1 = require("../../utils/drilldownEventing");
var get = require("lodash/get");
var cloneDeep = require("lodash/cloneDeep");
function getDDPointsInParentTick(axis, tick) {
var startAt = tick.startAt, leaves = tick.leaves;
var ddPoints = []; // drilldown points
for (var i = startAt; i < startAt + leaves; i++) {
ddPoints.push.apply(ddPoints, cloneDeep(axis.getDDPoints(i)));
}
// replace y value by target value for bullet chart target
ddPoints.forEach(function (ddPoint) {
if (get(ddPoint, "series.userOptions.bulletChartMeasureType") === "target") {
ddPoint.y = ddPoint.isNullTarget ? null : ddPoint.target;
}
});
return ddPoints;
}
exports.getDDPointsInParentTick = getDDPointsInParentTick;
function setParentTickDrillable(drillConfig, target, chartType, tick, ddPoints) {
// copy behavior 'Tick.prototype.drillable' from 'highcharts/module/drilldown.js'
var label = tick.label;
var drilldownStyle = {
cursor: "pointer",
color: variables_1.styleVariables.gdColorText,
};
if (label && ddPoints && ddPoints.length) {
if (!label.basicStyles) {
label.basicStyles = __assign({}, label.styles);
}
label
.addClass("highcharts-drilldown-axis-label")
.css(drilldownStyle)
.on("click", function () {
drilldownEventing_1.tickLabelClick(drillConfig, ddPoints, target, chartType);
});
}
else if (label && label.basicStyles) {
label.styles = {}; // reset for full overwrite of styles
label.css(label.basicStyles);
label.on("click", null);
}
}
function setupDrilldown(chart, chartType) {
var xAxes = (chart && chart.xAxis) || [];
var axis = xAxes[0];
if (!axis) {
return;
}
// not support chart without type
if (!chartType) {
return;
}
var categoriesTree = axis.categoriesTree, drillConfig = axis.userOptions.drillConfig;
var setParentTickDrillableFunc = partial(setParentTickDrillable, drillConfig, chart.container, chartType);
(categoriesTree || []).forEach(function (categories) {
var tick = categories.tick;
if (!tick) {
return;
}
var ddPoints = getDDPointsInParentTick(axis, tick);
setParentTickDrillableFunc(tick, ddPoints);
});
}
exports.setupDrilldown = setupDrilldown;
//# sourceMappingURL=setupDrilldownToParentAttribute.js.map