2
2
3
3
var d3 = require ( '@plotly/d3' ) ;
4
4
var d3Hierarchy = require ( 'd3-hierarchy' ) ;
5
+ var interpolate = require ( 'd3-interpolate' ) . interpolate ;
5
6
6
7
var Drawing = require ( '../../components/drawing' ) ;
7
8
var Lib = require ( '../../lib' ) ;
@@ -307,7 +308,9 @@ function plotOne(gd, cd, element, transitionOpts) {
307
308
// if pt to remove:
308
309
// - if 'below' where the root-node used to be: shrink it radially inward
309
310
// - otherwise, collapse it clockwise or counterclockwise which ever is shortest to theta=0
310
- next = pt . rpx1 < entryPrev . rpx1 ? { rpx0 : 0 , rpx1 : 0 } : { x0 : a , x1 : a } ;
311
+ next = pt . rpx1 < entryPrev . rpx1 ?
312
+ { x0 : pt . x0 , x1 : pt . x1 , rpx0 : 0 , rpx1 : 0 } :
313
+ { x0 : a , x1 : a , rpx0 : pt . rpx0 , rpx1 : pt . rpx1 } ;
311
314
} else {
312
315
// this happens when maxdepth is set, when leaves must
313
316
// be removed and the rootPt is new (i.e. does not have a 'prev' object)
@@ -326,14 +329,14 @@ function plotOne(gd, cd, element, transitionOpts) {
326
329
}
327
330
} ) ;
328
331
var n = parentChildren . length ;
329
- var interp = d3 . interpolate ( parent . x0 , parent . x1 ) ;
332
+ var interp = interpolate ( parent . x0 , parent . x1 ) ;
330
333
next = {
331
334
rpx0 : rMax , rpx1 : rMax ,
332
335
x0 : interp ( ci / n ) , x1 : interp ( ( ci + 1 ) / n )
333
336
} ;
334
337
}
335
338
336
- return d3 . interpolate ( prev , next ) ;
339
+ return interpolate ( prev , next ) ;
337
340
}
338
341
339
342
function makeUpdateSliceInterpolator ( pt ) {
@@ -372,7 +375,7 @@ function plotOne(gd, cd, element, transitionOpts) {
372
375
}
373
376
}
374
377
375
- return d3 . interpolate ( prev , next ) ;
378
+ return interpolate ( prev , next ) ;
376
379
}
377
380
378
381
function makeUpdateTextInterpolator ( pt ) {
@@ -419,19 +422,19 @@ function plotOne(gd, cd, element, transitionOpts) {
419
422
}
420
423
}
421
424
422
- var textPosAngleFn = d3 . interpolate ( prev . transform . textPosAngle , pt . transform . textPosAngle ) ;
423
- var rpx1Fn = d3 . interpolate ( prev . rpx1 , pt . rpx1 ) ;
424
- var x0Fn = d3 . interpolate ( prev . x0 , pt . x0 ) ;
425
- var x1Fn = d3 . interpolate ( prev . x1 , pt . x1 ) ;
426
- var scaleFn = d3 . interpolate ( prev . transform . scale , transform . scale ) ;
427
- var rotateFn = d3 . interpolate ( prev . transform . rotate , transform . rotate ) ;
425
+ var textPosAngleFn = interpolate ( prev . transform . textPosAngle , pt . transform . textPosAngle ) ;
426
+ var rpx1Fn = interpolate ( prev . rpx1 , pt . rpx1 ) ;
427
+ var x0Fn = interpolate ( prev . x0 , pt . x0 ) ;
428
+ var x1Fn = interpolate ( prev . x1 , pt . x1 ) ;
429
+ var scaleFn = interpolate ( prev . transform . scale , transform . scale ) ;
430
+ var rotateFn = interpolate ( prev . transform . rotate , transform . rotate ) ;
428
431
429
432
// smooth out start/end from entry, to try to keep text inside sector
430
433
// while keeping transition smooth
431
434
var pow = transform . rCenter === 0 ? 3 :
432
435
prev . transform . rCenter === 0 ? 1 / 3 :
433
436
1 ;
434
- var _rCenterFn = d3 . interpolate ( prev . transform . rCenter , transform . rCenter ) ;
437
+ var _rCenterFn = interpolate ( prev . transform . rCenter , transform . rCenter ) ;
435
438
var rCenterFn = function ( t ) { return _rCenterFn ( Math . pow ( t , pow ) ) ; } ;
436
439
437
440
return function ( t ) {
@@ -476,7 +479,7 @@ function plotOne(gd, cd, element, transitionOpts) {
476
479
var parentChildren = parent . children ;
477
480
var ci = parentChildren . indexOf ( pt ) ;
478
481
var n = parentChildren . length ;
479
- var interp = d3 . interpolate ( parentPrev . x0 , parentPrev . x1 ) ;
482
+ var interp = interpolate ( parentPrev . x0 , parentPrev . x1 ) ;
480
483
out . x0 = interp ( ci / n ) ;
481
484
out . x1 = interp ( ci / n ) ;
482
485
} else {
0 commit comments