Skip to content

Commit c6d954d

Browse files
committed
selections in plots
1 parent c7e49e7 commit c6d954d

File tree

10 files changed

+34
-21
lines changed

10 files changed

+34
-21
lines changed

src/plots/cartesian/axes.js

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -213,6 +213,7 @@ axes.redrawComponents = function(gd, axIds) {
213213
_redrawOneComp('annotations', 'drawOne', '_annIndices');
214214
_redrawOneComp('shapes', 'drawOne', '_shapeIndices');
215215
_redrawOneComp('images', 'draw', '_imgIndices', true);
216+
_redrawOneComp('selections', 'drawOne', '_selectionIndices');
216217
};
217218

218219
var getDataConversions = axes.getDataConversions = function(gd, trace, target, targetArray) {

src/plots/cartesian/dragbox.js

Lines changed: 3 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -26,9 +26,9 @@ var redrawReglTraces = require('../../plot_api/subroutines').redrawReglTraces;
2626
var Plots = require('../plots');
2727

2828
var getFromId = require('./axis_ids').getFromId;
29-
var prepSelect = require('../../components/selections/select').prepSelect;
30-
var clearSelect = require('../../components/selections/select').clearSelect;
31-
var selectOnClick = require('../../components/selections/select').selectOnClick;
29+
var prepSelect = require('../../components/selections').prepSelect;
30+
var clearSelect = require('../../components/selections').clearSelect;
31+
var selectOnClick = require('../../components/selections').selectOnClick;
3232
var scaleZoom = require('./scale_zoom');
3333

3434
var constants = require('./constants');
@@ -231,9 +231,6 @@ function makeDragBox(gd, plotinfo, x, y, w, h, ns, ew) {
231231
updateSubplots([0, 0, pw, ph]);
232232
dragOptions.moveFn(dragDataNow.dx, dragDataNow.dy);
233233
}
234-
235-
// TODO should we try to "re-select" under select/lasso modes?
236-
// probably best to wait for https://github.com/plotly/plotly.js/issues/1851
237234
}
238235
};
239236
};

