@@ -48,13 +48,16 @@ function annAutorange(gd) {
48
48
Lib . filterVisible ( fullLayout . annotations ) . forEach ( function ( ann ) {
49
49
var xa = Axes . getFromId ( gd , ann . xref ) ,
50
50
ya = Axes . getFromId ( gd , ann . yref ) ,
51
- headSize = 3 * ann . arrowsize * ann . arrowwidth || 0 ;
51
+ headSize = 3 * ann . arrowsize * ann . arrowwidth || 0 ,
52
+ startHeadSize = 3 * ann . startarrowsize * ann . arrowwidth || 0 ;
52
53
53
- var headPlus , headMinus ;
54
+ var headPlus , headMinus , startHeadPlus , startHeadMinus ;
54
55
55
56
if ( xa && xa . autorange ) {
56
57
headPlus = headSize + ann . xshift ;
57
58
headMinus = headSize - ann . xshift ;
59
+ startHeadPlus = startHeadSize + ann . xshift ;
60
+ startHeadMinus = startHeadSize - ann . xshift ;
58
61
59
62
if ( ann . axref === ann . xref ) {
60
63
// expand for the arrowhead (padded by arrowhead)
@@ -64,36 +67,42 @@ function annAutorange(gd) {
64
67
} ) ;
65
68
// again for the textbox (padded by textbox)
66
69
Axes . expand ( xa , [ xa . r2c ( ann . ax ) ] , {
67
- ppadplus : ann . _xpadplus ,
68
- ppadminus : ann . _xpadminus
70
+ ppadplus : Math . max ( ann . _xpadplus , startHeadPlus ) ,
71
+ ppadminus : Math . max ( ann . _xpadminus , startHeadMinus )
69
72
} ) ;
70
73
}
71
74
else {
75
+ startHeadPlus = ann . ax ? startHeadPlus + ann . ax : startHeadPlus ;
76
+ startHeadMinus = ann . ax ? startHeadMinus - ann . ax : startHeadMinus ;
72
77
Axes . expand ( xa , [ xa . r2c ( ann . x ) ] , {
73
- ppadplus : Math . max ( ann . _xpadplus , headPlus ) ,
74
- ppadminus : Math . max ( ann . _xpadminus , headMinus )
78
+ ppadplus : Math . max ( ann . _xpadplus , headPlus , startHeadPlus ) ,
79
+ ppadminus : Math . max ( ann . _xpadminus , headMinus , startHeadMinus )
75
80
} ) ;
76
81
}
77
82
}
78
83
79
84
if ( ya && ya . autorange ) {
80
85
headPlus = headSize - ann . yshift ;
81
86
headMinus = headSize + ann . yshift ;
87
+ startHeadPlus = startHeadSize - ann . yshift ;
88
+ startHeadMinus = startHeadSize + ann . yshift ;
82
89
83
90
if ( ann . ayref === ann . yref ) {
84
91
Axes . expand ( ya , [ ya . r2c ( ann . y ) ] , {
85
92
ppadplus : headPlus ,
86
93
ppadminus : headMinus
87
94
} ) ;
88
95
Axes . expand ( ya , [ ya . r2c ( ann . ay ) ] , {
89
- ppadplus : ann . _ypadplus ,
90
- ppadminus : ann . _ypadminus
96
+ ppadplus : Math . max ( ann . _ypadplus , startHeadPlus ) ,
97
+ ppadminus : Math . max ( ann . _ypadminus , startHeadMinus )
91
98
} ) ;
92
99
}
93
100
else {
101
+ startHeadPlus = ann . ay ? startHeadPlus + ann . ay : startHeadPlus ;
102
+ startHeadMinus = ann . ay ? startHeadMinus - ann . ay : startHeadMinus ;
94
103
Axes . expand ( ya , [ ya . r2c ( ann . y ) ] , {
95
- ppadplus : Math . max ( ann . _ypadplus , headPlus ) ,
96
- ppadminus : Math . max ( ann . _ypadminus , headMinus )
104
+ ppadplus : Math . max ( ann . _ypadplus , headPlus , startHeadPlus ) ,
105
+ ppadminus : Math . max ( ann . _ypadminus , headMinus , startHeadMinus )
97
106
} ) ;
98
107
}
99
108
}
0 commit comments