@@ -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+ [ {
1607+ x : [ 1 , 2 , 3 ] ,
1608+ y : [ 4 , 5 , 6 ] ,
1609+ name : "yaxis1 data" ,
1610+ type : "scatter"
1611+ } ,
1612+ {
1613+ x : [ 2 , 3 , 4 ] ,
1614+ y : [ 40 , 50 , 60 ] ,
1615+ name : "yaxis2 data" ,
1616+ yaxis : "y2" ,
1617+ xaxis : "x2" ,
1618+ type : "scatter"
1619+ } ,
1620+ {
1621+ x : [ 3 , 4 , 5 ] ,
1622+ y : [ 400 , 500 , 600 ] ,
1623+ name : "yaxis3 data" ,
1624+ yaxis : "y3" ,
1625+ type : "scatter"
1626+ } ,
1627+ {
1628+ x : [ 4 , 5 , 6 ] ,
1629+ y : [ 1000 , 2000 , 3000 ] ,
1630+ name : "yaxis4 data" ,
1631+ yaxis : "y4" ,
1632+ xaxis : "x2" ,
1633+ type : "scatter"
1634+ }
1635+ ] , {
1636+ grid : {
1637+ rows : 2 ,
1638+ columns : 1 ,
1639+ pattern : "independent"
1640+ } ,
1641+ width : 800 ,
1642+ height : 800 ,
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 , 100 ] , [ 600 , 250 ] ] ) ;
1677+ } ) . then ( function ( ) {
1678+ expect ( gd . data [ 0 ] . selectedpoints ) . toEqual ( [ 1 , 2 ] ) ;
1679+ expect ( gd . data [ 1 ] . selectedpoints ) . toBe ( undefined ) ;
1680+ expect ( gd . data [ 2 ] . selectedpoints ) . toEqual ( [ 1 ] ) ;
1681+ expect ( gd . data [ 3 ] . selectedpoints ) . toBe ( undefined ) ;
1682+ } ) . then ( function ( ) {
1683+ return drag ( [ [ 600 , 175 ] , [ 780 , 175 ] ] ) ; // Extend existing selection
1684+ } ) . then ( function ( ) {
1685+ expect ( gd . data [ 0 ] . selectedpoints ) . toEqual ( [ 1 , 2 ] ) ;
1686+ expect ( gd . data [ 1 ] . selectedpoints ) . toBe ( undefined ) ;
1687+ expect ( gd . data [ 2 ] . selectedpoints ) . toEqual ( [ 1 , 2 ] ) ;
1688+ expect ( gd . data [ 3 ] . selectedpoints ) . toBe ( undefined ) ;
1689+ } ) . then ( function ( ) {
1690+ return drag ( [ [ 150 , 600 ] , [ 780 , 300 ] ] ) ;
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 ] ) ;
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