From 0ed6d4b91aad7b4afa98028419cb55a70d61faa0 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=C3=89tienne=20T=C3=A9treault-Pinard?= Date: Thu, 17 Jan 2019 17:10:00 -0500 Subject: [PATCH] fix wrapped horizontal legends height computations --- src/components/legend/draw.js | 16 +++-- .../legend_horizontal_wrap-alll-lines.png | Bin 0 -> 29523 bytes .../legend_horizontal_wrap-alll-lines.json | 58 ++++++++++++++++++ 3 files changed, 68 insertions(+), 6 deletions(-) create mode 100644 test/image/baselines/legend_horizontal_wrap-alll-lines.png create mode 100644 test/image/mocks/legend_horizontal_wrap-alll-lines.json diff --git a/src/components/legend/draw.js b/src/components/legend/draw.js index 608fb7eaab6..58dfb61243d 100644 --- a/src/components/legend/draw.js +++ b/src/components/legend/draw.js @@ -630,7 +630,6 @@ function computeLegendDimensions(gd, groups, traces) { var offsetX = 0; var fullTracesWidth = 0; var traceGap = opts.tracegroupgap || 5; - var oneRowLegend; // calculate largest width for traces and use for width of all legend items traces.each(function(d) { @@ -639,15 +638,16 @@ function computeLegendDimensions(gd, groups, traces) { }); // check if legend fits in one row - oneRowLegend = fullLayout._size.w > borderwidth + fullTracesWidth - traceGap; + var oneRowLegend = fullLayout._size.w > borderwidth + fullTracesWidth - traceGap; + traces.each(function(d) { var legendItem = d[0]; var traceWidth = oneRowLegend ? 40 + d[0].width : maxTraceWidth; if((borderwidth + offsetX + traceGap + traceWidth) > fullLayout._size.w) { offsetX = 0; - rowHeight = rowHeight + maxTraceHeight; - opts._height = opts._height + maxTraceHeight; + rowHeight += maxTraceHeight; + opts._height += maxTraceHeight; // reset for next row maxTraceHeight = 0; } @@ -657,16 +657,20 @@ function computeLegendDimensions(gd, groups, traces) { (5 + borderwidth + legendItem.height / 2) + rowHeight); opts._width += traceGap + traceWidth; - opts._height = Math.max(opts._height, legendItem.height); // keep track of tallest trace in group offsetX += traceGap + traceWidth; maxTraceHeight = Math.max(legendItem.height, maxTraceHeight); }); + if(oneRowLegend) { + opts._height = maxTraceHeight; + } else { + opts._height += maxTraceHeight; + } + opts._width += borderwidth * 2; opts._height += 10 + borderwidth * 2; - } // make sure we're only getting full pixels diff --git a/test/image/baselines/legend_horizontal_wrap-alll-lines.png b/test/image/baselines/legend_horizontal_wrap-alll-lines.png new file mode 100644 index 0000000000000000000000000000000000000000..116dea894e6eb32a216cc962874cc4f4aff9056b GIT binary patch literal 29523 zcmd?RWmJ?=`!_lR0@6wf5-KSOC>@egLrTj4f`km+sf3C_OE(N4AT2PofYL|}Esb;| z-Ej8c^FQlZ?>TFobv~T;%i#kb?t9-mu6^d%ZqVDl}0Rp)Lfyqj1dp=)J@pw%)w0}^n%V{-aL7D#yhcaKUvy?^e8~JryGAw*% z6f^TRERq%ztndE!@1~DkTmNh=3S-B=A8-8CNyACQA=bj6bf~~uzqAH*>Ra^pcjkU< zLP~XQnOOKG)=Gs}PeSqLREk$v(won!*DjF|3V*DpQceU_P;^i*KGiiG@FZRb;xB(s z3d#<_p~!hT1)R%oeW>>SwH3%x;6Ea^1C!V=*NWTvPCM9_Y<`}zpqdgF!5~-_-HRf3eL4`KL zmRp%epa}e%(t7y>4`J~9vJ5Dgl+FY*$2oRxHcbL^Vd6E^HXMq${XPmE3M;}!lihn; zq)TZMiPE){!v>Rz{J_j{il?cHIgS86Vy+wuEl9wYemlw#56L2X&8U#$2eVaSPY^Dc z)Wsh&#{ub=#FyrgC~Gows|^m)jzUdFh_#wTO8L|E8n})>tRJ32Nen@pEk8F~o|!anrRt4-)mIT$Ga*f*q#R(%1}8A>L3n-g zK!BΜ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 NE2Z>TiNx#o{{trace will display properly" + }, + { + "x": [ 1, 2, 3, 4 ], + "y": [ 3, 5, 1, 7 ], + "name": "You need to break this trace twice if first one has no break" + }, + { + "x": [ 1, 2, 3, 4 ], + "y": [ 3, 5, 1, 7 ], + "name": "You need to break this trace twice if first one has no break" + }, + { + "x": [ 1, 2, 3, 4 ], + "y": [ 3, 5, 1, 7 ], + "name": "You need to break this trace twice if first one has no break" + }, + { + "x": [ 1, 2, 3, 4 ], + "y": [ 3, 5, 1, 7 ], + "name": "You need to break this trace twice if first one has no break" + }, + { + "x": [ 1, 2, 3, 4 ], + "y": [ 3, 5, 1, 7 ], + "name": "You need to break this trace twice if first one has no break" + }, + { + "x": [ 1, 2, 3, 4 ], + "y": [ 3, 5, 1, 7 ], + "name": "This
contains
a break" + } + ], + "layout": { + "legend": { + "orientation": "h", + "xanchor": "center", + "yanchor": "top", + "x": 0.5, + "y": -0.1, + "traceorder": "normal" + }, + "paper_bgcolor": "rgba(255,0,0,0.5)", + "margin": { + "l": 20, + "r": 20, + "t": 20, + "b": 20 + }, + "width": 360, + "height": 600 + } +}