@@ -1098,7 +1098,7 @@ class TAxisPainter extends ObjectPainter {
10981098
10991099 /** @summary Draw axis labels
11001100 * @return {Promise } with array label size and max width */
1101- async drawLabels ( axis_g , axis , w , h , handle , side , labelsFont , labeloffset , tickSize , ticksPlusMinus , max_text_width , frame_ygap ) {
1101+ async drawLabels ( axis_g , axis , w , h , handle , labelsside , labelsFont , labeloffset , tickSize , ticksPlusMinus , max_text_width , frame_ygap ) {
11021102 const center_lbls = this . isCenteredLabels ( ) ,
11031103 label_g = [ axis_g . append ( 'svg:g' ) . attr ( 'class' , 'axis_labels' ) ] ,
11041104 lbl_pos = handle . lbl_pos || handle . major ,
@@ -1170,13 +1170,8 @@ class TAxisPainter extends ObjectPainter {
11701170 }
11711171 }
11721172
1173- let pr = Promise . resolve ( ) ;
1174-
1175- for ( let lcnt = 0 ; lcnt < label_g . length ; ++ lcnt ) {
1176- if ( lcnt > 0 )
1177- side = - side ;
1178-
1179- pr = pr . then ( ( ) => this . startTextDrawingAsync ( labelsFont , 'font' , label_g [ lcnt ] ) ) . then ( ( ) => {
1173+ const draw_labels = ( lcnt , side ) => {
1174+ return this . startTextDrawingAsync ( labelsFont , 'font' , label_g [ lcnt ] ) . then ( ( ) => {
11801175 let lastpos = 0 ;
11811176 const fix_coord = this . vertical ? - labeloffset * side : labeloffset * side + ticksPlusMinus * tickSize ;
11821177
@@ -1222,7 +1217,8 @@ class TAxisPainter extends ObjectPainter {
12221217 if ( this . vertical ) {
12231218 arg . x = fix_coord ;
12241219 arg . y = pos ;
1225- arg . align = rotate_lbls ? ( this . optionLeft || this . reverseAlign ? 23 : 21 ) : ( this . optionLeft || this . reverseAlign ? 12 : 32 ) ;
1220+ const flag = this . optionLeft || this . reverseAlign || ( side < 0 ) ;
1221+ arg . align = rotate_lbls ? ( flag ? 23 : 21 ) : ( flag ? 12 : 32 ) ;
12261222 if ( this . cutLabels ( ) ) {
12271223 const gap = labelsFont . size * ( rotate_lbls ? 1.5 : 0.6 ) ;
12281224 if ( ( pos < gap ) || ( pos > h - gap ) )
@@ -1292,14 +1288,16 @@ class TAxisPainter extends ObjectPainter {
12921288 } ) ;
12931289 }
12941290
1295- if ( ( lcnt > 1 ) && applied_scale )
1291+ if ( ( lcnt > 0 ) && applied_scale )
12961292 this . scaleTextDrawing ( applied_scale , label_g [ lcnt ] ) ;
12971293
12981294 return this . finishTextDrawing ( label_g [ lcnt ] , true ) ;
12991295 } ) ;
1300- }
1296+ } ;
13011297
1302- return pr . then ( ( ) => {
1298+ return draw_labels ( 0 , labelsside ) . then ( ( ) => {
1299+ return label_g . length < 2 ? true : draw_labels ( 1 , - labelsside ) ;
1300+ } ) . then ( ( ) => {
13031301 this . _maxlbllen = maxtextlen ; // for internal use in palette painter
13041302
13051303 if ( lbl_tilt ) {
0 commit comments