@@ -500,48 +500,33 @@ function calcTextinfo(calcTrace, index, fullLayout) {
500
500
var cdi = calcTrace [ index ] ;
501
501
502
502
var separators = fullLayout . separators ;
503
- var allParts = textinfo . split ( '+' ) ;
504
- var allTexts = [ ] ;
505
-
506
- var hadDelta = false ;
507
- var hadFinal = false ;
508
- var hadInitial = false ;
509
- var hadText = false ;
510
- var hadLabel = false ;
511
-
512
- for ( var k = 0 ; k < allParts . length ; k ++ ) {
513
- var part = allParts [ k ] ;
514
-
515
- if ( ! hadText && part === 'text' ) {
516
- hadText = true ;
517
- var tx = Lib . castOption ( trace , cdi . i , 'text' ) ;
518
- if ( tx ) allTexts . push ( tx ) ;
519
- } else if ( ! hadLabel && part === 'label' ) {
520
- hadLabel = true ;
521
- if ( trace . orientation === 'h' ) {
522
- allTexts . push ( trace . y [ index ] ) ;
523
- } else {
524
- allTexts . push ( trace . x [ index ] ) ;
525
- }
503
+ var parts = textinfo . split ( '+' ) ;
504
+ var text = [ ] ;
505
+
506
+ var hasFlag = function ( flag ) { return parts . indexOf ( flag ) !== - 1 ; } ;
507
+
508
+ if ( hasFlag ( 'label' ) ) {
509
+ if ( trace . orientation === 'h' ) {
510
+ text . push ( trace . y [ index ] ) ;
526
511
} else {
527
- // waterfall options
528
-
529
- var delta = + cdi . rawS || cdi . s ;
530
- var final = cdi . v ;
531
- var initial = final - delta ;
532
-
533
- if ( ! hadDelta && part === 'delta' ) {
534
- hadDelta = true ;
535
- allTexts . push ( pieHelpers . formatPieValue ( delta , separators ) ) ;
536
- } else if ( ! hadFinal && part === 'final' ) {
537
- hadFinal = true ;
538
- allTexts . push ( pieHelpers . formatPieValue ( final , separators ) ) ;
539
- } else if ( ! hadInitial && part === 'initial' ) {
540
- hadInitial = true ;
541
- allTexts . push ( pieHelpers . formatPieValue ( initial , separators ) ) ;
542
- }
512
+ text . push ( trace . x [ index ] ) ;
543
513
}
544
514
}
545
515
546
- return allTexts . join ( '<br>' ) ;
516
+ if ( hasFlag ( 'text' ) ) {
517
+ var tx = Lib . castOption ( trace , cdi . i , 'text' ) ;
518
+ if ( tx ) text . push ( tx ) ;
519
+ }
520
+
521
+ if ( trace . type === 'waterfall' ) {
522
+ var delta = + cdi . rawS || cdi . s ;
523
+ var final = cdi . v ;
524
+ var initial = final - delta ;
525
+
526
+ if ( hasFlag ( 'initial' ) ) text . push ( pieHelpers . formatPieValue ( initial , separators ) ) ;
527
+ if ( hasFlag ( 'delta' ) ) text . push ( pieHelpers . formatPieValue ( delta , separators ) ) ;
528
+ if ( hasFlag ( 'final' ) ) text . push ( pieHelpers . formatPieValue ( final , separators ) ) ;
529
+ }
530
+
531
+ return text . join ( '<br>' ) ;
547
532
}
0 commit comments