Skip to content

Commit 68e9e48

Browse files
committed
lint axisbrush
1 parent 01ba11e commit 68e9e48

File tree

1 file changed

+17
-22
lines changed

1 file changed

+17
-22
lines changed

src/traces/parcoords/axisbrush.js

Lines changed: 17 additions & 22 deletions
Original file line numberDiff line numberDiff line change
@@ -214,24 +214,23 @@ function getInterval(b, height, y) {
214214
}
215215
}
216216
}
217-
// fixme consider refactoring this otherwise quite simple nested ternary
218-
var closestInterval = isNaN(hoveredInterval)
219-
? ( // if we're South of the 1st interval, there's no previous interval
220-
isNaN(previousInterval)
221-
? nextInterval
222-
: ( // if we're North of the last interval, there's no next interval
223-
isNaN(nextInterval)
224-
? previousInterval
225-
: ( // if we have both previous and subsequent intervals, which one is closer?
226-
y - pixIntervals[previousInterval][1] < pixIntervals[nextInterval][0] - y
227-
? previousInterval
228-
: nextInterval)))
229-
: hoveredInterval; // if we're hovering over an interval, that's trivially the closest interval
217+
218+
var closestInterval = hoveredInterval;
219+
if(isNaN(closestInterval)) {
220+
if(isNaN(previousInterval) || isNaN(nextInterval)) {
221+
closestInterval = isNaN(previousInterval) ? nextInterval : previousInterval;
222+
}
223+
else {
224+
closestInterval = (y - pixIntervals[previousInterval][1] < pixIntervals[nextInterval][0] - y) ?
225+
previousInterval : nextInterval;
226+
}
227+
}
228+
230229
var fPix = pixIntervals[closestInterval];
231230

232231
return {
233232
interval: isNaN(closestInterval) ? null : intervals[closestInterval], // activated interval in domain terms
234-
intervalPix: isNaN(closestInterval) ? null : pixIntervals[closestInterval], // activated interval in pixel terms
233+
intervalPix: isNaN(closestInterval) ? null : fPix, // activated interval in pixel terms
235234
n: north(fPix, y), // do we hover over the northern resize hotspot
236235
s: south(fPix, y), // do we hover over the northern resize hotspot
237236
m: middle(fPix, y) // or over the bar section itself?
@@ -278,17 +277,13 @@ function attachDragBehavior(selection) {
278277
s.barLength = pixelRange[1] - pixelRange[0];
279278
s.grabbingBar = active && intData.m && unitRange;
280279
s.stayingIntervals = !d.multiselect ? [] :
281-
barInteraction
282-
? b.filter.get().filter(differentInterval(unitRange))
283-
: b.filter.get(); // keep all preexisting bars if interaction wasn't a barInteraction
280+
barInteraction ?
281+
b.filter.get().filter(differentInterval(unitRange)) :
282+
b.filter.get(); // keep all preexisting bars if interaction wasn't a barInteraction
284283
var grabbingBarNorth = intData.n;
285284
var grabbingBarSouth = intData.s;
286285
var newBrushing = !s.grabbingBar && !grabbingBarNorth && !grabbingBarSouth;
287-
s.startExtent = newBrushing
288-
? d.unitScaleInOrder.invert(y)
289-
: grabbingBarSouth
290-
? unitRange[1]
291-
: unitRange[0];
286+
s.startExtent = newBrushing ? unitLocation : unitRange[grabbingBarSouth ? 1 : 0];
292287
d.parent.inBrushDrag = true;
293288
s.brushStartCallback();
294289
})

0 commit comments

Comments
 (0)