Skip to content

Commit 7fa1164

Browse files
committed
Use texttemplatefallback for derived variables on multi-axis shapes
1 parent 35a0001 commit 7fa1164

File tree

3 files changed

+17
-6
lines changed

3 files changed

+17
-6
lines changed

src/components/shapes/display_labels.js

Lines changed: 11 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -27,7 +27,18 @@ module.exports = function drawLabel(gd, index, options, shapeGroup) {
2727
if (options.type !== 'path') {
2828
var _xa = Axes.getFromId(gd, options.xref);
2929
var _ya = Axes.getFromId(gd, options.yref);
30+
var isMultiAxisX = Array.isArray(options.xref);
31+
var isMultiAxisY = Array.isArray(options.yref);
32+
33+
// For multi-axis shapes, derived variables are meaningless
34+
// Skip them and let texttemplatefallback handle those cases.
35+
var derivedX = ['dx', 'width', 'xcenter', 'slope', 'length'];
36+
var derivedY = ['dy', 'height', 'ycenter', 'slope', 'length'];
37+
3038
for (var key in shapeLabelTexttemplateVars) {
39+
if (isMultiAxisX && derivedX.includes(key)) continue;
40+
if (isMultiAxisY && derivedY.includes(key)) continue;
41+
3142
var val = shapeLabelTexttemplateVars[key](options, _xa, _ya);
3243
if (val !== undefined) templateValues[key] = val;
3344
}
2.01 KB
Loading

test/jasmine/tests/shapes_test.js

Lines changed: 6 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -1671,12 +1671,12 @@ describe('Test multi-axis shapes', function() {
16711671
beforeEach(function() { gd = createGraphDiv(); });
16721672
afterEach(destroyGraphDiv);
16731673

1674-
function getShape(index) {
1674+
function getShapesWithIndex(index) {
16751675
return d3SelectAll('.shapelayer path[data-index="' + index + '"]');
16761676
}
16771677

16781678
function getBoundingBox(index) {
1679-
var node = getShape(index).node();
1679+
var node = getShapesWithIndex(index).node();
16801680
return node ? node.getBoundingClientRect() : null;
16811681
}
16821682

@@ -1696,10 +1696,10 @@ describe('Test multi-axis shapes', function() {
16961696
{type: 'path', xref: ['x', 'x2'], yref: ['y', 'y2'], path: 'M1,1L2,2'}
16971697
]
16981698
}).then(function() {
1699-
expect(getShape(0).size()).toBe(1);
1700-
expect(getShape(1).size()).toBe(1);
1701-
expect(getShape(2).size()).toBe(1);
1702-
expect(getShape(3).size()).toBe(1);
1699+
expect(getShapesWithIndex(0).size()).toBe(1);
1700+
expect(getShapesWithIndex(1).size()).toBe(1);
1701+
expect(getShapesWithIndex(2).size()).toBe(1);
1702+
expect(getShapesWithIndex(3).size()).toBe(1);
17031703
})
17041704
.then(done, done.fail);
17051705
});

0 commit comments

Comments
 (0)