@@ -54,13 +54,8 @@ export class IgxColumnResizingService {
5454 * Returns the minimal possible width to which the column can be resized.
5555 */
5656 get restrictResizeMin ( ) : number {
57- const actualMinWidth = parseFloat ( this . column . minWidth ) ;
5857 const actualWidth = this . column . headerCell . elementRef . nativeElement . getBoundingClientRect ( ) . width ;
59- const gridAvailableSize = this . column . grid . calcWidth - this . column . grid . featureColumnsWidth ( ) ;
60- const isMinPercentageWidth = this . column . minWidth && typeof this . column . minWidth === 'string' &&
61- this . column . minWidth . indexOf ( '%' ) !== - 1 ;
62- const calcMinWidth = isMinPercentageWidth ? actualMinWidth / 100 * gridAvailableSize : actualMinWidth ;
63- const minWidth = calcMinWidth < actualWidth ? calcMinWidth : actualWidth ;
58+ const minWidth = this . column . minWidthPx < actualWidth ? this . column . minWidthPx : actualWidth ;
6459
6560 return actualWidth - minWidth ;
6661 }
@@ -70,14 +65,9 @@ export class IgxColumnResizingService {
7065 */
7166 get restrictResizeMax ( ) : number {
7267 const actualWidth = this . column . headerCell . elementRef . nativeElement . getBoundingClientRect ( ) . width ;
73- const gridAvailableSize = this . column . grid . calcWidth - this . column . grid . featureColumnsWidth ( ) ;
74- const isMaxPercentageWidth = this . column . maxWidth && typeof this . column . maxWidth === 'string' &&
75- this . column . maxWidth . indexOf ( '%' ) !== - 1 ;
76- const calcMaxWidth = isMaxPercentageWidth ?
77- parseFloat ( this . column . maxWidth ) / 100 * gridAvailableSize :
78- parseFloat ( this . column . maxWidth ) ;
68+ const maxWidth = this . column . maxWidthPx ;
7969 if ( this . column . maxWidth ) {
80- return calcMaxWidth - actualWidth ;
70+ return maxWidth - actualWidth ;
8171 } else {
8272 return Number . MAX_SAFE_INTEGER ;
8373 }
@@ -93,14 +83,8 @@ export class IgxColumnResizingService {
9383 public autosizeColumnOnDblClick ( ) {
9484 const currentColWidth = this . column . headerCell . elementRef . nativeElement . getBoundingClientRect ( ) . width ;
9585
96- const size = this . column . getLargestCellWidth ( ) ;
97- if ( this . column . maxWidth && ( parseFloat ( size ) > parseFloat ( this . column . maxWidth ) ) ) {
98- this . column . width = parseFloat ( this . column . maxWidth ) + 'px' ;
99- } else if ( parseFloat ( size ) < parseFloat ( this . column . minWidth ) ) {
100- this . column . width = parseFloat ( this . column . minWidth ) + 'px' ;
101- } else {
102- this . column . width = size ;
103- }
86+
87+ this . column . autosize ( ) ;
10488
10589 this . zone . run ( ( ) => { } ) ;
10690
@@ -146,16 +130,11 @@ export class IgxColumnResizingService {
146130
147131 protected _handlePixelResize ( diff : number , column : IgxColumnComponent ) {
148132 let currentColWidth = parseFloat ( column . width ) ;
149- const gridAvailableSize = column . grid . calcWidth - column . grid . featureColumnsWidth ( ) ;
150133 const actualWidth = this . column . headerCell . elementRef . nativeElement . getBoundingClientRect ( ) . width ;
151134 currentColWidth = Number . isNaN ( currentColWidth ) || ( currentColWidth < actualWidth ) ? actualWidth : currentColWidth ;
152135
153- const isMinPercentageWidth = column . minWidth && typeof column . minWidth === 'string' && column . minWidth . indexOf ( '%' ) !== - 1 ;
154- const isMaxPercentageWidth = column . maxWidth && typeof column . maxWidth === 'string' && column . maxWidth . indexOf ( '%' ) !== - 1 ;
155- const colMinWidth = ! isMinPercentageWidth ? this . getColMinWidth ( this . column ) :
156- parseFloat ( this . column . minWidth ) / 100 * gridAvailableSize ;
157- const colMaxWidth = ! isMaxPercentageWidth ? parseFloat ( column . maxWidth ) :
158- parseFloat ( this . column . maxWidth ) / 100 * gridAvailableSize ;
136+ const colMinWidth = column . minWidthPx ;
137+ const colMaxWidth = column . maxWidthPx ;
159138 if ( this . column . grid . hasColumnLayouts ) {
160139 this . resizeColumnLayoutFor ( this . column , diff ) ;
161140 } else {
@@ -171,13 +150,11 @@ export class IgxColumnResizingService {
171150
172151 protected _handlePercentageResize ( diff : number , column : IgxColumnComponent ) {
173152 const currentPercentWidth = parseFloat ( column . width ) ;
174- const gridAvailableSize = column . grid . calcWidth - column . grid . featureColumnsWidth ( ) ;
153+ const gridAvailableSize = column . grid . calcWidth ;
175154
176155 const diffPercentage = ( diff / gridAvailableSize ) * 100 ;
177- const isMinPercentageWidth = column . minWidth && typeof column . minWidth === 'string' && column . minWidth . indexOf ( '%' ) !== - 1 ;
178- const isMaxPercentageWidth = column . maxWidth && typeof column . maxWidth === 'string' && column . maxWidth . indexOf ( '%' ) !== - 1 ;
179- const colMinWidth = isMinPercentageWidth ? parseFloat ( column . minWidth ) : parseFloat ( column . minWidth ) / gridAvailableSize * 100 ;
180- const colMaxWidth = isMaxPercentageWidth ? parseFloat ( column . maxWidth ) : parseFloat ( column . maxWidth ) / gridAvailableSize * 100 ;
156+ const colMinWidth = column . minWidthPercent ;
157+ const colMaxWidth = column . maxWidthPercent ;
181158
182159 if ( currentPercentWidth + diffPercentage < colMinWidth ) {
183160 this . column . width = colMinWidth + '%' ;
0 commit comments