From 2e0440fe0daf841b3921ad2eebdc4126470a9a3a Mon Sep 17 00:00:00 2001 From: Mojtaba Samimi <arch.mojtaba.samimi@gmail.com> Date: Thu, 14 Mar 2024 11:35:25 -0400 Subject: [PATCH 1/3] fix centering multi-line headers in treemap --- src/traces/treemap/draw_descendants.js | 8 ++++++-- 1 file changed, 6 insertions(+), 2 deletions(-) diff --git a/src/traces/treemap/draw_descendants.js b/src/traces/treemap/draw_descendants.js index 32c20344a62..dc37f2e0ceb 100644 --- a/src/traces/treemap/draw_descendants.js +++ b/src/traces/treemap/draw_descendants.js @@ -184,9 +184,13 @@ module.exports = function drawDescendants(gd, cd, entry, slices, opts) { var font = Lib.ensureUniformFontSize(gd, helpers.determineTextFont(trace, pt, fullLayout.font)); - sliceText.text(pt._text || ' ') // use one space character instead of a blank string to avoid jumps during transition + + var text = pt._text || ' '; // use one space character instead of a blank string to avoid jumps during transition + var singleLineHeader = isHeader && text.indexOf('<br>') === -1; + + sliceText.text(text) .classed('slicetext', true) - .attr('text-anchor', hasRight ? 'end' : (hasLeft || isHeader) ? 'start' : 'middle') + .attr('text-anchor', hasRight ? 'end' : (hasLeft || singleLineHeader) ? 'start' : 'middle') .call(Drawing.font, font) .call(svgTextUtils.convertToTspans, gd); From 9075d94c16718b139a9de0ec21c6d1c43e5240cf Mon Sep 17 00:00:00 2001 From: Mojtaba Samimi <arch.mojtaba.samimi@gmail.com> Date: Thu, 14 Mar 2024 12:00:02 -0400 Subject: [PATCH 2/3] add test --- .../zz-treemap_multi-line_headers.png | Bin 0 -> 10530 bytes .../mocks/zz-treemap_multi-line_headers.json | 41 ++++++++++++++++++ 2 files changed, 41 insertions(+) create mode 100644 test/image/baselines/zz-treemap_multi-line_headers.png create mode 100644 test/image/mocks/zz-treemap_multi-line_headers.json diff --git a/test/image/baselines/zz-treemap_multi-line_headers.png b/test/image/baselines/zz-treemap_multi-line_headers.png new file mode 100644 index 0000000000000000000000000000000000000000..58afe6c819f67217beec881dc081892e650b6748 GIT binary patch literal 10530 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 YL8GY(KxOkl?IX^k2l^V7YBsO`2cIeI5C8xG literal 0 HcmV?d00001 diff --git a/test/image/mocks/zz-treemap_multi-line_headers.json b/test/image/mocks/zz-treemap_multi-line_headers.json new file mode 100644 index 00000000000..7119fff7852 --- /dev/null +++ b/test/image/mocks/zz-treemap_multi-line_headers.json @@ -0,0 +1,41 @@ +{ + "data": [ + { + "labels": [ + "parent2", + "parent1<br>Long text on second line", + "item2", + "item1" + ], + "name": "", + "parents": [ + "", + "", + "parent2", + "parent1<br>Long text on second line" + ], + "values": [ + 0, + 0, + 200, + 500 + ], + "type": "treemap", + "textposition": "middle center", + "texttemplate": "<b>%{label}</b>", + "textfont": { + "size": 20 + } + } + ], + "layout": { + "margin": { + "t": 50, + "b": 10, + "l": 10, + "r": 10 + }, + "height": 200, + "width": 500 + } +} From c5455f0a9a5682c5dad74215a3e9dd85c5101820 Mon Sep 17 00:00:00 2001 From: Mojtaba Samimi <arch.mojtaba.samimi@gmail.com> Date: Thu, 14 Mar 2024 12:13:59 -0400 Subject: [PATCH 3/3] draft log --- draftlogs/6923_fix.md | 1 + 1 file changed, 1 insertion(+) create mode 100644 draftlogs/6923_fix.md diff --git a/draftlogs/6923_fix.md b/draftlogs/6923_fix.md new file mode 100644 index 00000000000..2dc85b084b7 --- /dev/null +++ b/draftlogs/6923_fix.md @@ -0,0 +1 @@ + - Fix centering multi-line headers for treemap traces [[#6923](https://github.com/plotly/plotly.js/pull/6923)]