UNPKG

16 kBSource Map (JSON)View Raw
1{"version":3,"file":"primeng-paginator.umd.js","sources":["ng://primeng/paginator/paginator.ts"],"sourcesContent":["import {NgModule,Component,OnInit,Input,Output,ChangeDetectorRef,EventEmitter,TemplateRef,OnChanges,SimpleChanges,ChangeDetectionStrategy} from '@angular/core';\nimport {CommonModule} from '@angular/common';\nimport {FormsModule} from '@angular/forms';\nimport {DropdownModule} from 'primeng/dropdown';\nimport {SelectItem} from 'primeng/api';\nimport {SharedModule} from 'primeng/api';\n\n@Component({\n selector: 'p-paginator',\n template: `\n <div [class]=\"styleClass\" [ngStyle]=\"style\" [ngClass]=\"'ui-paginator ui-widget ui-widget-header ui-unselectable-text ui-helper-clearfix'\"\n *ngIf=\"alwaysShow ? true : (pageLinks && pageLinks.length > 1)\">\n <div class=\"ui-paginator-left-content\" *ngIf=\"templateLeft\">\n <ng-container *ngTemplateOutlet=\"templateLeft; context: {$implicit: paginatorState}\"></ng-container>\n </div>\n <span class=\"ui-paginator-current\" *ngIf=\"showCurrentPageReport\">{{currentPageReport}}</span>\n <a [attr.tabindex]=\"isFirstPage() ? null : '0'\" class=\"ui-paginator-first ui-paginator-element ui-state-default ui-corner-all\"\n (click)=\"changePageToFirst($event)\" (keydown.enter)=\"changePageToFirst($event)\" [ngClass]=\"{'ui-state-disabled':isFirstPage()}\" [tabindex]=\"isFirstPage() ? -1 : null\">\n <span class=\"ui-paginator-icon pi pi-step-backward\"></span>\n </a>\n <a tabindex=\"0\" [attr.tabindex]=\"isFirstPage() ? null : '0'\" class=\"ui-paginator-prev ui-paginator-element ui-state-default ui-corner-all\"\n (click)=\"changePageToPrev($event)\" (keydown.enter)=\"changePageToPrev($event)\" [ngClass]=\"{'ui-state-disabled':isFirstPage()}\" [tabindex]=\"isFirstPage() ? -1 : null\">\n <span class=\"ui-paginator-icon pi pi-caret-left\"></span>\n </a>\n <span class=\"ui-paginator-pages\">\n <a tabindex=\"0\" *ngFor=\"let pageLink of pageLinks\" class=\"ui-paginator-page ui-paginator-element ui-state-default ui-corner-all\"\n (click)=\"onPageLinkClick($event, pageLink - 1)\" (keydown.enter)=\"onPageLinkClick($event, pageLink - 1)\" [ngClass]=\"{'ui-state-active': (pageLink-1 == getPage())}\">{{pageLink}}</a>\n </span>\n <a [attr.tabindex]=\"isLastPage() ? null : '0'\" class=\"ui-paginator-next ui-paginator-element ui-state-default ui-corner-all\"\n (click)=\"changePageToNext($event)\" (keydown.enter)=\"changePageToNext($event)\" [ngClass]=\"{'ui-state-disabled':isLastPage()}\" [tabindex]=\"isLastPage() ? -1 : null\">\n <span class=\"ui-paginator-icon pi pi-caret-right\"></span>\n </a>\n <a [attr.tabindex]=\"isLastPage() ? null : '0'\" class=\"ui-paginator-last ui-paginator-element ui-state-default ui-corner-all\"\n (click)=\"changePageToLast($event)\" (keydown.enter)=\"changePageToLast($event)\" [ngClass]=\"{'ui-state-disabled':isLastPage()}\" [tabindex]=\"isLastPage() ? -1 : null\">\n <span class=\"ui-paginator-icon pi pi-step-forward\"></span>\n </a>\n <p-dropdown [options]=\"rowsPerPageItems\" [(ngModel)]=\"rows\" *ngIf=\"rowsPerPageOptions\" \n (onChange)=\"onRppChange($event)\" [appendTo]=\"dropdownAppendTo\" [scrollHeight]=\"dropdownScrollHeight\"></p-dropdown>\n <div class=\"ui-paginator-right-content\" *ngIf=\"templateRight\">\n <ng-container *ngTemplateOutlet=\"templateRight; context: {$implicit: paginatorState}\"></ng-container>\n </div>\n </div>\n `,\n changeDetection: ChangeDetectionStrategy.Default\n})\nexport class Paginator implements OnInit, OnChanges {\n\n @Input() pageLinkSize: number = 5;\n\n @Output() onPageChange: EventEmitter<any> = new EventEmitter();\n\n @Input() style: any;\n\n @Input() styleClass: string;\n\n @Input() alwaysShow: boolean = true;\n \n @Input() templateLeft: TemplateRef<any>;\n \n @Input() templateRight: TemplateRef<any>;\n\n @Input() dropdownAppendTo: any;\n\n @Input() dropdownScrollHeight: string = '200px';\n\n @Input() currentPageReportTemplate: string = '{currentPage} of {totalPages}';\n\n @Input() showCurrentPageReport: boolean;\n\n @Input() totalRecords: number = 0;\n\n @Input() rows: number = 0;\n \n @Input() rowsPerPageOptions: any[];\n\n pageLinks: number[];\n\n rowsPerPageItems: SelectItem[];\n \n paginatorState: any;\n\n _first: number = 0;\n\n constructor(private cd: ChangeDetectorRef) {}\n \n ngOnInit() {\n this.updatePaginatorState();\n }\n\n ngOnChanges(simpleChange: SimpleChanges) {\n if (simpleChange.totalRecords) {\n this.updatePageLinks();\n this.updatePaginatorState();\n this.updateFirst();\n this.updateRowsPerPageOptions();\n }\n\n if (simpleChange.first) {\n this._first = simpleChange.first.currentValue;\n this.updatePageLinks();\n this.updatePaginatorState();\n }\n\n if (simpleChange.rows) {\n this.updatePageLinks();\n this.updatePaginatorState();\n }\n\n if (simpleChange.rowsPerPageOptions) {\n this.updateRowsPerPageOptions();\n }\n }\n\n @Input() get first(): number {\n return this._first;\n }\n set first(val:number) {\n this._first = val;\n }\n\n updateRowsPerPageOptions() {\n if (this.rowsPerPageOptions) {\n this.rowsPerPageItems = [];\n for (let opt of this.rowsPerPageOptions) {\n if (typeof opt == 'object' && opt['showAll']) {\n this.rowsPerPageItems.unshift({label: opt['showAll'], value: this.totalRecords});\n }\n else {\n this.rowsPerPageItems.push({label: String(opt), value: opt});\n }\n }\n }\n }\n\n isFirstPage() {\n return this.getPage() === 0;\n }\n\n isLastPage() {\n return this.getPage() === this.getPageCount() - 1;\n }\n\n getPageCount() {\n return Math.ceil(this.totalRecords/this.rows)||1;\n }\n\n calculatePageLinkBoundaries() {\n let numberOfPages = this.getPageCount(),\n visiblePages = Math.min(this.pageLinkSize, numberOfPages);\n\n //calculate range, keep current in middle if necessary\n let start = Math.max(0, Math.ceil(this.getPage() - ((visiblePages) / 2))),\n end = Math.min(numberOfPages - 1, start + visiblePages - 1);\n\n //check when approaching to last page\n var delta = this.pageLinkSize - (end - start + 1);\n start = Math.max(0, start - delta);\n\n return [start, end];\n }\n\n updatePageLinks() {\n this.pageLinks = [];\n let boundaries = this.calculatePageLinkBoundaries(),\n start = boundaries[0],\n end = boundaries[1];\n\n for(let i = start; i <= end; i++) {\n this.pageLinks.push(i + 1);\n }\n }\n\n changePage(p :number) {\n var pc = this.getPageCount();\n\n if (p >= 0 && p < pc) {\n this._first = this.rows * p;\n var state = {\n page: p,\n first: this.first,\n rows: this.rows,\n pageCount: pc\n };\n this.updatePageLinks();\n\n this.onPageChange.emit(state);\n this.updatePaginatorState();\n }\n }\n\n updateFirst() {\n const page = this.getPage();\n if (page > 0 && this.totalRecords && (this.first >= this.totalRecords)) {\n Promise.resolve(null).then(() => this.changePage(page - 1));\n }\n }\n\n getPage(): number {\n return Math.floor(this.first / this.rows);\n }\n\n changePageToFirst(event) {\n if (!this.isFirstPage()){\n this.changePage(0);\n }\n\n event.preventDefault();\n }\n\n changePageToPrev(event) {\n this.changePage(this.getPage() - 1);\n event.preventDefault();\n }\n\n changePageToNext(event) {\n this.changePage(this.getPage() + 1);\n event.preventDefault();\n }\n\n changePageToLast(event) {\n if (!this.isLastPage()){\n this.changePage(this.getPageCount() - 1);\n }\n\n event.preventDefault();\n }\n\n onPageLinkClick(event, page) {\n this.changePage(page);\n event.preventDefault();\n }\n\n onRppChange(event) {\n this.changePage(this.getPage());\n }\n \n updatePaginatorState() {\n this.paginatorState = {\n page: this.getPage(),\n pageCount: this.getPageCount(),\n rows: this.rows,\n first: this.first,\n totalRecords: this.totalRecords\n }\n }\n\n get currentPageReport() {\n return this.currentPageReportTemplate\n .replace(\"{currentPage}\", String(this.getPage() + 1))\n .replace(\"{totalPages}\", String(this.getPageCount()))\n .replace(\"{first}\", String(this._first + 1))\n .replace(\"{last}\", String(Math.min(this._first + this.rows, this.totalRecords)))\n .replace(\"{rows}\", String(this.rows))\n .replace(\"{totalRecords}\", String(this.totalRecords));\n }\n}\n\n@NgModule({\n imports: [CommonModule,DropdownModule,FormsModule,SharedModule],\n exports: [Paginator,DropdownModule,FormsModule,SharedModule],\n declarations: [Paginator]\n})\nexport class PaginatorModule { }\n"],"names":["EventEmitter","ChangeDetectorRef","Input","Output","Component","ChangeDetectionStrategy","NgModule","CommonModule","DropdownModule","FormsModule","SharedModule"],"mappings":"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"}
\No newline at end of file