UNPKG

14.7 kBSource Map (JSON)View Raw
1{"version":3,"sources":["ng://primeng/paginator/paginator.ts"],"names":["Paginator","cd","this","pageLinkSize","onPageChange","EventEmitter","alwaysShow","dropdownScrollHeight","currentPageReportTemplate","totalRecords","rows","_first","prototype","ngOnInit","updatePaginatorState","ngOnChanges","simpleChange","updatePageLinks","updateFirst","updateRowsPerPageOptions","first","currentValue","rowsPerPageOptions","Object","defineProperty","val","rowsPerPageItems","_b","__values","_c","next","done","opt","value","unshift","label","push","String","isFirstPage","getPage","isLastPage","getPageCount","Math","ceil","calculatePageLinkBoundaries","numberOfPages","visiblePages","min","start","max","end","delta","pageLinks","boundaries","i","changePage","p","pc","state","page","pageCount","emit","_this","Promise","resolve","then","floor","changePageToFirst","event","preventDefault","changePageToPrev","changePageToNext","changePageToLast","onPageLinkClick","onRppChange","paginatorState","replace","ChangeDetectorRef","__decorate","Input","Output","Component","selector","template","changeDetection","ChangeDetectionStrategy","Default","PaginatorModule","NgModule","imports","CommonModule","DropdownModule","FormsModule","SharedModule","exports","declarations"],"mappings":"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","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"]}
\No newline at end of file