Skip to content

Commit d73e3b7

Browse files
committed
chore(*): Remove calculation of offset when pinning to the right side
1 parent 1beada7 commit d73e3b7

File tree

10 files changed

+18
-28
lines changed

10 files changed

+18
-28
lines changed

projects/igniteui-angular/src/lib/core/styles/components/grid/_grid-theme.scss

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1275,6 +1275,7 @@
12751275
width: 100%;
12761276
overflow: visible;
12771277
flex: 1;
1278+
min-width: 0; // needed to override the min-width of the column headers
12781279
}
12791280

12801281
%grid-mrl-block {

projects/igniteui-angular/src/lib/grids/columns/column.component.ts

Lines changed: 0 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -1596,13 +1596,6 @@ export class IgxColumnComponent implements AfterContentInit, OnDestroy, ColumnTy
15961596
return !this.grid.isPinningToStart && pinnedCols[0] === this;
15971597
}
15981598

1599-
/** @hidden @internal **/
1600-
public get rightPinnedOffset(): string {
1601-
return this.pinned && !this.grid.isPinningToStart ?
1602-
- this.grid.pinnedWidth - this.grid.headerFeaturesWidth + 'px' :
1603-
null;
1604-
}
1605-
16061599
/** @hidden @internal **/
16071600
public get gridRowSpan(): number {
16081601
return this.rowEnd && this.rowStart ? this.rowEnd - this.rowStart : 1;

projects/igniteui-angular/src/lib/grids/grid/grid-row.component.html

Lines changed: 0 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -65,7 +65,6 @@
6565
<div class="igx-grid__mrl-block"
6666
[class.igx-grid__td--pinned-last]="col.hasLastPinnedChildColumn"
6767
[class.igx-grid__td--pinned-first]="col.hasFirstPinnedChildColumn"
68-
[style.left]="mrlRightPinnedOffset"
6968
[ngStyle]="{
7069
'grid-template-rows':col.getGridTemplate(true),
7170
'grid-template-columns':col.getGridTemplate(false),
@@ -113,7 +112,6 @@
113112
[style.min-width]="col.resolvedWidth"
114113
[style.max-width]="col.resolvedWidth"
115114
[style.flex-basis]="col.resolvedWidth"
116-
[style.left]="col.rightPinnedOffset"
117115
[width]="col.getCellWidth()"
118116
[visibleColumnIndex]="col.visibleIndex"
119117
[value]="data | dataMapper:col.field:grid.pipeTrigger:data[col.field]:col.hasNestedPath"

projects/igniteui-angular/src/lib/grids/grid/grid-row.component.ts

Lines changed: 0 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -26,12 +26,6 @@ export class IgxGridRowComponent extends IgxRowDirective {
2626
};
2727
}
2828

