@@ -54,13 +54,8 @@ export class IgxColumnResizingService {
54
54
* Returns the minimal possible width to which the column can be resized.
55
55
*/
56
56
get restrictResizeMin ( ) : number {
57
- const actualMinWidth = parseFloat ( this . column . minWidth ) ;
58
57
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 ;
64
59
65
60
return actualWidth - minWidth ;
66
61
}
@@ -70,14 +65,9 @@ export class IgxColumnResizingService {
70
65
*/
71
66
get restrictResizeMax ( ) : number {
72
67
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 ;
79
69
if ( this . column . maxWidth ) {
80
- return calcMaxWidth - actualWidth ;
70
+ return maxWidth - actualWidth ;
81
71
} else {
82
72
return Number . MAX_SAFE_INTEGER ;
83
73
}
@@ -93,14 +83,8 @@ export class IgxColumnResizingService {
93
83
public autosizeColumnOnDblClick ( ) {
94
84
const currentColWidth = this . column . headerCell . elementRef . nativeElement . getBoundingClientRect ( ) . width ;
95
85
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 ( ) ;
104
88
105
89
this . zone . run ( ( ) => { } ) ;
106
90
@@ -146,16 +130,11 @@ export class IgxColumnResizingService {
146
130
147
131
protected _handlePixelResize ( diff : number , column : IgxColumnComponent ) {
148
132
let currentColWidth = parseFloat ( column . width ) ;
149
- const gridAvailableSize = column . grid . calcWidth - column . grid . featureColumnsWidth ( ) ;
150
133
const actualWidth = this . column . headerCell . elementRef . nativeElement . getBoundingClientRect ( ) . width ;
151
134
currentColWidth = Number . isNaN ( currentColWidth ) || ( currentColWidth < actualWidth ) ? actualWidth : currentColWidth ;
152
135
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 ;
159
138
if ( this . column . grid . hasColumnLayouts ) {
160
139
this . resizeColumnLayoutFor ( this . column , diff ) ;
161
140
} else {
@@ -171,13 +150,11 @@ export class IgxColumnResizingService {
171
150
172
151
protected _handlePercentageResize ( diff : number , column : IgxColumnComponent ) {
173
152
const currentPercentWidth = parseFloat ( column . width ) ;
174
- const gridAvailableSize = column . grid . calcWidth - column . grid . featureColumnsWidth ( ) ;
153
+ const gridAvailableSize = column . grid . calcWidth ;
175
154
176
155
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 ;
181
158
182
159
if ( currentPercentWidth + diffPercentage < colMinWidth ) {
183
160
this . column . width = colMinWidth + '%' ;
0 commit comments