@@ -723,6 +723,10 @@ let referencePane = {
723
723
this . $header . appendChild ( this . $headerText ) ;
724
724
this . $headerRefId = document . createElement ( 'a' ) ;
725
725
this . $header . appendChild ( this . $headerRefId ) ;
726
+ this . $header . addEventListener ( 'pointerdown' , e => {
727
+ this . dragStart ( e ) ;
728
+ } ) ;
729
+
726
730
this . $closeButton = document . createElement ( 'span' ) ;
727
731
this . $closeButton . setAttribute ( 'id' , 'references-pane-close' ) ;
728
732
this . $closeButton . addEventListener ( 'click' , ( ) => {
@@ -731,16 +735,16 @@ let referencePane = {
731
735
this . $header . appendChild ( this . $closeButton ) ;
732
736
733
737
this . $pane . appendChild ( this . $header ) ;
734
- let tableContainer = document . createElement ( 'div' ) ;
735
- tableContainer . setAttribute ( 'id' , 'references-pane-table-container' ) ;
738
+ this . $ tableContainer = document . createElement ( 'div' ) ;
739
+ this . $ tableContainer. setAttribute ( 'id' , 'references-pane-table-container' ) ;
736
740
737
741
this . $table = document . createElement ( 'table' ) ;
738
742
this . $table . setAttribute ( 'id' , 'references-pane-table' ) ;
739
743
740
744
this . $tableBody = this . $table . createTBody ( ) ;
741
745
742
- tableContainer . appendChild ( this . $table ) ;
743
- this . $pane . appendChild ( tableContainer ) ;
746
+ this . $ tableContainer. appendChild ( this . $table ) ;
747
+ this . $pane . appendChild ( this . $ tableContainer) ;
744
748
745
749
menu . $specContainer . appendChild ( this . $container ) ;
746
750
} ,
@@ -793,6 +797,7 @@ let referencePane = {
793
797
this . $table . removeChild ( this . $tableBody ) ;
794
798
this . $tableBody = newBody ;
795
799
this . $table . appendChild ( this . $tableBody ) ;
800
+ this . autoSize ( ) ;
796
801
} ,
797
802
798
803
showSDOs ( sdos , alternativeId ) {
@@ -839,6 +844,34 @@ let referencePane = {
839
844
this . $table . removeChild ( this . $tableBody ) ;
840
845
this . $tableBody = newBody ;
841
846
this . $table . appendChild ( this . $tableBody ) ;
847
+ this . autoSize ( ) ;
848
+ } ,
849
+
850
+ autoSize ( ) {
851
+ this . $tableContainer . style . height =
852
+ Math . min ( 250 , this . $table . getBoundingClientRect ( ) . height ) + 'px' ;
853
+ } ,
854
+
855
+ dragStart ( pointerDownEvent ) {
856
+ let startingMousePos = pointerDownEvent . clientY ;
857
+ let startingHeight = this . $tableContainer . getBoundingClientRect ( ) . height ;
858
+ let moveListener = pointerMoveEvent => {
859
+ if ( pointerMoveEvent . buttons === 0 ) {
860
+ removeListeners ( ) ;
861
+ return ;
862
+ }
863
+ let desiredHeight = startingHeight - ( pointerMoveEvent . clientY - startingMousePos ) ;
864
+ this . $tableContainer . style . height = Math . max ( 0 , desiredHeight ) + 'px' ;
865
+ } ;
866
+ let listenerOptions = { capture : true , passive : true } ;
867
+ let removeListeners = ( ) => {
868
+ document . removeEventListener ( 'pointermove' , moveListener , listenerOptions ) ;
869
+ this . $header . removeEventListener ( 'pointerup' , removeListeners , listenerOptions ) ;
870
+ this . $header . removeEventListener ( 'pointercancel' , removeListeners , listenerOptions ) ;
871
+ } ;
872
+ document . addEventListener ( 'pointermove' , moveListener , listenerOptions ) ;
873
+ this . $header . addEventListener ( 'pointerup' , removeListeners , listenerOptions ) ;
874
+ this . $header . addEventListener ( 'pointercancel' , removeListeners , listenerOptions ) ;
842
875
} ,
843
876
} ;
844
877
0 commit comments