File tree Expand file tree Collapse file tree 2 files changed +15
-7
lines changed
Expand file tree Collapse file tree 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) {
2626 layers . style ( 'opacity' , d [ 0 ] . trace . opacity ) ;
2727
2828 // 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+ }
3440
3541 var fill = layers
3642 . selectAll ( 'g.legendfill' )
Original file line number Diff line number Diff line change @@ -16,6 +16,8 @@ var createGraphDiv = require('../assets/create_graph_div');
1616var destroyGraphDiv = require ( '../assets/destroy_graph_div' ) ;
1717var assertPlotSize = require ( '../assets/custom_assertions' ) . assertPlotSize ;
1818
19+ var Drawing = require ( '@src/components/drawing' ) ;
20+
1921describe ( 'legend defaults' , function ( ) {
2022 'use strict' ;
2123
@@ -676,8 +678,8 @@ describe('legend relayout update', function() {
676678 afterEach ( destroyGraphDiv ) ;
677679
678680 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 ;
681683 }
682684
683685 it ( 'it should translate markers' , function ( done ) {
You can’t perform that action at this time.
0 commit comments