@springernature/nn-charts
Version:
Visualization for DAS products
119 lines (106 loc) • 5.45 kB
JavaScript
;
function _typeof(o) { "@babel/helpers - typeof"; return _typeof = "function" == typeof Symbol && "symbol" == typeof Symbol.iterator ? function (o) { return typeof o; } : function (o) { return o && "function" == typeof Symbol && o.constructor === Symbol && o !== Symbol.prototype ? "symbol" : typeof o; }, _typeof(o); }
Object.defineProperty(exports, "__esModule", {
value: true
});
exports.transitionStacked = exports.transitionPercent = exports.transitionGrouped = void 0;
var d3 = _interopRequireWildcard(require("d3"));
var _common = require("./common");
function _getRequireWildcardCache(e) { if ("function" != typeof WeakMap) return null; var r = new WeakMap(), t = new WeakMap(); return (_getRequireWildcardCache = function _getRequireWildcardCache(e) { return e ? t : r; })(e); }
function _interopRequireWildcard(e, r) { if (!r && e && e.__esModule) return e; if (null === e || "object" != _typeof(e) && "function" != typeof e) return { "default": e }; var t = _getRequireWildcardCache(r); if (t && t.has(e)) return t.get(e); var n = { __proto__: null }, a = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var u in e) if ("default" !== u && {}.hasOwnProperty.call(e, u)) { var i = a ? Object.getOwnPropertyDescriptor(e, u) : null; i && (i.get || i.set) ? Object.defineProperty(n, u, i) : n[u] = e[u]; } return n["default"] = e, t && t.set(e, n), n; }
/*
name: transitionPercent
description: function to transition chart to percentage contribution of whole form
arguments: none
returns: none
calls: none
called from: changeChart
*/
var transitionPercent = exports.transitionPercent = function transitionPercent(xAxisScale, yAxisScale, rectBars, svg, position_yAxis) {
//
// update definition of y-axis
yAxisScale.domain([0, 1]);
var formatPercent = d3.format(".0%");
position_yAxis.tickFormat(formatPercent);
// transition all data rectangles accordingly
rectBars.transition().duration(500).delay(function (d, i) {
return i * 10;
}).attr("y", function (d) {
var total = d3.sum(d3.values(d.data));
return yAxisScale(d[1] / total);
}).attr("height", function (d) {
var total = d3.sum(d3.values(d.data));
return yAxisScale(d[0] / total) - yAxisScale(d[1] / total);
}).transition().attr("x", function (d, i) {
return xAxisScale(i);
}).attr("width", xAxisScale.bandwidth());
// update format of y-axis tick labels.
// position_yAxis.tickFormat(function (d, i) {
// return Number(d * 100) + "%";
// });
// transition y-axis
svg.selectAll(".axis.y-axis").transition().delay(500).duration(500).call(position_yAxis);
return;
}; // end function transitionPercent
/*
name: transitionGrouped
description: function to transition chart to grouped form
arguments: none
returns: none
calls: none
called from: changeChart
*/
var transitionGrouped = exports.transitionGrouped = function transitionGrouped(xAxisScale, yAxisScale, rectBars, svg, position_yAxis, el, yGroupMax, dataCategoryLength) {
//
// update definition of y-axis
yAxisScale.domain([0, Math.ceil(yGroupMax / (0, _common.getValueUpperLimit)(yGroupMax)) * (0, _common.getValueUpperLimit)(yGroupMax)]);
// transition all data rectangles accordingly
rectBars.transition().duration(500).delay(function (d, i) {
return i * 10;
}).attr("x", function (d, i, j) {
return xAxisScale(i) + xAxisScale.bandwidth() / dataCategoryLength * parseInt(this.parentNode.id);
}).attr("width", xAxisScale.bandwidth() / dataCategoryLength).transition().attr("y", function (d, i) {
return el.config.chartHeight - (yAxisScale(d[0]) - yAxisScale(d[1]));
}).attr("height", function (d, i) {
return yAxisScale(d[0]) - yAxisScale(d[1]);
});
// update tick label format
// el.articles.yAxis.tickFormat(el.articles.formatNumber);
// update format of y-axis tick labels.
position_yAxis.tickFormat(function (d, i) {
return (0, _common.numberWithCommas)(Number(d));
});
// transition y-axis
svg.selectAll(".axis.y-axis").transition().delay(500).duration(500).call(position_yAxis);
return;
}; // end function transitionGrouped
/*
name: transitionStacked
description: function to transition chart to Stacked form
*/
var transitionStacked = exports.transitionStacked = function transitionStacked(xAxisScale, yAxisScale, rectBars, svg, position_yAxis, el, yStackMax) {
//
// update definition of y-axis
yAxisScale.domain([0, Math.ceil(yStackMax / (0, _common.getValueUpperLimit)(yStackMax)) * (0, _common.getValueUpperLimit)(yStackMax)]);
//
// transition all data rectangles accordingly
rectBars.transition().duration(500).delay(function (d, i) {
return i * 10;
}).attr("y", function (d) {
return yAxisScale(d[1]);
}).attr("height", function (d) {
return yAxisScale(d[0]) - yAxisScale(d[1]);
}).transition().attr("x", function (d, i) {
return xAxisScale(i);
}).attr("width", xAxisScale.bandwidth());
// now does not work in ES6. d3.format() is not accepted as a d3 function. not recognised.
// update tick label format
// el.articles.yAxis.tickFormat(el.articles.formatNumber);
// update format of y-axis tick labels.
position_yAxis.tickFormat(function (d, i) {
return (0, _common.numberWithCommas)(Number(d));
});
// transition y-axis
svg.selectAll(".axis.y-axis").transition().delay(500).duration(500).call(position_yAxis);
return;
}; // end function transitionStacked