Skip to content

Commit 6a9d0d7

Browse files
committed
add selectedpoints to uirevision framework
1 parent 03baca7 commit 6a9d0d7

File tree

4 files changed

+20
-0
lines changed

4 files changed

+20
-0
lines changed

src/plot_api/plot_api.js

+1
Original file line numberDiff line numberDiff line change
@@ -2387,6 +2387,7 @@ var layoutUIControlPatterns = [
23872387
// same for trace attributes: if `attr` is given it's in layout,
23882388
// or with no `attr` we use `trace.uirevision`
23892389
var traceUIControlPatterns = [
2390+
{pattern: /^selectedpoints$/, attr: 'selectionrevision'},
23902391
// "visible" includes trace.transforms[i].styles[j].value.visible
23912392
{pattern: /(^|value\.)visible$/, attr: 'legend.uirevision'},
23922393
{pattern: /^dimensions\[\d+\]\.constraintrange/},

src/plots/cartesian/select.js

+9
Original file line numberDiff line numberDiff line change
@@ -666,6 +666,15 @@ function isOnlyOnePointSelected(searchTraces) {
666666
function updateSelectedState(gd, searchTraces, eventData) {
667667
var i, searchInfo, cd, trace;
668668

669+
// before anything else, update preGUI if necessary
670+
for(i = 0; i < searchTraces.length; i++) {
671+
var fullInputTrace = searchTraces[i].cd[0].trace._fullInput;
672+
var tracePreGUI = gd._fullLayout._tracePreGUI[fullInputTrace.uid];
673+
if(tracePreGUI.selectedpoints === undefined) {
674+
tracePreGUI.selectedpoints = fullInputTrace._input.selectedpoints || null;
675+
}
676+
}
677+
669678
if(eventData) {
670679
var pts = eventData.points || [];
671680

src/plots/layout_attributes.js

+9
Original file line numberDiff line numberDiff line change
@@ -234,6 +234,15 @@ module.exports = {
234234
'Defaults to `layout.uirevision`.'
235235
].join(' ')
236236
},
237+
selectionrevision: {
238+
valType: 'any',
239+
role: 'info',
240+
editType: 'none',
241+
description: [
242+
'Controls persistence of user-driven changes in selected points',
243+
'from all traces.'
244+
].join(' ')
245+
},
237246
template: {
238247
valType: 'any',
239248
role: 'info',

src/plots/plots.js

+1
Original file line numberDiff line numberDiff line change
@@ -1386,6 +1386,7 @@ plots.supplyLayoutGlobalDefaults = function(layoutIn, layoutOut, formatObj) {
13861386
coerce('datarevision');
13871387
var uirevision = coerce('uirevision');
13881388
coerce('editrevision', uirevision);
1389+
coerce('selectionrevision', uirevision);
13891390

13901391
coerce('modebar.orientation');
13911392
coerce('modebar.bgcolor', Color.addOpacity(layoutOut.paper_bgcolor, 0.5));

0 commit comments

Comments
 (0)