@@ -723,6 +723,10 @@ let referencePane = {
723723 this . $header . appendChild ( this . $headerText ) ;
724724 this . $headerRefId = document . createElement ( 'a' ) ;
725725 this . $header . appendChild ( this . $headerRefId ) ;
726+ this . $header . addEventListener ( 'pointerdown' , e => {
727+ this . dragStart ( e ) ;
728+ } ) ;
729+
726730 this . $closeButton = document . createElement ( 'span' ) ;
727731 this . $closeButton . setAttribute ( 'id' , 'references-pane-close' ) ;
728732 this . $closeButton . addEventListener ( 'click' , ( ) => {
@@ -731,16 +735,16 @@ let referencePane = {
731735 this . $header . appendChild ( this . $closeButton ) ;
732736
733737 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' ) ;
736740
737741 this . $table = document . createElement ( 'table' ) ;
738742 this . $table . setAttribute ( 'id' , 'references-pane-table' ) ;
739743
740744 this . $tableBody = this . $table . createTBody ( ) ;
741745
742- tableContainer . appendChild ( this . $table ) ;
743- this . $pane . appendChild ( tableContainer ) ;
746+ this . $ tableContainer. appendChild ( this . $table ) ;
747+ this . $pane . appendChild ( this . $ tableContainer) ;
744748
745749 menu . $specContainer . appendChild ( this . $container ) ;
746750 } ,
@@ -793,6 +797,7 @@ let referencePane = {
793797 this . $table . removeChild ( this . $tableBody ) ;
794798 this . $tableBody = newBody ;
795799 this . $table . appendChild ( this . $tableBody ) ;
800+ this . autoSize ( ) ;
796801 } ,
797802
798803 showSDOs ( sdos , alternativeId ) {
@@ -839,6 +844,34 @@ let referencePane = {
839844 this . $table . removeChild ( this . $tableBody ) ;
840845 this . $tableBody = newBody ;
841846 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 ) ;
842875 } ,
843876} ;
844877
0 commit comments