From a28e116f8282955ecf9867f443bb167440ae6e38 Mon Sep 17 00:00:00 2001 From: Kernc Date: Thu, 18 May 2017 19:43:24 +0200 Subject: [PATCH] Parcoords: ellipsize long labels; show full text in tooltip --- src/traces/parcoords/parcoords.js | 15 ++++++++++++++- 1 file changed, 14 insertions(+), 1 deletion(-) diff --git a/src/traces/parcoords/parcoords.js b/src/traces/parcoords/parcoords.js index 237ea08e384..36c7275dd68 100644 --- a/src/traces/parcoords/parcoords.js +++ b/src/traces/parcoords/parcoords.js @@ -598,7 +598,20 @@ module.exports = function(root, svg, styledData, layout, callbacks) { axisTitle .attr('transform', 'translate(0,' + -c.axisTitleOffset + ')') .text(function(d) {return d.label;}) - .each(function(d) {Drawing.font(axisTitle, d.model.labelFont);}); + .each(function(d) {Drawing.font(axisTitle, d.model.labelFont);}) + .each(function(d) { + // Ellipsize long labels + var maxWidth = d.xScale(1) - 5; + while(this.textContent.length > 2 && + this.getComputedTextLength() > maxWidth) { + this.textContent = this.textContent.slice(0, -2) + '…'; + } + }); + + // Tooltip + axisTitle.enter() + .append('title') + .text(function(d) {return d.label;}); var axisExtent = axisOverlays.selectAll('.axisExtent') .data(repeat, keyFun);