@@ -239,14 +239,11 @@ function plot(gd, plotinfo, cdModule, traceLayer, opts, makeOnCompleteCallback)
239
239
var barWidth = isHorizontal ? Math . abs ( y1 - y0 ) : Math . abs ( x1 - x0 ) ;
240
240
if ( ! radiusParam ) {
241
241
return 0 ;
242
- } else if ( typeof radiusParam === " string" ) { // if it's a percentage string
242
+ } else if ( typeof radiusParam === ' string' ) { // if it's a percentage string
243
243
var rPercent = parseFloat ( radiusParam . replace ( '%' , '' ) ) ;
244
244
return barWidth * ( rPercent / 100 ) ;
245
245
} else { // otherwise, it's a number
246
- return Math . min (
247
- radiusParam ,
248
- barWidth / 2 ,
249
- ) ;
246
+ return Math . max ( Math . min ( radiusParam , barWidth / 2 ) , 0 ) ;
250
247
}
251
248
}
252
249
var r = calcCornerRadius ( trace . marker . cornerradius || fullLayout . barcornerradius ) ;
@@ -255,20 +252,20 @@ function plot(gd, plotinfo, cdModule, traceLayer, opts, makeOnCompleteCallback)
255
252
256
253
var path ;
257
254
if ( r && isHorizontal ) {
258
- path = 'M' + x0 + ',' + y0
259
- + 'V' + y1
260
- + 'H' + ( x1 - r * bardir )
261
- + 'a ' + r + ',' + r + ' 0 0 ' + cornersweep + ' ' + r * bardir + ',' + r
262
- + 'V' + ( y0 - r )
263
- + 'a ' + r + ',' + r + ' 0 0 ' + cornersweep + ' ' + - r * bardir + ',' + r
264
- + 'Z' ;
265
- } else if ( r ) {
266
- path = 'M' + x0 + ',' + y0
267
- + 'V' + ( y1 + r * bardir )
268
- + 'a ' + r + ',' + r + ' 0 0 ' + cornersweep + ' ' + r + ',' + - r * bardir
269
- + 'H' + ( x1 - r )
270
- + 'a ' + r + ',' + r + ' 0 0 ' + cornersweep + ' ' + r + ',' + r * bardir
271
- + 'V' + y0 + 'Z' ;
255
+ path = 'M' + x0 + ',' + y0 +
256
+ 'V' + y1 +
257
+ 'H' + ( x1 - r * bardir ) +
258
+ 'a ' + r + ',' + r + ' 0 0 ' + cornersweep + ' ' + r * bardir + ',' + r +
259
+ 'V' + ( y0 - r ) +
260
+ 'a ' + r + ',' + r + ' 0 0 ' + cornersweep + ' ' + - r * bardir + ',' + r +
261
+ 'Z' ;
262
+ } else if ( r ) {
263
+ path = 'M' + x0 + ',' + y0 +
264
+ 'V' + ( y1 + r * bardir ) +
265
+ 'a ' + r + ',' + r + ' 0 0 ' + cornersweep + ' ' + r + ',' + - r * bardir +
266
+ 'H' + ( x1 - r ) +
267
+ 'a ' + r + ',' + r + ' 0 0 ' + cornersweep + ' ' + r + ',' + r * bardir +
268
+ 'V' + y0 + 'Z' ;
272
269
} else {
273
270
path = 'M' + x0 + ',' + y0 + 'V' + y1 + 'H' + x1 + 'V' + y0 + 'Z' ;
274
271
}
0 commit comments