Skip to content

Commit bdd0ee5

Browse files
authored
Merge branch 'master' into mkirova/pinned-chip-refactor
2 parents 7321da8 + 7d36311 commit bdd0ee5

File tree

14 files changed

+37
-40
lines changed

14 files changed

+37
-40
lines changed

projects/igniteui-angular/src/lib/grids/common/grid.interface.ts

Lines changed: 1 addition & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
import { FilterMode, ColumnPinningPosition, RowPinningPosition } from './enums';
1+
import { FilterMode } from './enums';
22
import { DisplayDensity } from '../../core/displayDensity';
33
import { EventEmitter } from '@angular/core';
44
import { IFilteringExpressionsTree } from '../../data-operations/filtering-expressions-tree';
@@ -67,8 +67,3 @@ export interface GridType extends IGridDataBindable {
6767
isDetailRecord(rec: any): boolean;
6868
isGroupByRecord(rec: any): boolean;
6969
}
70-
71-
export interface IPinningConfig {
72-
columns?: ColumnPinningPosition;
73-
rows?: RowPinningPosition;
74-
}

projects/igniteui-angular/src/lib/grids/grid-base.directive.ts

Lines changed: 15 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -51,7 +51,7 @@ import { GridBaseAPIService } from './api.service';
5151
import { IgxGridCellComponent } from './cell.component';
5252
import { IColumnVisibilityChangedEventArgs } from './hiding/column-hiding-item.directive';
5353
import { ISummaryExpression } from './summaries/grid-summary';
54-
import { RowEditPositionStrategy } from './grid.common';
54+
import { RowEditPositionStrategy, IPinningConfig } from './grid.common';
5555
import { IgxGridToolbarComponent } from './toolbar/grid-toolbar.component';
5656
import { IgxRowDirective } from './row.directive';
5757
import { IgxGridHeaderComponent } from './headers/grid-header.component';
@@ -138,7 +138,7 @@ import {
138138
IPinRowEventArgs
139139
} from './common/events';
140140
import { IgxAdvancedFilteringDialogComponent } from './filtering/advanced-filtering/advanced-filtering-dialog.component';
141-
import { GridType, IPinningConfig } from './common/grid.interface';
141+
import { GridType } from './common/grid.interface';
142142
import { IgxDecimalPipeComponent, IgxDatePipeComponent } from './common/pipes';
143143
import { DropPosition } from './moving/moving.service';
144144
import { IgxHeadSelectorDirective, IgxRowSelectorDirective } from './selection/row-selectors';
@@ -3054,7 +3054,7 @@ export class IgxGridBaseDirective extends DisplayDensityBase implements
30543054
this._zoneBegoneListeners();
30553055

30563056
const vertScrDC = this.verticalScrollContainer.displayContainer;
3057-
vertScrDC.addEventListener('scroll', this.scrollHandler);
3057+
vertScrDC.addEventListener('scroll', this.preventContainerScroll);
30583058

30593059
this._pinnedRowList.changes
30603060
.pipe(takeUntil(this.destroy$))
@@ -3132,7 +3132,7 @@ export class IgxGridBaseDirective extends DisplayDensityBase implements
31323132
this.verticalScrollContainer.getScroll().removeEventListener('scroll', this.verticalScrollHandler);
31333133
this.headerContainer.getScroll().removeEventListener('scroll', this.horizontalScrollHandler);
31343134
const vertScrDC = this.verticalScrollContainer.displayContainer;
3135-
vertScrDC.removeEventListener('scroll', this.scrollHandler);
3135+
vertScrDC.removeEventListener('scroll', this.preventContainerScroll);
31363136
});
31373137
}
31383138

