UNPKG

@gooddata/react-components

Version:

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

81 lines 3.08 kB
"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 }); // (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