Skip to content

Commit d0e2f70

Browse files
committed
fix(grid): strict string typing the grid paging mode
1 parent f6254a2 commit d0e2f70

File tree

4 files changed

+15
-13
lines changed

4 files changed

+15
-13
lines changed

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

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -56,7 +56,7 @@ import { IColumnVisibilityChangingEventArgs, IPinColumnCancellableEventArgs, IPi
5656
import { isConstructor, PlatformUtil } from '../../core/utils';
5757
import { IgxGridCell } from '../grid-public-cell';
5858
import { NG_VALIDATORS, Validator } from '@angular/forms';
59-
import { Size } from '../common/enums';
59+
import { GridPagingMode, Size } from '../common/enums';
6060
import { ExpressionsTreeUtil } from '../../data-operations/expressions-tree-util';
6161

6262
const DEFAULT_DATE_FORMAT = 'mediumDate';
@@ -1422,7 +1422,8 @@ export class IgxColumnComponent implements AfterContentInit, OnDestroy, ColumnTy
14221422
return this.grid.dataView
14231423
.map((rec, index) => {
14241424
if (!this.grid.isGroupByRecord(rec) && !this.grid.isSummaryRow(rec)) {
1425-
this.grid.pagingMode === 1 && this.grid.page !== 0 ? index = index + this.grid.perPage * this.grid.page : index = this.grid.dataRowList.first.index + index;
1425+
this.grid.pagingMode === GridPagingMode.Local && this.grid.page !== 0 ?
1426+
index = index + this.grid.perPage * this.grid.page : index = this.grid.dataRowList.first.index + index;
14261427
const cell = new IgxGridCell(this.grid as any, index, this);
14271428
return cell;
14281429
}

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

Lines changed: 5 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -103,16 +103,16 @@ export enum RowPinningPosition {
103103
Bottom
104104
}
105105

106-
/* mustCoerceToInt */
107106
/**
108107
* Enumeration representing different paging modes for the grid.
109108
* - Local: The grid will use local data to extract pages during paging.
110109
* - Remote: The grid will expect pages to be delivered from a remote location and will only raise events during paging interactions.
111110
*/
112-
export enum GridPagingMode {
113-
Local,
114-
Remote
115-
}
111+
export const GridPagingMode = /*@__PURE__*/mkenum({
112+
Local: 'local',
113+
Remote: 'remote'
114+
});
115+
export type GridPagingMode = (typeof GridPagingMode)[keyof typeof GridPagingMode];
116116

117117
/**
118118
* @hidden @internal

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

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -3052,7 +3052,7 @@ export abstract class IgxGridBaseDirective implements GridType,
30523052
/**
30533053
* @hidden
30543054
*/
3055-
protected _pagingMode = GridPagingMode.Local;
3055+
protected _pagingMode: GridPagingMode = GridPagingMode.Local;
30563056
/**
30573057
* @hidden
30583058
*/
@@ -4609,7 +4609,7 @@ export abstract class IgxGridBaseDirective implements GridType,
46094609
*/
46104610
protected _getDataViewIndex(index: number): number {
46114611
let newIndex = index;
4612-
if ((index < 0 || index >= this.dataView.length) && this.pagingMode === 1 && this.page !== 0) {
4612+
if ((index < 0 || index >= this.dataView.length) && this.pagingMode === GridPagingMode.Local && this.page !== 0) {
46134613
newIndex = index - this.perPage * this.page;
46144614
} else if (this.gridAPI.grid.verticalScrollContainer.isRemote) {
46154615
newIndex = index - this.gridAPI.grid.virtualizationState.startIndex;

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

Lines changed: 5 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -23,7 +23,7 @@ import { IgxGridSummaryService } from '../summaries/grid-summary.service';
2323
import { IgxGridSelectionService } from '../selection/selection.service';
2424
import { IgxForOfSyncService, IgxForOfScrollSyncService } from '../../directives/for-of/for_of.sync.service';
2525
import { IgxGridMRLNavigationService } from '../grid-mrl-navigation.service';
26-
import { FilterMode } from '../common/enums';
26+
import { FilterMode, GridPagingMode } from '../common/enums';
2727
import { CellType, GridType, IgxGridMasterDetailContext, IgxGroupByRowSelectorTemplateContext, IgxGroupByRowTemplateContext, IGX_GRID_BASE, IGX_GRID_SERVICE_BASE, RowType } from '../common/grid.interface';
2828
import { IgxGroupByRowSelectorDirective } from '../selection/row-selectors';
2929
import { IgxGridCRUDService } from '../common/crud.service';
@@ -1126,7 +1126,7 @@ export class IgxGridComponent extends IgxGridBaseDirective implements GridType,
11261126
}
11271127
}
11281128

1129-
if (this.pagingMode === 1 && this.page !== 0) {
1129+
if (this.pagingMode === GridPagingMode.Local && this.page !== 0) {
11301130
row.index = index + this.perPage * this.page;
11311131
}
11321132
return row;
@@ -1160,7 +1160,8 @@ export class IgxGridComponent extends IgxGridBaseDirective implements GridType,
11601160
*/
11611161
public allRows(): RowType[] {
11621162
return this.dataView.map((rec, index) => {
1163-
this.pagingMode === 1 && this.page !== 0 ? index = index + this.perPage * this.page : index = this.dataRowList.first.index + index;
1163+
this.pagingMode === GridPagingMode.Local && this.page !== 0 ?
1164+
index = index + this.perPage * this.page : index = this.dataRowList.first.index + index;
11641165
return this.createRow(index);
11651166
});
11661167
}
@@ -1201,7 +1202,7 @@ export class IgxGridComponent extends IgxGridBaseDirective implements GridType,
12011202
const row = this.getRowByIndex(rowIndex);
12021203
const column = this._columns.find((col) => col.field === columnField);
12031204
if (row && row instanceof IgxGridRow && !row.data?.detailsData && column) {
1204-
if (this.pagingMode === 1 && this.page !== 0) {
1205+
if (this.pagingMode === GridPagingMode.Local && this.page !== 0) {
12051206
row.index = rowIndex + this.perPage * this.page;
12061207
}
12071208
return new IgxGridCell(this, row.index, column);

0 commit comments

Comments
 (0)