Skip to content

Commit 5060946

Browse files
committed
move makeFillRangeItems outside preSelect
1 parent 420cefc commit 5060946

File tree

1 file changed

+44
-47
lines changed

1 file changed

+44
-47
lines changed

src/components/selections/select.js

Lines changed: 44 additions & 47 deletions
Original file line numberDiff line numberDiff line change
@@ -27,6 +27,7 @@ var newSelections = require('./draw_newselection/newselections');
2727
var activateLastSelection = require('./draw').activateLastSelection;
2828

2929
var Lib = require('../../lib');
30+
var ascending = Lib.sorterAsc;
3031
var polygon = require('../../lib/polygon');
3132
var throttle = require('../../lib/throttle');
3233
var getFromId = require('../../plots/cartesian/axis_ids').getFromId;
@@ -85,7 +86,6 @@ function prepSelect(evt, startX, startY, dragOptions, mode) {
8586
var pw = xAxis._length;
8687
var ph = yAxis._length;
8788

88-
var allAxes = dragOptions.xaxes.concat(dragOptions.yaxes);
8989
var subtract = evt.altKey &&
9090
!(drawMode(mode) && isOpenMode);
9191

@@ -141,53 +141,9 @@ function prepSelect(evt, startX, startY, dragOptions, mode) {
141141
var searchTraces = determineSearchTraces(gd, dragOptions.xaxes,
142142
dragOptions.yaxes, dragOptions.subplot);
143143

144-
function ascending(a, b) { return a - b; }
145-
146144
// allow subplots to override fillRangeItems routine
147-
var fillRangeItems;
148-
149-
if(plotinfo.fillRangeItems) {
150-
fillRangeItems = plotinfo.fillRangeItems;
151-
} else {
152-
fillRangeItems = function(eventData, poly, filterPoly) {
153-
var range = {};
154-
var ranges = {};
155-
156-
var hasRange = false;
157-
var hasRanges = false;
158-
159-
for(i = 0; i < allAxes.length; i++) {
160-
var ax = allAxes[i];
161-
var axLetter = ax._id.charAt(0);
162-
163-
var min = poly[axLetter + 'min'];
164-
var max = poly[axLetter + 'max'];
165-
166-
if(min !== undefined && max !== undefined) {
167-
range[ax._id] = [
168-
p2r(ax, min),
169-
p2r(ax, max)
170-
].sort(ascending);
171-
172-
hasRange = true;
173-
}
174-
175-
if(filterPoly.filtered) {
176-
ranges[ax._id] = filterPoly.filtered.map(axValue(ax));
177-
178-
hasRanges = true;
179-
}
180-
}
181-
182-
if(hasRange) {
183-
eventData.range = range;
184-
}
185-
186-
if(hasRanges) {
187-
eventData.lassoPoints = ranges;
188-
}
189-
};
190-
}
145+
var fillRangeItems = plotinfo.fillRangeItems ||
146+
makeFillRangeItems(dragOptions.xaxes.concat(dragOptions.yaxes));
191147

192148
dragOptions.moveFn = function(dx0, dy0) {
193149
x1 = Math.max(0, Math.min(pw, scaleX * dx0 + x0));
@@ -1310,6 +1266,47 @@ function convert(ax, d) {
13101266
return ax.type === 'log' ? ax.c2p(d) : ax.r2p(d, null, ax.calendar);
13111267
}
13121268

1269+
function makeFillRangeItems(allAxes) {
1270+
return function(eventData, poly, filterPoly) {
1271+
var range = {};
1272+
var ranges = {};
1273+
1274+
var hasRange = false;
1275+
var hasRanges = false;
1276+
1277+
for(var i = 0; i < allAxes.length; i++) {
1278+
var ax = allAxes[i];
1279+
var axLetter = ax._id.charAt(0);
1280+
1281+
var min = poly[axLetter + 'min'];
1282+
var max = poly[axLetter + 'max'];
1283+
1284+
if(min !== undefined && max !== undefined) {
1285+
range[ax._id] = [
1286+
p2r(ax, min),
1287+
p2r(ax, max)
1288+
].sort(ascending);
1289+
1290+
hasRange = true;
1291+
}
1292+
1293+
if(filterPoly && filterPoly.filtered) {
1294+
ranges[ax._id] = filterPoly.filtered.map(axValue(ax));
1295+
1296+
hasRanges = true;
1297+
}
1298+
}
1299+
1300+
if(hasRange) {
1301+
eventData.range = range;
1302+
}
1303+
1304+
if(hasRanges) {
1305+
eventData.lassoPoints = ranges;
1306+
}
1307+
};
1308+
}
1309+
13131310
module.exports = {
13141311
reselect: reselect,
13151312
prepSelect: prepSelect,

0 commit comments

Comments
 (0)