UNPKG

ng-angular8-datatable

Version:
76 lines (66 loc) 3.89 kB
import { Component, Input, OnChanges } from '@angular/core'; import { DataTable } from './DataTable'; import * as _ from 'lodash'; @Component({ selector: 'sv-bootstrap-paginator', template: ` <sv-paginator #p [svTable]="svTable"> <div class="row"> <div class="col-md-10"> <ul class="pagination" *ngIf="p.dataLength > p.rowsOnPage"> <li class="page-item" [class.disabled]="p.activePage <= 1" (click)="p.setPage(1)"> <a class="page-link" style="cursor: pointer">&laquo;</a> </li> <li class="page-item" *ngIf="p.activePage > 4 && p.activePage + 1 > p.lastPage" (click)="p.setPage(p.activePage - 4)"> <a class="page-link" style="cursor: pointer">{{p.activePage-4}}</a> </li> <li class="page-item" *ngIf="p.activePage > 3 && p.activePage + 2 > p.lastPage" (click)="p.setPage(p.activePage - 3)"> <a class="page-link" style="cursor: pointer">{{p.activePage-3}}</a> </li> <li class="page-item" *ngIf="p.activePage > 2" (click)="p.setPage(p.activePage - 2)"> <a class="page-link" style="cursor: pointer">{{p.activePage-2}}</a> </li> <li class="page-item" *ngIf="p.activePage > 1" (click)="p.setPage(p.activePage - 1)"> <a class="page-link" style="cursor: pointer">{{p.activePage-1}}</a> </li> <li class="page-item active"> <a class="page-link" style="cursor: pointer">{{p.activePage}}</a> </li> <li class="page-item" *ngIf="p.activePage + 1 <= p.lastPage" (click)="p.setPage(p.activePage + 1)"> <a class="page-link" style="cursor: pointer">{{p.activePage+1}}</a> </li> <li class="page-item" *ngIf="p.activePage + 2 <= p.lastPage" (click)="p.setPage(p.activePage + 2)"> <a class="page-link" style="cursor: pointer">{{p.activePage+2}}</a> </li> <li class="page-item" *ngIf="p.activePage + 3 <= p.lastPage && p.activePage < 3" (click)="p.setPage(p.activePage + 3)"> <a class="page-link" style="cursor: pointer">{{p.activePage+3}}</a> </li> <li class="page-item" *ngIf="p.activePage + 4 <= p.lastPage && p.activePage < 2" (click)="p.setPage(p.activePage + 4)"> <a class="page-link" style="cursor: pointer">{{p.activePage+4}}</a> </li> <li class="page-item" [class.disabled]="p.activePage >= p.lastPage" (click)="p.setPage(p.lastPage)"> <a class="page-link" style="cursor: pointer">&raquo;</a> </li> </ul> </div> <div class="col-md-2 pull-right float-sm-right"> <ul class="pagination pull-right float-sm-right" *ngIf="p.dataLength > minRowsOnPage"> <li class="page-item" *ngFor="let rows of rowsOnPageSet" [class.active]="p.rowsOnPage===rows" (click)="p.setRowsOnPage(rows)"> <a class="page-link" style="cursor: pointer">{{rows}}</a> </li> </ul> </div> </div> </sv-paginator> ` }) export class BootstrapPaginator implements OnChanges { @Input("rowsOnPageSet") rowsOnPageSet = []; @Input("svTable") svTable: DataTable; public minRowsOnPage = 0; ngOnChanges(changes: any): any { if (changes.rowsOnPageSet) { this.minRowsOnPage = _.min(this.rowsOnPageSet) } } }