Skip to content

Commit 235215c

Browse files
SylTivalorkin
authored andcommitted
feat(pagination): allow setting of a custom css class on <li> (#1115)
* Pagination: allow setting of a custom css class on <li> * Rename classLi to pageBtnClass * Remove btn-primary class from exemple
1 parent f74c1fb commit 235215c

File tree

4 files changed

+26
-8
lines changed

4 files changed

+26
-8
lines changed

components/pagination/pager.component.ts

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -7,15 +7,16 @@ const pagerConfig = {
77
itemsPerPage: 10,
88
previousText: '« Previous',
99
nextText: 'Next »',
10+
pageBtnClass: '',
1011
align: true
1112
};
1213

1314
const PAGER_TEMPLATE = `
1415
<ul class="pager">
15-
<li [class.disabled]="noPrevious()" [class.previous]="align" [ngClass]="{'pull-right': align}">
16+
<li [class.disabled]="noPrevious()" [class.previous]="align" [ngClass]="{'pull-right': align}" class="{{ pageBtnClass }}">
1617
<a href (click)="selectPage(page - 1, $event)">{{getText('previous')}}</a>
1718
</li>
18-
<li [class.disabled]="noNext()" [class.next]="align" [ngClass]="{'pull-right': align}">
19+
<li [class.disabled]="noNext()" [class.next]="align" [ngClass]="{'pull-right': align}" class="{{ pageBtnClass }}">
1920
<a href (click)="selectPage(page + 1, $event)">{{getText('next')}}</a>
2021
</li>
2122
</ul>

components/pagination/pagination.component.ts

Lines changed: 18 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -21,6 +21,8 @@ export interface PaginationConfig extends KeyAttribute {
2121
previousText:string;
2222
nextText:string;
2323
lastText:string;
24+
// css
25+
pageBtnClass:string;
2426

2527
rotate:boolean;
2628
}
@@ -38,38 +40,44 @@ const paginationConfig:PaginationConfig = {
3840
previousText: 'Previous',
3941
nextText: 'Next',
4042
lastText: 'Last',
43+
pageBtnClass: '',
4144
rotate: true
4245
};
4346

4447
const PAGINATION_TEMPLATE = `
4548
<ul class="pagination" [ngClass]="classMap">
4649
<li class="pagination-first page-item"
4750
*ngIf="boundaryLinks"
48-
[class.disabled]="noPrevious()||disabled">
51+
[class.disabled]="noPrevious()||disabled"
52+
class="{{ pageBtnClass }}">
4953
<a class="page-link" href (click)="selectPage(1, $event)" [innerHTML]="getText('first')"></a>
5054
</li>
5155
5256
<li class="pagination-prev page-item"
5357
*ngIf="directionLinks"
54-
[class.disabled]="noPrevious()||disabled">
58+
[class.disabled]="noPrevious()||disabled"
59+
class="{{ pageBtnClass }}">
5560
<a class="page-link" href (click)="selectPage(page - 1, $event)" [innerHTML]="getText('previous')"></a>
5661
</li>
5762
5863
<li *ngFor="let pg of pages"
5964
[class.active]="pg.active"
6065
[class.disabled]="disabled&&!pg.active"
61-
class="pagination-page page-item">
66+
class="pagination-page page-item"
67+
class="{{ pageBtnClass }}">
6268
<a class="page-link" href (click)="selectPage(pg.number, $event)" [innerHTML]="pg.text"></a>
6369
</li>
6470
6571
<li class="pagination-next page-item"
6672
*ngIf="directionLinks"
67-
[class.disabled]="noNext()||disabled">
73+
[class.disabled]="noNext()||disabled"
74+
class="{{ pageBtnClass }}">
6875
<a class="page-link" href (click)="selectPage(page + 1, $event)" [innerHTML]="getText('next')"></a></li>
6976
7077
<li class="pagination-last page-item"
7178
*ngIf="boundaryLinks"
72-
[class.disabled]="noNext()||disabled">
79+
[class.disabled]="noNext()||disabled"
80+
class="{{ pageBtnClass }}">
7381
<a class="page-link" href (click)="selectPage(totalPages, $event)" [innerHTML]="getText('last')"></a></li>
7482
</ul>
7583
`;
@@ -94,6 +102,8 @@ export class PaginationComponent implements ControlValueAccessor, OnInit, Pagina
94102
@Input() public nextText:string;
95103
@Input() public lastText:string;
96104
@Input() public rotate:boolean;
105+
// css
106+
@Input() public pageBtnClass:string;
97107

98108
@Input() public disabled:boolean;
99109

@@ -189,6 +199,9 @@ export class PaginationComponent implements ControlValueAccessor, OnInit, Pagina
189199
this.directionLinks = typeof this.directionLinks !== 'undefined'
190200
? this.directionLinks
191201
: paginationConfig.directionLinks;
202+
this.pageBtnClass = typeof this.pageBtnClass !== 'undefined'
203+
? this.pageBtnClass
204+
: paginationConfig.pageBtnClass;
192205

193206
// base class
194207
this.itemsPerPage = typeof this.itemsPerPage !== 'undefined'

components/pagination/readme.md

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -23,6 +23,8 @@ export class PaginationComponent implements ControlValueAccessor, OnInit, IPagin
2323
@Input() public nextText:string;
2424
@Input() public lastText:string;
2525
@Input() public rotate:boolean;
26+
// css
27+
@Input() public pageBtnClass: string;
2628

2729
@Input() public disabled:boolean;
2830
@Input() public get itemsPerPage():number {}
@@ -49,6 +51,7 @@ export class PagerComponent extends Pagination {}
4951
- `nextText` (`?string='Next'`) - next button text
5052
- `firstText` (`?string='First'`) - first button text
5153
- `lastText` (`?string='Last'`) - last button text
54+
- `pageBtnClass` (`?string=''`) - add class to `<li>`
5255
5356
### Pagination events
5457
- `numPages` - fired when total pages count changes, `$event:number` equals to total pages count
@@ -61,6 +64,7 @@ export class PagerComponent extends Pagination {}
6164
- `itemsPerPage` (`?number=10`) - maximum number of items per page. If value less than 1 will display all items on one page
6265
- `previousText` (`?string='Previous'`) - previous button text
6366
- `nextText` (`?string='Next'`) - next button text
67+
- `pageBtnClass` (`?string=''`) - add class to `<li>`
6468
6569
### Pager events
6670
- `numPages` - fired when total pages count changes, `$event:number` equals to total pages count

demo/components/pagination/pagination-demo.html

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -14,7 +14,7 @@ <h4>Default</h4>
1414
<hr class="visible-md visible-xs hidden-lg-up">
1515
<div class="col-lg-6" style="margin-top: 10px;">
1616
<h4>Pager</h4>
17-
<pager [totalItems]="totalItems" [(ngModel)]="currentPage" (pageChanged)="pageChanged($event)"></pager>
17+
<pager [totalItems]="totalItems" [(ngModel)]="currentPage" (pageChanged)="pageChanged($event)" pageBtnClass="btn"></pager>
1818

1919
<hr/>
2020
<h4>Limit the maximum visible buttons</h4>

0 commit comments

Comments
 (0)