UNPKG

16.4 kBSource Map (JSON)View Raw
1{"version":3,"file":"primeng-paginator.js","sources":["../../src/app/components/paginator/paginator.ts","../../src/app/components/paginator/primeng-paginator.ts"],"sourcesContent":["import {NgModule,Component,OnInit,Input,Output,ChangeDetectorRef,EventEmitter,TemplateRef,OnChanges,SimpleChanges,ChangeDetectionStrategy, ViewEncapsulation} from '@angular/core';\nimport {CommonModule} from '@angular/common';\nimport {FormsModule} from '@angular/forms';\nimport {DropdownModule} from 'primeng/dropdown';\nimport {SelectItem} from 'primeng/api';\nimport {RippleModule} from 'primeng/ripple';\nimport {SharedModule} from 'primeng/api';\n\n@Component({\n selector: 'p-paginator',\n template: `\n <div [class]=\"styleClass\" [ngStyle]=\"style\" [ngClass]=\"'p-paginator p-component'\" *ngIf=\"alwaysShow ? true : (pageLinks && pageLinks.length > 1)\">\n <div class=\"p-paginator-left-content\" *ngIf=\"templateLeft\">\n <ng-container *ngTemplateOutlet=\"templateLeft; context: {$implicit: paginatorState}\"></ng-container>\n </div>\n <span class=\"p-paginator-current\" *ngIf=\"showCurrentPageReport\">{{currentPageReport}}</span>\n <button type=\"button\" [disabled]=\"isFirstPage()\" (click)=\"changePageToFirst($event)\" pRipple\n class=\"p-paginator-first p-paginator-element p-link\" [ngClass]=\"{'p-disabled':isFirstPage()}\">\n <span class=\"p-paginator-icon pi pi-angle-double-left\"></span>\n </button>\n <button type=\"button\" [disabled]=\"isFirstPage()\" (click)=\"changePageToPrev($event)\" pRipple\n class=\"p-paginator-prev p-paginator-element p-link\" [ngClass]=\"{'p-disabled':isFirstPage()}\">\n <span class=\"p-paginator-icon pi pi-angle-left\"></span>\n </button>\n <span class=\"p-paginator-pages\" *ngIf=\"showPageLinks\">\n <button type=\"button\" *ngFor=\"let pageLink of pageLinks\" class=\"p-paginator-page p-paginator-element p-link\" [ngClass]=\"{'p-highlight': (pageLink-1 == getPage())}\"\n (click)=\"onPageLinkClick($event, pageLink - 1)\" pRipple>{{pageLink}}</button>\n </span>\n <p-dropdown [options]=\"pageItems\" [ngModel]=\"getPage()\" *ngIf=\"showJumpToPageDropdown\" styleClass=\"p-paginator-page-options\"\n (onChange)=\"onPageDropdownChange($event)\" [appendTo]=\"dropdownAppendTo\" [scrollHeight]=\"dropdownScrollHeight\">\n <ng-template pTemplate=\"selectedItem\">{{currentPageReport}}</ng-template>\n </p-dropdown>\n <button type=\"button\" [disabled]=\"isLastPage()\" (click)=\"changePageToNext($event)\" pRipple\n class=\"p-paginator-next p-paginator-element p-link\" [ngClass]=\"{'p-disabled':isLastPage()}\">\n <span class=\"p-paginator-icon pi pi-angle-right\"></span>\n </button>\n <button type=\"button\" [disabled]=\"isLastPage()\" (click)=\"changePageToLast($event)\" pRipple\n class=\"p-paginator-last p-paginator-element p-link\" [ngClass]=\"{'p-disabled':isLastPage()}\">\n <span class=\"p-paginator-icon pi pi-angle-double-right\"></span>\n </button>\n <p-dropdown [options]=\"rowsPerPageItems\" [(ngModel)]=\"rows\" *ngIf=\"rowsPerPageOptions\" styleClass=\"p-paginator-rpp-options\"\n (onChange)=\"onRppChange($event)\" [appendTo]=\"dropdownAppendTo\" [scrollHeight]=\"dropdownScrollHeight\"></p-dropdown>\n <div class=\"p-paginator-right-content\" *ngIf=\"templateRight\">\n <ng-container *ngTemplateOutlet=\"templateRight; context: {$implicit: paginatorState}\"></ng-container>\n </div>\n </div>\n `,\n changeDetection: ChangeDetectionStrategy.OnPush,\n encapsulation: ViewEncapsulation.None,\n styleUrls: ['./paginator.css']\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 @Input() showJumpToPageDropdown: boolean;\n\n @Input() showPageLinks: boolean = true;\n\n pageLinks: number[];\n\n pageItems: SelectItem[];\n\n rowsPerPageItems: SelectItem[];\n \n paginatorState: any;\n\n _first: number = 0;\n\n _page: 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 if (this.showJumpToPageDropdown) {\n this.pageItems = [];\n for (let i = 0; i < this.getPageCount(); i++) {\n this.pageItems.push({label: String(i + 1), value: i});\n }\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 onPageDropdownChange(event) {\n this.changePage(event.value);\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,RippleModule],\n exports: [Paginator,DropdownModule,FormsModule,SharedModule],\n declarations: [Paginator]\n})\nexport class PaginatorModule { }\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public_api';\n"],"names":[],"mappings":"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"}
\No newline at end of file