29-
public get mrlRightPinnedOffset(): string {
30-
return !this.grid.isPinningToStart ?
31-
- this.grid.pinnedWidth - this.grid.headerFeaturesWidth + 'px' :
32-
null;
33-
}
34-
3529
public getContextMRL(pinnedCols, row) {
3630
return {
3731
$implicit: pinnedCols,

projects/igniteui-angular/src/lib/grids/grid/grid.pinning.spec.ts

Lines changed: 14 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -25,7 +25,7 @@ import { IgxGridComponent } from './grid.component';
2525
import { DropPosition } from '../moving/moving.service';
2626
import { clearGridSubs, setupGridScrollDetection } from '../../test-utils/helper-utils.spec';
2727
import { SortingDirection } from '../../data-operations/sorting-strategy';
28-
import { IPinningConfig } from '../public_api';
28+
import { IgxGridHeaderRowComponent, IPinningConfig } from '../public_api';
2929

3030
describe('IgxGrid - Column Pinning #grid', () => {
3131

@@ -130,7 +130,7 @@ describe('IgxGrid - Column Pinning #grid', () => {
130130
expect(GridFunctions.isCellPinned(cell)).toBe(true);
131131
});
132132

133-
it('should allow pinning/unpinning via the column API', () => {
133+
it('should allow pinning/unpinning via the column API', () => {
134134
const col = grid.getColumnByName('ID');
135135

136136
col.pinned = true;
@@ -569,7 +569,7 @@ describe('IgxGrid - Column Pinning #grid', () => {
569569
});
570570

571571
it('should correctly pin column to right when row selectors are enabled.', () => {
572-
grid.rowSelection = GridSelectionMode.multiple;
572+
grid.rowSelection = GridSelectionMode.multiple;
573573
fix.detectChanges();
574574

575575
// check row DOM
@@ -692,9 +692,14 @@ describe('IgxGrid - Column Pinning #grid', () => {
692692
expect(grid.getColumnByName('CompanyName').isFirstPinned).toBeTruthy();
693693
const row = grid.gridAPI.get_row_by_index(0).nativeElement;
694694
// check cells are rendered after main display container and have left offset
695+
const headerRowDisplayContainer = fix.debugElement.query(By.directive(IgxGridHeaderRowComponent)).nativeElement.querySelector(".igx-display-container");
696+
const displayContainerRect = headerRowDisplayContainer.getBoundingClientRect();
697+
let xAxis = displayContainerRect.x + displayContainerRect.width;
695698
for (let i = 0; i <= pinnedCols.length - 1; i++) {
696699
const elem = row.children[i + 1];
697-
expect(parseInt((elem as any).style.left, 10)).toBe(-330);
700+
const rect = elem.getBoundingClientRect();
701+
expect(rect.x).toBe(xAxis);
702+
xAxis += rect.width;
698703
expect(elem.getAttribute('aria-describedby')).toBe(grid.id + '_' + pinnedCols[i].field);
699704
}
700705

@@ -714,9 +719,13 @@ describe('IgxGrid - Column Pinning #grid', () => {
714719
const row = grid.gridAPI.get_row_by_index(0).nativeElement;
715720
expect(GridFunctions.getRowDisplayContainer(fix, 0)).toBeTruthy();
716721

722+
const headerRowdisplayContainer = fix.debugElement.query(By.directive(IgxGridHeaderRowComponent)).nativeElement.querySelector(".igx-display-container");
723+
const displayContainerRect = headerRowdisplayContainer.getBoundingClientRect();
724+
const xAxis = displayContainerRect.x + displayContainerRect.width;
725+
717726
expect(row.children[1].classList.contains(`${CELL_PINNED_CLASS}-first`)).toBeTruthy();
718727
expect(row.children[1].classList.contains(GRID_MRL_BLOCK)).toBeTruthy();
719-
expect(parseInt((row.children[1] as any).style.left, 10)).toEqual(-408);
728+
expect(row.children[1].getBoundingClientRect().x).toEqual(xAxis);
720729

721730
// check correct headers have left border
722731
const firstPinnedHeader = grid.headerGroupsList.find(group => group.isPinned);

projects/igniteui-angular/src/lib/grids/headers/grid-header-row.component.html

Lines changed: 1 addition & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -99,8 +99,7 @@
9999
[ngStyle]="column.headerGroupStyles |igxHeaderGroupStyle:column:grid.pipeTrigger"
100100
[column]="column"
101101
[style.min-width]="column.resolvedWidth | igxHeaderGroupWidth:grid.defaultHeaderGroupMinWidth:hasMRL"
102-
[style.flex-basis]="column.resolvedWidth | igxHeaderGroupWidth:grid.defaultHeaderGroupMinWidth:hasMRL"
103-
[style.left]="column.rightPinnedOffset">
102+
[style.flex-basis]="column.resolvedWidth | igxHeaderGroupWidth:grid.defaultHeaderGroupMinWidth:hasMRL">
104103
</igx-grid-header-group>
105104
}
106105
}

projects/igniteui-angular/src/lib/grids/hierarchical-grid/hierarchical-row.component.html

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -119,7 +119,6 @@
119119
[style.min-width]="col.resolvedWidth"
120120
[style.max-width]="col.resolvedWidth"
121121
[style.flex-basis]="col.resolvedWidth"
122-
[style.left]="col.rightPinnedOffset"
123122
[width]="col.getCellWidth()"
124123
[visibleColumnIndex]="col.visibleIndex"
125124
[value]="data | dataMapper:col.field:grid.pipeTrigger:data[col.field]:col.hasNestedPath"

projects/igniteui-angular/src/lib/grids/pivot-grid/pivot-header-row.component.html

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -305,7 +305,7 @@
305305
[ngStyle]="column.headerGroupStyles |igxHeaderGroupStyle:column:grid.pipeTrigger" [column]="column"
306306
[style.min-width]="column.resolvedWidth | igxHeaderGroupWidth:grid.defaultHeaderGroupMinWidth:hasMRL"
307307
[style.flex-basis]="column.resolvedWidth | igxHeaderGroupWidth:grid.defaultHeaderGroupMinWidth:hasMRL"
308-
[style.left]="column.rightPinnedOffset" (pointerdown)="grid.navigation.focusOutRowHeader($event)">
308+
(pointerdown)="grid.navigation.focusOutRowHeader($event)">
309309
</igx-grid-header-group>
310310
}
311311
}

projects/igniteui-angular/src/lib/grids/summaries/summary-row.component.html

Lines changed: 1 addition & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -55,8 +55,7 @@
5555
[style.min-height.px]="minHeight"
5656
[style.min-width]="col.resolvedWidth"
5757
[style.max-width]="col.resolvedWidth"
58-
[style.flex-basis]="col.resolvedWidth"
59-
[style.left]="col.rightPinnedOffset">
58+
[style.flex-basis]="col.resolvedWidth">
6059
</igx-grid-summary-cell>
6160
}
6261
</ng-template>

projects/igniteui-angular/src/lib/grids/tree-grid/tree-grid-row.component.html

Lines changed: 0 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -123,7 +123,6 @@
123123
[style.min-width]="col.resolvedWidth"
124124
[style.max-width]="col.resolvedWidth"
125125
[style.flex-basis]="col.resolvedWidth"
126-
[style.left]="col.rightPinnedOffset"
127126
[width]="col.getCellWidth()"
128127
[visibleColumnIndex]="col.visibleIndex"
129128
[value]="data | dataMapper:col.field:grid.pipeTrigger:data[col.field]:col.hasNestedPath"
@@ -155,7 +154,6 @@
155154
[style.min-width]="col.resolvedWidth"
156155
[style.max-width]="col.resolvedWidth"
157156
[style.flex-basis]="col.resolvedWidth"
158-
[style.left]="col.rightPinnedOffset"
159157
[width]="col.getCellWidth()"
160158
[visibleColumnIndex]="col.visibleIndex"
161159
[value]="data | dataMapper:col.field:grid.pipeTrigger:data[col.field]:col.hasNestedPath"

0 commit comments

Comments
 (0)