Skip to content

Commit 3f5e481

Browse files
crisbetojosephperrott
authored andcommitted
fix(paginator): handle negative pageSize and pageIndex correctly (#11068)
1 parent 01d0993 commit 3f5e481

File tree

2 files changed

+12
-2
lines changed

2 files changed

+12
-2
lines changed

src/lib/paginator/paginator.spec.ts

Lines changed: 10 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -157,6 +157,16 @@ describe('MatPaginator', () => {
157157
expect(isMarkedInitialized).toBeTruthy();
158158
}));
159159

160+
it('should not allow a negative pageSize', () => {
161+
paginator.pageSize = -1337;
162+
expect(paginator.pageSize).toBeGreaterThanOrEqual(0);
163+
});
164+
165+
it('should not allow a negative pageIndex', () => {
166+
paginator.pageSize = -42;
167+
expect(paginator.pageIndex).toBeGreaterThanOrEqual(0);
168+
});
169+
160170
describe('when showing the first and last button', () => {
161171

162172
beforeEach(() => {

src/lib/paginator/paginator.ts

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -76,7 +76,7 @@ export class MatPaginator extends _MatPaginatorBase implements OnInit, OnDestroy
7676
@Input()
7777
get pageIndex(): number { return this._pageIndex; }
7878
set pageIndex(value: number) {
79-
this._pageIndex = coerceNumberProperty(value);
79+
this._pageIndex = Math.max(coerceNumberProperty(value), 0);
8080
this._changeDetectorRef.markForCheck();
8181
}
8282
_pageIndex: number = 0;
@@ -94,7 +94,7 @@ export class MatPaginator extends _MatPaginatorBase implements OnInit, OnDestroy
9494
@Input()
9595
get pageSize(): number { return this._pageSize; }
9696
set pageSize(value: number) {
97-
this._pageSize = coerceNumberProperty(value);
97+
this._pageSize = Math.max(coerceNumberProperty(value), 0);
9898
this._updateDisplayedPageSizeOptions();
9999
}
100100
private _pageSize: number;

0 commit comments

Comments
 (0)