@@ -707,6 +707,7 @@ PivotView.prototype.renderRawData = function (data) {
707707 COLUMN_RESIZE_ON = ! ! this . controller . CONFIG . columnResizing ,
708708 LISTING = info . leftHeaderColumnsNumber === 0 ,
709709 SEARCH_ENABLED = LISTING && this . controller . CONFIG [ "enableSearch" ] ,
710+ RESIZE_ANIMATION = ! ! this . controller . CONFIG [ "columnResizeAnimation" ] ,
710711
711712 container = this . elements . tableContainer ,
712713 pivotTopSection = document . createElement ( "div" ) ,
@@ -746,8 +747,6 @@ PivotView.prototype.renderRawData = function (data) {
746747 return arr ;
747748 } ) ( ) : null ,
748749
749- _RESIZING = false , _RESIZING_ELEMENT = null , _RESIZING_COLUMN_INDEX = 0 ,
750- _RESIZING_ELEMENT_BASE_WIDTH , _RESIZING_ELEMENT_BASE_X ,
751750 renderedGroups = { } , // keys of rendered groups; key = group, value = { x, y, element }
752751 i , x , y , tr = null , th , td , primaryColumns = [ ] , primaryRows = [ ] , ratio , cellStyle ,
753752 tempI , tempJ , div ;
@@ -788,67 +787,43 @@ PivotView.prototype.renderRawData = function (data) {
788787 }
789788 } ;
790789
791- //var getMouseXY = function (e) {
792- // var element = e.target || e.srcElement, offsetX = 0, offsetY = 0;
793- // if (element.offsetParent) {
794- // do {
795- // offsetX += element.offsetLeft;
796- // offsetY += element.offsetTop;
797- // } while ((element = element.offsetParent));
798- // }
799- // return { x: e.pageX - offsetX, y: e.pageY - offsetY };
800- //};
801-
802790 var bindResize = function ( element , column ) {
803791
804- var el = element ,
805- colIndex = column ;
792+ var baseWidth = 0 ,
793+ baseX = 0 ;
806794
807795 var moveListener = function ( e ) {
808- if ( ! _RESIZING ) return ;
809796 e . cancelBubble = true ;
810797 e . preventDefault ( ) ;
811- _RESIZING_ELEMENT . style . width = _RESIZING_ELEMENT . style . minWidth =
812- _RESIZING_ELEMENT_BASE_WIDTH - _RESIZING_ELEMENT_BASE_X + e . pageX + "px" ;
798+ element . style . width = element . style . minWidth =
799+ baseWidth - baseX + e . pageX + "px" ;
800+ if ( RESIZE_ANIMATION ) {
801+ _ . saveScrollPosition ( ) ;
802+ _ . recalculateSizes ( container ) ;
803+ _ . restoreScrollPosition ( ) ;
804+ }
813805 } ;
814806
815- if ( ! el . _HAS_MOUSE_MOVE_LISTENER ) {
816- el . parentNode . addEventListener ( "mousemove" , moveListener ) ;
817- el . _HAS_MOUSE_MOVE_LISTENER = true ;
818- }
819-
820- el . addEventListener ( "mousedown" , function ( e ) {
821- //var cursorX = getMouseXY(e).x;
822- //if (cursorX < el.offsetWidth - 5 && cursorX > 5) {
823- // return;
824- //}
825- if ( ( e . target || e . srcElement ) !== el ) return ;
826- e . cancelBubble = true ;
827- e . preventDefault ( ) ;
828- _RESIZING = true ;
829- _RESIZING_ELEMENT = el ;
830- _RESIZING_ELEMENT_BASE_WIDTH = el . offsetWidth ;
831- _RESIZING_ELEMENT_BASE_X = e . pageX ;
832- _RESIZING_COLUMN_INDEX = colIndex ;
833- //el._CANCEL_CLICK_EVENT = true;
834- } ) ;
835-
836- el . addEventListener ( "mouseup" , function ( e ) {
837- if ( ! _RESIZING ) return ;
807+ var upListener = function ( e ) {
838808 e . cancelBubble = true ;
839809 e . preventDefault ( ) ;
840- _RESIZING = false ;
841- _RESIZING_ELEMENT . style . width = _RESIZING_ELEMENT . style . minWidth =
842- ( _ . FIXED_COLUMN_SIZES [ _RESIZING_COLUMN_INDEX ] =
843- _RESIZING_ELEMENT_BASE_WIDTH - _RESIZING_ELEMENT_BASE_X + e . pageX
844- ) + "px" ;
810+ element . style . width = element . style . minWidth =
811+ ( _ . FIXED_COLUMN_SIZES [ column ] = baseWidth - baseX + e . pageX ) + "px" ;
845812 _ . saveScrollPosition ( ) ;
846813 _ . recalculateSizes ( container ) ;
847814 _ . restoreScrollPosition ( ) ;
848- setTimeout ( function ( ) {
849- //_RESIZING_ELEMENT._CANCEL_CLICK_EVENT = false;
850- _RESIZING_ELEMENT = null ;
851- } , 1 ) ;
815+ document . removeEventListener ( "mousemove" , moveListener ) ;
816+ document . removeEventListener ( "mouseup" , upListener ) ;
817+ } ;
818+
819+ element . addEventListener ( "mousedown" , function ( e ) {
820+ if ( ( e . target || e . srcElement ) !== element ) return ;
821+ e . cancelBubble = true ;
822+ e . preventDefault ( ) ;
823+ baseWidth = element . offsetWidth ;
824+ baseX = e . pageX ;
825+ document . addEventListener ( "mousemove" , moveListener ) ;
826+ document . addEventListener ( "mouseup" , upListener ) ;
852827 } ) ;
853828
854829 } ;
@@ -888,11 +863,9 @@ PivotView.prototype.renderRawData = function (data) {
888863 th = document . createElement ( rawData [ y ] [ x ] . isCaption ? "th" : "td" )
889864 ) ;
890865 div = document . createElement ( "div" ) ;
891- //div2 = document.createElement("div");
892866 if ( rawData [ y ] [ x ] . value ) {
893867 div . textContent = rawData [ y ] [ x ] . value ;
894868 } else div . innerHTML = " " ;
895- //div2.appendChild(div);
896869 th . appendChild ( div ) ;
897870 if ( rawData [ y ] [ x ] . style ) th . setAttribute ( "style" , rawData [ y ] [ x ] . style ) ;
898871 if ( info . leftHeaderColumnsNumber === 0
0 commit comments