Skip to content

Commit 53e1b61

Browse files
committed
provide bbox for sunburst treemap and icicle
1 parent 262505d commit 53e1b61

File tree

4 files changed

+28
-3
lines changed

4 files changed

+28
-3
lines changed

src/traces/sunburst/fx.js

Lines changed: 10 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -52,6 +52,8 @@ module.exports = function attachFxHandlers(sliceTop, entry, gd, cd, opts) {
5252
var hoverinfo = Fx.castHoverinfo(traceNow, fullLayoutNow, ptNumber);
5353
var separators = fullLayoutNow.separators;
5454

55+
var eventData;
56+
5557
if(hovertemplate || (hoverinfo && hoverinfo !== 'none' && hoverinfo !== 'skip')) {
5658
var hoverCenterX;
5759
var hoverCenterY;
@@ -125,6 +127,8 @@ module.exports = function attachFxHandlers(sliceTop, entry, gd, cd, opts) {
125127
if(Lib.isValidTextValue(tx)) thisText.push(tx);
126128
}
127129

130+
eventData = [makeEventData(pt, traceNow, opts.eventDataKeys)];
131+
128132
var hoverItems = {
129133
trace: traceNow,
130134
y: hoverCenterY,
@@ -139,7 +143,7 @@ module.exports = function attachFxHandlers(sliceTop, entry, gd, cd, opts) {
139143
textAlign: _cast('hoverlabel.align'),
140144
hovertemplate: hovertemplate,
141145
hovertemplateLabels: hoverPt,
142-
eventData: [makeEventData(pt, traceNow, opts.eventDataKeys)]
146+
eventData: eventData
143147
};
144148

145149
if(isSunburst) {
@@ -152,11 +156,14 @@ module.exports = function attachFxHandlers(sliceTop, entry, gd, cd, opts) {
152156
hoverItems.idealAlign = hoverCenterX < 0 ? 'left' : 'right';
153157
}
154158

159+
var bbox = [];
155160
Fx.loneHover(hoverItems, {
156161
container: fullLayoutNow._hoverlayer.node(),
157162
outerContainer: fullLayoutNow._paper.node(),
158-
gd: gd
163+
gd: gd,
164+
inOut_bbox: bbox
159165
});
166+
eventData[0].bbox = bbox[0];
160167

161168
trace._hasHoverLabel = true;
162169
}
@@ -170,7 +177,7 @@ module.exports = function attachFxHandlers(sliceTop, entry, gd, cd, opts) {
170177

171178
trace._hasHoverEvent = true;
172179
gd.emit('plotly_hover', {
173-
points: [makeEventData(pt, traceNow, opts.eventDataKeys)],
180+
points: eventData || [makeEventData(pt, traceNow, opts.eventDataKeys)],
174181
event: d3.event
175182
});
176183
};

test/jasmine/tests/icicle_test.js

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -526,6 +526,12 @@ describe('Test icicle hover:', function() {
526526
expect(ptData[k]).toBe(exp.ptData[k], 'pt event data key ' + k);
527527
}
528528

529+
expect(typeof ptData.bbox).toEqual('object');
530+
expect(typeof ptData.bbox.x0).toEqual('number');
531+
expect(typeof ptData.bbox.x1).toEqual('number');
532+
expect(typeof ptData.bbox.y0).toEqual('number');
533+
expect(typeof ptData.bbox.y1).toEqual('number');
534+
529535
if(exp.style) {
530536
var gd3 = d3Select(gd);
531537
assertHoverLabelStyle(gd3.select('.hovertext'), exp.style);

test/jasmine/tests/sunburst_test.js

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -539,6 +539,12 @@ describe('Test sunburst hover:', function() {
539539
expect(ptData[k]).toBe(exp.ptData[k], 'pt event data key ' + k);
540540
}
541541

542+
expect(typeof ptData.bbox).toEqual('object');
543+
expect(typeof ptData.bbox.x0).toEqual('number');
544+
expect(typeof ptData.bbox.x1).toEqual('number');
545+
expect(typeof ptData.bbox.y0).toEqual('number');
546+
expect(typeof ptData.bbox.y1).toEqual('number');
547+
542548
if(exp.style) {
543549
var gd3 = d3Select(gd);
544550
assertHoverLabelStyle(gd3.select('.hovertext'), exp.style);

test/jasmine/tests/treemap_test.js

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -628,6 +628,12 @@ describe('Test treemap hover:', function() {
628628
expect(ptData[k]).toBe(exp.ptData[k], 'pt event data key ' + k);
629629
}
630630

631+
expect(typeof ptData.bbox).toEqual('object');
632+
expect(typeof ptData.bbox.x0).toEqual('number');
633+
expect(typeof ptData.bbox.x1).toEqual('number');
634+
expect(typeof ptData.bbox.y0).toEqual('number');
635+
expect(typeof ptData.bbox.y1).toEqual('number');
636+
631637
if(exp.style) {
632638
var gd3 = d3Select(gd);
633639
assertHoverLabelStyle(gd3.select('.hovertext'), exp.style);

0 commit comments

Comments
 (0)