@@ -167,6 +167,12 @@ function makeColorBarData(gd) {
167167 return out ;
168168}
169169
170+ // Move domain[0] toward domain[1] by delta, without crossing it
171+ const insetDomainStart = ( domain , delta ) => [ Math . min ( domain [ 0 ] + delta , domain [ 1 ] ) , domain [ 1 ] ] ;
172+
173+ // Move domain[1] toward domain[0] by delta, without crossing it
174+ const insetDomainEnd = ( domain , delta ) => [ domain [ 0 ] , Math . max ( domain [ 1 ] - delta , domain [ 0 ] ) ] ;
175+
170176function drawColorBar ( g , opts , gd ) {
171177 var isVertical = opts . orientation === 'v' ;
172178 var len = opts . len ;
@@ -300,13 +306,8 @@ function drawColorBar(g, opts, gd) {
300306
301307 // set domain after init, because we may want to
302308 // allow it outside [0,1]
303- ax . domain = isVertical ? [
304- vFrac + ypad / gs . h ,
305- vFrac + lenFrac - ypad / gs . h
306- ] : [
307- vFrac + xpad / gs . w ,
308- vFrac + lenFrac - xpad / gs . w
309- ] ;
309+ var padFrac = isVertical ? ypad / gs . h : xpad / gs . w ;
310+ ax . domain = insetDomainEnd ( insetDomainStart ( [ vFrac , vFrac + lenFrac ] , padFrac ) , padFrac ) ;
310311
311312 ax . setScale ( ) ;
312313
@@ -473,10 +474,10 @@ function drawColorBar(g, opts, gd) {
473474 titleHeight += 5 ;
474475
475476 if ( titleSide === 'top' ) {
476- ax . domain [ 1 ] -= titleHeight / gs . h ;
477+ ax . domain = insetDomainEnd ( ax . domain , titleHeight / gs . h ) ;
477478 titleTrans [ 1 ] *= - 1 ;
478479 } else {
479- ax . domain [ 0 ] += titleHeight / gs . h ;
480+ ax . domain = insetDomainStart ( ax . domain , titleHeight / gs . h ) ;
480481 var nlines = svgTextUtils . lineCount ( titleText ) ;
481482 titleTrans [ 1 ] += ( 1 - nlines ) * lineSize ;
482483 }
@@ -487,7 +488,7 @@ function drawColorBar(g, opts, gd) {
487488 } else { // horizontal colorbars
488489 if ( titleWidth ) {
489490 if ( titleSide === 'right' ) {
490- ax . domain [ 0 ] += ( titleWidth + titleFontSize / 2 ) / gs . w ;
491+ ax . domain = insetDomainStart ( ax . domain , ( titleWidth + titleFontSize / 2 ) / gs . w ) ;
491492 }
492493
493494 titleGroup . attr ( 'transform' , strTranslate ( titleTrans [ 0 ] , titleTrans [ 1 ] ) ) ;
0 commit comments