@@ -5583,11 +5583,15 @@ export class IgxGridBaseDirective extends DisplayDensityBase implements
55835583
/**
55845584
* @hidden @internal
55855585
*/
5586-
public scrollHandler = (event) => {
5587-
this.headerContainer.scrollPosition += event.target.scrollLeft;
5588-
this.verticalScrollContainer.scrollPosition += event.target.scrollTop;
5589-
event.target.scrollLeft = 0;
5590-
event.target.scrollTop = 0;
5586+
public preventContainerScroll = (evt) => {
5587+
if (evt.target.scrollTop !== 0) {
5588+
this.verticalScrollContainer.addScrollTop(evt.target.scrollTop);
5589+
evt.target.scrollTop = 0;
5590+
}
5591+
if (evt.target.scrollLeft !== 0) {
5592+
this.headerContainer.scrollPosition += evt.target.scrollLeft;
5593+
evt.target.scrollLeft = 0;
5594+
}
55915595
}
55925596

55935597
/**
@@ -6121,7 +6125,8 @@ export class IgxGridBaseDirective extends DisplayDensityBase implements
61216125
private configureRowEditingOverlay(rowID: any, useOuter = false) {
61226126
this.rowEditSettings.outlet = useOuter ? this.parentRowOutletDirective : this.rowOutletDirective;
61236127
this.rowEditPositioningStrategy.settings.container = this.tbody.nativeElement;
6124-
const targetRow = this.gridAPI.get_row_by_key(rowID);
6128+
const pinned = this._pinnedRecordIDs.indexOf(rowID) !== -1;
6129+
const targetRow = !pinned ? this.gridAPI.get_row_by_key(rowID) : this.pinnedRows.find(x => x.rowID === rowID);
61256130
if (!targetRow) {
61266131
return;
61276132
}

projects/igniteui-angular/src/lib/grids/grid.common.ts

Lines changed: 9 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -3,6 +3,7 @@ import { ConnectedPositioningStrategy } from '../services';
33
import { VerticalAlignment, PositionSettings } from '../services/overlay/utilities';
44
import { scaleInVerBottom, scaleInVerTop } from '../animations/main';
55
import { IgxForOfSyncService } from '../directives/for-of/for_of.sync.service';
6+
import { ColumnPinningPosition, RowPinningPosition } from './common/enums';
67

78

89
@Directive({
@@ -19,6 +20,14 @@ export interface RowEditPositionSettings extends PositionSettings {
1920
container?: HTMLElement;
2021
}
2122

23+
/**
24+
* An interface describing settings for row/column pinning position.
25+
*/
26+
export interface IPinningConfig {
27+
columns?: ColumnPinningPosition;
28+
rows?: RowPinningPosition;
29+
}
30+
2231
/**
2332
* @hidden
2433
*/

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

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -6,7 +6,7 @@ import { IgxGridComponent } from './grid.component';
66
import { IgxGridModule } from './index';
77
import { configureTestSuite } from '../../test-utils/configure-suite';
88
import { ColumnPinningPosition, RowPinningPosition } from '../common/enums';
9-
import { IPinningConfig } from '../common/grid.interface';
9+
import { IPinningConfig } from '../grid.common';
1010
import { SampleTestData } from '../../test-utils/sample-test-data.spec';
1111
import { GridFunctions } from '../../test-utils/grid-functions.spec';
1212
import { SortingDirection } from '../../data-operations/sorting-expression.interface';

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

Lines changed: 0 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -477,16 +477,6 @@ export class IgxGridComponent extends IgxGridBaseDirective implements GridType,
477477
};
478478
}
479479