src/plots/cartesian/layout_defaults.js

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -146,6 +146,7 @@ module.exports = function supplyLayoutDefaults(layoutIn, layoutOut, fullData) {
146146
axLayoutOut._traceIndices = traces.map(function(t) { return t._expandedIndex; });
147147
axLayoutOut._annIndices = [];
148148
axLayoutOut._shapeIndices = [];
149+
axLayoutOut._selectionIndices = [];
149150
axLayoutOut._imgIndices = [];
150151
axLayoutOut._subplotsWith = [];
151152
axLayoutOut._counterAxes = [];

src/plots/geo/geo.js

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -18,9 +18,9 @@ var Plots = require('../plots');
1818
var Axes = require('../cartesian/axes');
1919
var getAutoRange = require('../cartesian/autorange').getAutoRange;
2020
var dragElement = require('../../components/dragelement');
21-
var prepSelect = require('../../components/selections/select').prepSelect;
22-
var clearSelect = require('../../components/selections/select').clearSelect;
23-
var selectOnClick = require('../../components/selections/select').selectOnClick;
21+
var prepSelect = require('../../components/selections').prepSelect;
22+
var clearSelect = require('../../components/selections').clearSelect;
23+
var selectOnClick = require('../../components/selections').selectOnClick;
2424

2525
var createGeoZoom = require('./zoom');
2626
var constants = require('./constants');

src/plots/layout_attributes.js

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -4,6 +4,7 @@ var fontAttrs = require('./font_attributes');
44
var animationAttrs = require('./animation_attributes');
55
var colorAttrs = require('../components/color/attributes');
66
var drawNewShapeAttrs = require('../components/shapes/draw_newshape/attributes');
7+
var drawNewSelectionAttrs = require('../components/selections/draw_newselection/attributes');
78
var padAttrs = require('./pad_attributes');
89
var extendFlat = require('../lib/extend').extendFlat;
910

@@ -393,6 +394,9 @@ module.exports = {
393394
newshape: drawNewShapeAttrs.newshape,
394395
activeshape: drawNewShapeAttrs.activeshape,
395396

397+
newselection: drawNewSelectionAttrs.newselection,
398+
activeselection: drawNewSelectionAttrs.activeselection,
399+
396400
meta: {
397401
valType: 'any',
398402
arrayOk: true,

src/plots/mapbox/mapbox.js

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -14,10 +14,10 @@ var rectMode = dragHelpers.rectMode;
1414
var drawMode = dragHelpers.drawMode;
1515
var selectMode = dragHelpers.selectMode;
1616

17-
var prepSelect = require('../../components/selections/select').prepSelect;
18-
var clearSelect = require('../../components/selections/select').clearSelect;
19-
var clearSelectionsCache = require('../../components/selections/select').clearSelectionsCache;
20-
var selectOnClick = require('../../components/selections/select').selectOnClick;
17+
var prepSelect = require('../../components/selections').prepSelect;
18+
var clearSelect = require('../../components/selections').clearSelect;
19+
var clearSelectionsCache = require('../../components/selections').clearSelectionsCache;
20+
var selectOnClick = require('../../components/selections').selectOnClick;
2121

2222
var constants = require('./constants');
2323
var createMapboxLayer = require('./layers');

src/plots/plots.js

Lines changed: 10 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1539,6 +1539,11 @@ plots.supplyLayoutGlobalDefaults = function(layoutIn, layoutOut, formatObj) {
15391539
'supplyDrawNewShapeDefaults'
15401540
)(layoutIn, layoutOut, coerce);
15411541

1542+
Registry.getComponentMethod(
1543+
'selections',
1544+
'supplyDrawNewSelectionDefaults'
1545+
)(layoutIn, layoutOut, coerce);
1546+
15421547
coerce('meta');
15431548

15441549
// do not include defaults in fullLayout when users do not set transition
@@ -2901,6 +2906,7 @@ function _transition(gd, transitionOpts, opts) {
29012906
interruptPreviousTransitions,
29022907
opts.prepareFn,
29032908
plots.rehover,
2909+
plots.reselect,
29042910
executeTransitions
29052911
];
29062912

@@ -3357,6 +3363,10 @@ plots.redrag = function(gd) {
33573363
}
33583364
};
33593365

3366+
plots.reselect = function(gd) {
3367+
Registry.getComponentMethod('selections', 'reselect')(gd);
3368+
};
3369+
33603370
plots.generalUpdatePerTraceModule = function(gd, subplot, subplotCalcData, subplotLayout) {
33613371
var traceHashOld = subplot.traceHash;
33623372
var traceHash = {};

src/plots/polar/polar.js

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -18,9 +18,9 @@ var dragBox = require('../cartesian/dragbox');
1818
var dragElement = require('../../components/dragelement');
1919
var Fx = require('../../components/fx');
2020
var Titles = require('../../components/titles');
21-
var prepSelect = require('../../components/selections/select').prepSelect;
22-
var selectOnClick = require('../../components/selections/select').selectOnClick;
23-
var clearSelect = require('../../components/selections/select').clearSelect;
21+
var prepSelect = require('../../components/selections').prepSelect;
22+
var selectOnClick = require('../../components/selections').selectOnClick;
23+
var clearSelect = require('../../components/selections').clearSelect;
2424
var setCursor = require('../../lib/setcursor');
2525
var clearGlCanvases = require('../../lib/clear_gl_canvases');
2626
var redrawReglTraces = require('../../plot_api/subroutines').redrawReglTraces;

src/plots/ternary/ternary.js

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -19,10 +19,10 @@ var dragHelpers = require('../../components/dragelement/helpers');
1919
var freeMode = dragHelpers.freeMode;
2020
var rectMode = dragHelpers.rectMode;
2121
var Titles = require('../../components/titles');
22-
var prepSelect = require('../../components/selections/select').prepSelect;
23-
var selectOnClick = require('../../components/selections/select').selectOnClick;
24-
var clearSelect = require('../../components/selections/select').clearSelect;
25-
var clearSelectionsCache = require('../../components/selections/select').clearSelectionsCache;
22+
var prepSelect = require('../../components/selections').prepSelect;
23+
var selectOnClick = require('../../components/selections').selectOnClick;
24+
var clearSelect = require('../../components/selections').clearSelect;
25+
var clearSelectionsCache = require('../../components/selections').clearSelectionsCache;
2626
var constants = require('../cartesian/constants');
2727

2828
function Ternary(options, fullLayout) {

src/traces/sankey/base_plot.js

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -7,7 +7,7 @@ var fxAttrs = require('../../components/fx/layout_attributes');
77

88
var setCursor = require('../../lib/setcursor');
99
var dragElement = require('../../components/dragelement');
10-
var prepSelect = require('../../components/selections/select').prepSelect;
10+
var prepSelect = require('../../components/selections').prepSelect;
1111
var Lib = require('../../lib');
1212
var Registry = require('../../registry');
1313

0 commit comments

Comments
 (0)