File tree 2 files changed +15
-7
lines changed
2 files changed +15
-7
lines changed Original file line number Diff line number Diff line change @@ -26,11 +26,17 @@ module.exports = function style(s, gd) {
26
26
layers . style ( 'opacity' , d [ 0 ] . trace . opacity ) ;
27
27
28
28
// Marker vertical alignment
29
- var valignFactor = 0 ;
30
- if ( gd . _fullLayout . legend . valign === 'top' ) valignFactor = 1.0 ;
31
- if ( gd . _fullLayout . legend . valign === 'bottom' ) valignFactor = - 1.0 ;
32
- var markerOffsetY = valignFactor * ( 0.5 * ( d [ 0 ] . lineHeight - d [ 0 ] . height + 3 ) ) ;
33
- if ( ! isNaN ( markerOffsetY ) ) layers . attr ( 'transform' , 'translate(0,' + markerOffsetY + ')' ) ;
29
+ var valign = gd . _fullLayout . legend . valign ;
30
+ var lineHeight = d [ 0 ] . lineHeight ;
31
+ var height = d [ 0 ] . height ;
32
+
33
+ if ( valign === 'middle' || ! lineHeight || ! height ) {
34
+ layers . attr ( 'transform' , null ) ; // this here is a fun d3 trick to unset DOM attributes
35
+ } else {
36
+ var factor = { top : 1 , bottom : - 1 } [ valign ] ;
37
+ var markerOffsetY = factor * ( 0.5 * ( lineHeight - height + 3 ) ) ;
38
+ layers . attr ( 'transform' , 'translate(0,' + markerOffsetY + ')' ) ;
39
+ }
34
40
35
41
var fill = layers
36
42
. selectAll ( 'g.legendfill' )
Original file line number Diff line number Diff line change @@ -16,6 +16,8 @@ var createGraphDiv = require('../assets/create_graph_div');
16
16
var destroyGraphDiv = require ( '../assets/destroy_graph_div' ) ;
17
17
var assertPlotSize = require ( '../assets/custom_assertions' ) . assertPlotSize ;
18
18
19
+ var Drawing = require ( '@src/components/drawing' ) ;
20
+
19
21
describe ( 'legend defaults' , function ( ) {
20
22
'use strict' ;
21
23
@@ -676,8 +678,8 @@ describe('legend relayout update', function() {
676
678
afterEach ( destroyGraphDiv ) ;
677
679
678
680
function markerOffsetY ( ) {
679
- var translateY = d3 . select ( '.legend .traces .layers' ) . attr ( 'transform' ) . match ( / t r a n s l a t e \( \d + , ( - ? \d + ) \) / ) [ 1 ] ;
680
- return parseFloat ( translateY ) ;
681
+ var translate = Drawing . getTranslate ( d3 . select ( '.legend .traces .layers' ) ) ;
682
+ return translate . y ;
681
683
}
682
684
683
685
it ( 'it should translate markers' , function ( done ) {
You can’t perform that action at this time.
0 commit comments