480-
/**
481-
* @hidden @internal
482-
*/
483-
public preventContainerScroll(evt) {
484-
if (evt.target.scrollTop !== 0) {
485-
this.verticalScrollContainer.addScrollTop(evt.target.scrollTop);
486-
evt.target.scrollTop = 0;
487-
}
488-
}
489-
490480
/**
491481
* @hidden @internal
492482
*/

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

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -6,7 +6,7 @@ import { IgxGridModule } from './index';
66
import { IgxStringFilteringOperand } from '../../data-operations/filtering-condition';
77
import { configureTestSuite } from '../../test-utils/configure-suite';
88
import { ColumnPinningPosition, GridSelectionMode } from '../common/enums';
9-
import { IPinningConfig } from '../common/grid.interface';
9+
import { IPinningConfig } from '../grid.common';
1010
import { wait, UIInteractions } from '../../test-utils/ui-interactions.spec';
1111
import { GridSummaryFunctions,
1212
GridSelectionFunctions,

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

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -86,7 +86,7 @@
8686
<div class="igx-grid__tbody-content" tabindex="0" (focus)="navigation.focusTbody($event)" [attr.aria-activedescendant]="activeDescendant"
8787
(keydown)="navigation.dispatchEvent($event)" (onDragStop)="selectionService.dragMode = $event"
8888
(onDragScroll)="dragScroll($event)" [igxGridDragSelect]="selectionService.dragMode" role="rowgroup"
89-
[style.height.px]='totalHeight' [style.width.px]='calcWidth' #tbody (scroll)='scrollHandler($event)'>
89+
[style.height.px]='totalHeight' [style.width.px]='calcWidth' #tbody (scroll)='preventContainerScroll($event)'>
9090
<span *ngIf="hasMovableColumns && draggedColumn && pinnedColumns.length <= 0"
9191
[igxColumnMovingDrop]="headerContainer" [attr.droppable]="true" id="left"
9292
class="igx-grid__scroll-on-drag-left"></span>

projects/igniteui-angular/src/lib/grids/state.directive.ts

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -12,7 +12,7 @@ import { GridSelectionRange } from './selection/selection.service';
1212
import { IGroupByExpandState } from '../data-operations/groupby-expand-state.interface';
1313
import { IGroupingState } from '../data-operations/groupby-state.interface';
1414
import { IgxGridComponent } from './grid/grid.component';
15-
import { IPinningConfig } from './common/grid.interface';
15+
import { IPinningConfig } from './grid.common';
1616

1717
export interface IGridState {
1818
columns?: IColumnState[];

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

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -67,7 +67,7 @@
6767
<div igxGridBody (keydown.control.c)="copyHandlerIE()" (copy)="copyHandler($event)" class="igx-grid__tbody">
6868
<div class="igx-grid__tbody-content" tabindex="0" (focus)="navigation.focusTbody($event)" [attr.aria-activedescendant]="activeDescendant" (keydown)="navigation.dispatchEvent($event)" role="rowgroup" (onDragStop)="selectionService.dragMode = $event"
6969
(onDragScroll)="dragScroll($event)" [igxGridDragSelect]="selectionService.dragMode"
70-
[style.height.px]='totalHeight' [style.width.px]='calcWidth' #tbody (scroll)='scrollHandler($event)'>
70+
[style.height.px]='totalHeight' [style.width.px]='calcWidth' #tbody (scroll)='preventContainerScroll($event)'>
7171
<span *ngIf="hasMovableColumns && draggedColumn && pinnedColumns.length <= 0"
7272
[igxColumnMovingDrop]="headerContainer" [attr.droppable]="true" id="left"
7373
class="igx-grid__scroll-on-drag-left"></span>

projects/igniteui-angular/src/lib/test-utils/hierarchical-grid-components.spec.ts

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -4,7 +4,7 @@ import { IgxColumnComponent } from '../grids';
44
import { IgxHierarchicalTransactionServiceFactory } from '../grids/hierarchical-grid/hierarchical-grid-base.directive';
55
import { IgxHierarchicalGridComponent } from '../grids/hierarchical-grid/hierarchical-grid.component';
66
import { IgxRowIslandComponent } from '../grids/hierarchical-grid/row-island.component';
7-
import { IPinningConfig } from '../grids/common/grid.interface';
7+
import { IPinningConfig } from '../grids/grid.common';
88
import { ColumnPinningPosition, RowPinningPosition } from '../grids/common/enums';
99

1010
@Component({

0 commit comments

Comments
 (0)