@@ -856,6 +856,12 @@ describe('parcoords Lifecycle methods', function() {
856856 } ] ,
857857 line : { color : 'blue' }
858858 } ] , {
859+ margin : {
860+ t : 0 ,
861+ b : 0 ,
862+ l : 0 ,
863+ r : 0
864+ } ,
859865 width : 300 ,
860866 height : 200
861867 } )
@@ -888,6 +894,12 @@ describe('parcoords Lifecycle methods', function() {
888894 } ] ,
889895 line : { color : 'blue' }
890896 } ] , {
897+ margin : {
898+ t : 0 ,
899+ b : 0 ,
900+ l : 0 ,
901+ r : 0
902+ } ,
891903 width : 300 ,
892904 height : 200
893905 } )
@@ -910,6 +922,130 @@ describe('parcoords Lifecycle methods', function() {
910922 . catch ( failTest )
911923 . then ( done ) ;
912924 } ) ;
925+
926+ it ( '@gl unselected.line.color `Plotly.restyle` should change context layer line.color' , function ( done ) {
927+ var testLayer = '.gl-canvas-context' ;
928+
929+ var list1 = [ ] ;
930+ var list2 = [ ] ;
931+ for ( var i = 0 ; i <= 100 ; i ++ ) {
932+ list1 [ i ] = i ;
933+ list2 [ i ] = 100 - i ;
934+ }
935+
936+ Plotly . plot ( gd , [ {
937+ type : 'parcoords' ,
938+ dimensions : [ {
939+ constraintrange : [ 1 , 10 ] ,
940+ values : list1
941+ } , {
942+ values : list2
943+ } ] ,
944+ line : { color : '#0F0' } ,
945+ unselected : { line : { color : '#F00' } }
946+ } ] , {
947+ margin : {
948+ t : 0 ,
949+ b : 0 ,
950+ l : 0 ,
951+ r : 0
952+ } ,
953+ width : 300 ,
954+ height : 200
955+ } )
956+ . then ( function ( ) {
957+ var rgb = getAvgPixelByChannel ( testLayer ) ;
958+ expect ( rgb [ 0 ] ) . not . toBe ( 0 , 'red' ) ;
959+ expect ( rgb [ 1 ] ) . toBe ( 0 , 'no green' ) ;
960+ expect ( rgb [ 2 ] ) . toBe ( 0 , 'no blue' ) ;
961+
962+ return Plotly . restyle ( gd , 'unselected.line.color' , '#00F' ) ;
963+ } )
964+ . then ( function ( ) {
965+ var rgb = getAvgPixelByChannel ( testLayer ) ;
966+ expect ( rgb [ 0 ] ) . toBe ( 0 , 'no red' ) ;
967+ expect ( rgb [ 1 ] ) . toBe ( 0 , 'no green' ) ;
968+ expect ( rgb [ 2 ] ) . not . toBe ( 0 , 'blue' ) ;
969+
970+ return Plotly . restyle ( gd , 'unselected.line.color' , 'rgba(0,0,0,0)' ) ;
971+ } )
972+ . then ( function ( ) {
973+ var rgb = getAvgPixelByChannel ( testLayer ) ;
974+ expect ( rgb [ 0 ] ) . toBe ( 0 , 'no red' ) ;
975+ expect ( rgb [ 1 ] ) . toBe ( 0 , 'no green' ) ;
976+ expect ( rgb [ 2 ] ) . toBe ( 0 , 'no blue' ) ;
977+ } )
978+ . catch ( failTest )
979+ . then ( done ) ;
980+ } ) ;
981+
982+ it ( '@gl unselected.line.color `Plotly.react` should change line.color and unselected.line.color' , function ( done ) {
983+ var unselectedLayer = '.gl-canvas-context' ;
984+ var selectedLayer = '.gl-canvas-focus' ;
985+
986+ var list1 = [ ] ;
987+ var list2 = [ ] ;
988+ for ( var i = 0 ; i <= 100 ; i ++ ) {
989+ list1 [ i ] = i ;
990+ list2 [ i ] = 100 - i ;
991+ }
992+
993+ var fig = {
994+ data : [ {
995+ type : 'parcoords' ,
996+ dimensions : [ {
997+ constraintrange : [ 1 , 10 ] ,
998+ values : list1
999+ } , {
1000+ values : list2
1001+ } ] ,
1002+ line : { color : '#0F0' } ,
1003+ unselected : { line : { color : '#F00' } }
1004+ } ] ,
1005+ layout : {
1006+ margin : {
1007+ t : 0 ,
1008+ b : 0 ,
1009+ l : 0 ,
1010+ r : 0
1011+ } ,
1012+ width : 300 ,
1013+ height : 200
1014+ }
1015+ } ;
1016+
1017+ var rgb ;
1018+
1019+ Plotly . newPlot ( gd , fig )
1020+ . then ( function ( ) {
1021+ rgb = getAvgPixelByChannel ( unselectedLayer ) ;
1022+ expect ( rgb [ 0 ] ) . not . toBe ( 0 , 'red' ) ;
1023+ expect ( rgb [ 1 ] ) . toBe ( 0 , 'no green' ) ;
1024+ expect ( rgb [ 2 ] ) . toBe ( 0 , 'no blue' ) ;
1025+
1026+ rgb = getAvgPixelByChannel ( selectedLayer ) ;
1027+ expect ( rgb [ 0 ] ) . toBe ( 0 , 'no red' ) ;
1028+ expect ( rgb [ 1 ] ) . not . toBe ( 0 , 'green' ) ;
1029+ expect ( rgb [ 2 ] ) . toBe ( 0 , 'no blue' ) ;
1030+
1031+ fig . data [ 0 ] . line . color = '#FF0' ;
1032+ fig . data [ 0 ] . unselected . line . color = '#00F' ;
1033+ return Plotly . react ( gd , fig ) ;
1034+ } )
1035+ . then ( function ( ) {
1036+ rgb = getAvgPixelByChannel ( selectedLayer ) ;
1037+ expect ( rgb [ 0 ] ) . not . toBe ( 0 , 'red' ) ;
1038+ expect ( rgb [ 1 ] ) . not . toBe ( 0 , 'green' ) ;
1039+ expect ( rgb [ 2 ] ) . toBe ( 0 , 'no blue' ) ;
1040+
1041+ rgb = getAvgPixelByChannel ( unselectedLayer ) ;
1042+ expect ( rgb [ 0 ] ) . toBe ( 0 , 'no red' ) ;
1043+ expect ( rgb [ 1 ] ) . toBe ( 0 , 'no green' ) ;
1044+ expect ( rgb [ 2 ] ) . not . toBe ( 0 , 'blue' ) ;
1045+ } )
1046+ . catch ( failTest )
1047+ . then ( done ) ;
1048+ } ) ;
9131049} ) ;
9141050
9151051describe ( 'parcoords basic use' , function ( ) {
0 commit comments