Skip to content

Commit 65cff32

Browse files
committed
chore(paginator): add paginator demo
1 parent 515cc06 commit 65cff32

File tree

7 files changed

+93
-0
lines changed

7 files changed

+93
-0
lines changed

.github/CODEOWNERS

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -119,6 +119,7 @@
119119
/src/demo-app/live-announcer/** @jelbourn
120120
/src/demo-app/menu/** @kara @crisbeto
121121
/src/demo-app/overlay/** @jelbourn @crisbeto
122+
/src/demo-app/paginator/** @andrewseguin
122123
/src/demo-app/platform/** @jelbourn @devversion
123124
/src/demo-app/portal/** @jelbourn
124125
/src/demo-app/progress-bar/** @jelbourn @crisbeto @josephperrott

src/demo-app/demo-app/demo-app.ts

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -71,6 +71,7 @@ export class DemoApp {
7171
{name: 'Live Announcer', route: '/live-announcer'},
7272
{name: 'Menu', route: '/menu'},
7373
{name: 'Overlay', route: '/overlay'},
74+
{name: 'Paginator', route: '/paginator'},
7475
{name: 'Platform', route: '/platform'},
7576
{name: 'Portal', route: '/portal'},
7677
{name: 'Progress Bar', route: '/progress-bar'},

src/demo-app/demo-app/demo-module.ts

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -64,6 +64,7 @@ import {TableDemoModule} from '../table/table-demo-module';
6464
import {BadgeDemo} from '../badge/badge-demo';
6565
import {TreeDemoModule} from '../tree/tree-demo-module';
6666
import {ConnectedOverlayDemo, DemoOverlay} from '../connected-overlay/connected-overlay-demo';
67+
import {PaginatorDemo} from 'paginator/paginator-demo';
6768

6869
@NgModule({
6970
imports: [
@@ -109,6 +110,7 @@ import {ConnectedOverlayDemo, DemoOverlay} from '../connected-overlay/connected-
109110
MatCheckboxDemoNestedChecklist,
110111
MenuDemo,
111112
OverlayDemo,
113+
PaginatorDemo,
112114
PlatformDemo,
113115
PortalDemo,
114116
ProgressBarDemo,

src/demo-app/demo-app/routes.ts

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -54,6 +54,7 @@ import {TableDemoPage} from '../table/table-demo-page';
5454
import {TABLE_DEMO_ROUTES} from '../table/routes';
5555
import {BadgeDemo} from '../badge/badge-demo';
5656
import {ConnectedOverlayDemo} from '../connected-overlay/connected-overlay-demo';
57+
import {PaginatorDemo} from '../paginator/paginator-demo';
5758

5859
export const DEMO_APP_ROUTES: Routes = [
5960
{path: '', component: DemoApp, children: [
@@ -80,6 +81,7 @@ export const DEMO_APP_ROUTES: Routes = [
8081
{path: 'live-announcer', component: LiveAnnouncerDemo},
8182
{path: 'menu', component: MenuDemo},
8283
{path: 'overlay', component: OverlayDemo},
84+
{path: 'paginator', component: PaginatorDemo},
8385
{path: 'platform', component: PlatformDemo},
8486
{path: 'portal', component: PortalDemo},
8587
{path: 'progress-bar', component: ProgressBarDemo},
Lines changed: 35 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,35 @@
1+
<mat-card class="demo-section">
2+
<h2>No inputs</h2>
3+
<mat-paginator></mat-paginator>
4+
</mat-card>
5+
6+
<mat-card class="demo-section">
7+
<div class="demo-options">
8+
<mat-form-field>
9+
<input matInput placeholder="Length" type="number" [(ngModel)]="length">
10+
</mat-form-field>
11+
12+
<mat-form-field>
13+
<input matInput placeholder="Page Size" type="number" [(ngModel)]="pageSize">
14+
</mat-form-field>
15+
16+
<mat-form-field>
17+
<input matInput placeholder="Page Index" type="number" [(ngModel)]="pageIndex">
18+
</mat-form-field>
19+
20+
<mat-slide-toggle [(ngModel)]="hidePageSize">Hide page size</mat-slide-toggle>
21+
<mat-slide-toggle [(ngModel)]="showPageSizeOptions">Show multiple page size options</mat-slide-toggle>
22+
<mat-slide-toggle [(ngModel)]="showFirstLastButtons">Show first/last buttons</mat-slide-toggle>
23+
</div>
24+
25+
<mat-paginator (page)="handlePageEvent($event)"
26+
[length]="length"
27+
[pageSize]="pageSize"
28+
[showFirstLastButtons]="showFirstLastButtons"
29+
[pageSizeOptions]="showPageSizeOptions ? pageSizeOptions : []"
30+
[hidePageSize]="hidePageSize"
31+
[pageIndex]="pageIndex">
32+
</mat-paginator>
33+
34+
<div> Output event: {{pageEvent | json}} </div>
35+
</mat-card>
Lines changed: 15 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,15 @@
1+
.demo-section {
2+
max-width: 500px;
3+
margin-bottom: 24px;
4+
background: #efefef !important;
5+
6+
& > * {
7+
margin: 32px 0;
8+
}
9+
}
10+
11+
.demo-options {
12+
display: flex;
13+
flex-direction: column;
14+
max-width: 300px;
15+
}
Lines changed: 37 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,37 @@
1+
/**
2+
* @license
3+
* Copyright Google LLC All Rights Reserved.
4+
*
5+
* Use of this source code is governed by an MIT-style license that can be
6+
* found in the LICENSE file at https://angular.io/license
7+
*/
8+
9+
import {Component, ViewEncapsulation} from '@angular/core';
10+
import {PageEvent} from '@angular/material';
11+
12+
@Component({
13+
moduleId: module.id,
14+
selector: 'paginator-demo',
15+
templateUrl: 'paginator-demo.html',
16+
styleUrls: ['paginator-demo.css'],
17+
encapsulation: ViewEncapsulation.None,
18+
})
19+
export class PaginatorDemo {
20+
length = 50;
21+
pageSize = 10;
22+
pageIndex = 0;
23+
pageSizeOptions = [5, 10, 25];
24+
25+
hidePageSize = false;
26+
showPageSizeOptions = true;
27+
showFirstLastButtons = true;
28+
29+
pageEvent: PageEvent;
30+
31+
handlePageEvent(e: PageEvent) {
32+
this.pageEvent = e;
33+
this.length = e.length;
34+
this.pageSize = e.pageSize;
35+
this.pageIndex = e.pageIndex;
36+
}
37+
}

0 commit comments

Comments
 (0)