@@ -1599,6 +1599,102 @@ describe('Test select box and lasso in general:', function() {
15991599 } )
16001600 . then ( done , done . fail ) ;
16011601 } ) ;
1602+
1603+ it ( 'should re-select data in all overlaying visible traces' , function ( done ) {
1604+ var gd = createGraphDiv ( ) ;
1605+ _newPlot ( gd , [ {
1606+ x : [ 1 , 2 , 3 ] ,
1607+ y : [ 4 , 5 , 6 ] ,
1608+ name : 'yaxis1 data' ,
1609+ type : 'scatter'
1610+ } ,
1611+ {
1612+ x : [ 2 , 3 , 4 ] ,
1613+ y : [ 40 , 50 , 60 ] ,
1614+ name : 'yaxis2 data' ,
1615+ yaxis : 'y2' ,
1616+ xaxis : 'x2' ,
1617+ type : 'scatter'
1618+ } ,
1619+ {
1620+ x : [ 3 , 4 , 5 ] ,
1621+ y : [ 400 , 500 , 600 ] ,
1622+ name : 'yaxis3 data' ,
1623+ yaxis : 'y3' ,
1624+ type : 'scatter'
1625+ } ,
1626+ {
1627+ x : [ 4 , 5 , 6 ] ,
1628+ y : [ 1000 , 2000 , 3000 ] ,
1629+ name : 'yaxis4 data' ,
1630+ yaxis : 'y4' ,
1631+ xaxis : 'x2' ,
1632+ type : 'scatter'
1633+ }
1634+ ] ,
1635+ {
1636+ grid : {
1637+ rows : 2 ,
1638+ columns : 1 ,
1639+ pattern : 'independent'
1640+ } ,
1641+ width : 800 ,
1642+ height : 600 ,
1643+ yaxis : {
1644+ showline : true ,
1645+ title : {
1646+ text : 'yaxis title'
1647+ }
1648+ } ,
1649+ yaxis2 : {
1650+ title : {
1651+ text : 'yaxis2 title'
1652+ } ,
1653+ showline : true
1654+ } ,
1655+ yaxis3 : {
1656+ title : {
1657+ text : 'yaxis3 title'
1658+ } ,
1659+ anchor : 'free' ,
1660+ overlaying : 'y' ,
1661+ showline : true ,
1662+ autoshift : true
1663+ } ,
1664+ yaxis4 : {
1665+ title : {
1666+ text : 'yaxis4 title'
1667+ } ,
1668+ anchor : 'free' ,
1669+ overlaying : 'y2' ,
1670+ showline : true ,
1671+ autoshift : true
1672+ }
1673+ } ) . then ( function ( ) {
1674+ return Plotly . relayout ( gd , 'dragmode' , 'select' ) ;
1675+ } ) . then ( function ( ) {
1676+ return drag ( [ [ 150 , 450 ] , [ 650 , 350 ] ] ) ;
1677+ } ) . then ( function ( ) {
1678+ expect ( gd . data [ 0 ] . selectedpoints ) . toBe ( undefined ) ;
1679+ expect ( gd . data [ 1 ] . selectedpoints ) . toEqual ( [ 1 , 2 ] ) ;
1680+ expect ( gd . data [ 2 ] . selectedpoints ) . toBe ( undefined ) ;
1681+ expect ( gd . data [ 3 ] . selectedpoints ) . toEqual ( [ 1 , 2 ] ) ;
1682+ } ) . then ( function ( ) {
1683+ return drag ( [ [ 150 , 100 ] , [ 600 , 200 ] ] ) ;
1684+ } ) . then ( function ( ) {
1685+ expect ( gd . data [ 0 ] . selectedpoints ) . toEqual ( [ 1 , 2 ] ) ;
1686+ expect ( gd . data [ 1 ] . selectedpoints ) . toEqual ( [ 1 , 2 ] ) ;
1687+ expect ( gd . data [ 2 ] . selectedpoints ) . toEqual ( [ 1 ] ) ;
1688+ expect ( gd . data [ 3 ] . selectedpoints ) . toEqual ( [ 1 , 2 ] ) ;
1689+ } ) . then ( function ( ) {
1690+ return drag ( [ [ 600 , 150 ] , [ 650 , 150 ] ] ) ; // Extend existing selection
1691+ } ) . then ( function ( ) {
1692+ expect ( gd . data [ 0 ] . selectedpoints ) . toEqual ( [ 1 , 2 ] ) ;
1693+ expect ( gd . data [ 1 ] . selectedpoints ) . toEqual ( [ 1 , 2 ] ) ;
1694+ expect ( gd . data [ 2 ] . selectedpoints ) . toEqual ( [ 1 , 2 ] ) ;
1695+ expect ( gd . data [ 3 ] . selectedpoints ) . toEqual ( [ 1 , 2 ] ) ;
1696+ } ) . then ( done , done . fail ) ;
1697+ } ) ;
16021698} ) ;
16031699
16041700describe ( 'Test select box and lasso per trace:' , function ( ) {
0 commit comments