@@ -14,7 +14,8 @@ var interactConstants = require('../../constants/interactions');
14
14
15
15
var OPPOSITE_SIDE = require ( '../../constants/alignment' ) . OPPOSITE_SIDE ;
16
16
var numStripRE = / [ X Y ] [ 0 - 9 ] * / ;
17
- var MATHJAX_PADDING_BOTTOM = 10 ;
17
+ var MATHJAX_PADDING_MULTIPLIER = 0.83 ;
18
+ var EXTRA_SPACING_BETWEEN_TITLE_AND_SUBTITLE = 0 ;
18
19
19
20
/**
20
21
* Titles - (re)draw titles on the axes and plot:
@@ -79,12 +80,12 @@ function draw(gd, titleClass, options) {
79
80
var subtitleProp = options . subtitlePropName ;
80
81
var subtitleEnabled = ! ! subtitleProp ;
81
82
var subtitlePlaceholder = options . subtitlePlaceholder ;
82
- var subtitle = ( cont . title || { } ) . subtitle ;
83
- var subtitleTxt = ( subtitle && subtitle . text ? subtitle . text : '' ) . trim ( ) ;
83
+ var subtitle = ( cont . title || { } ) . subtitle || { text : '' , font : { } } ;
84
+ var subtitleTxt = subtitle . text . trim ( ) ;
84
85
var subtitleIsPlaceholder = false ;
85
86
var subtitleOpacity = 1 ;
86
87
87
- var subtitleFont = subtitle && subtitle . font ? subtitle . font : { } ;
88
+ var subtitleFont = subtitle . font ;
88
89
var subFontFamily = subtitleFont . family ;
89
90
var subFontSize = subtitleFont . size ;
90
91
var subFontColor = subtitleFont . color ;
@@ -210,7 +211,7 @@ function draw(gd, titleClass, options) {
210
211
if ( titleMathHeight ) {
211
212
// Increase the y position of the subtitle by the height of the title,
212
213
// plus a bit of padding
213
- var newSubtitleY = Number ( subtitleElement . attr ( 'y' ) ) + titleMathHeight + MATHJAX_PADDING_BOTTOM ;
214
+ var newSubtitleY = Number ( subtitleElement . attr ( 'y' ) ) + titleMathHeight + MATHJAX_PADDING_MULTIPLIER * subFontSize + EXTRA_SPACING_BETWEEN_TITLE_AND_SUBTITLE ;
214
215
subtitleElement . attr ( 'y' , newSubtitleY ) ;
215
216
}
216
217
}
@@ -238,9 +239,9 @@ function draw(gd, titleClass, options) {
238
239
var titleElHeight = titleEl . node ( ) . getBBox ( ) . height ;
239
240
var titleElMathGroup = group . select ( '.' + titleClass + '-math-group' ) ;
240
241
var titleElMathHeight = titleElMathGroup . node ( ) ? titleElMathGroup . node ( ) . getBBox ( ) . height : 0 ;
241
- var subtitleShift = titleElMathHeight ? titleElMathHeight + MATHJAX_PADDING_BOTTOM : titleElHeight ;
242
+ var subtitleShift = titleElMathHeight ? titleElMathHeight + ( MATHJAX_PADDING_MULTIPLIER * subFontSize ) : titleElHeight ;
242
243
var subtitleAttributes = Lib . extendFlat ( { } , attributes , {
243
- y : subtitleShift + attributes . y
244
+ y : subtitleShift + EXTRA_SPACING_BETWEEN_TITLE_AND_SUBTITLE + attributes . y
244
245
} ) ;
245
246
246
247
subtitleEl . attr ( 'transform' , transformVal ) ;
@@ -380,7 +381,7 @@ function draw(gd, titleClass, options) {
380
381
// Only adjust if subtitle is enabled and title text was originally empty
381
382
if ( subtitleEnabled && ! txt ) {
382
383
var ht = Drawing . bBox ( el . node ( ) ) . height ;
383
- var newSubtitleY = Number ( subtitleEl . attr ( 'y' ) ) + ht ;
384
+ var newSubtitleY = Number ( subtitleEl . attr ( 'y' ) ) + ht + EXTRA_SPACING_BETWEEN_TITLE_AND_SUBTITLE ;
384
385
subtitleEl . attr ( 'y' , newSubtitleY ) ;
385
386
}
386
387
0 commit comments