primeng
Version:
PrimeNG is an open source UI library for Angular featuring a rich set of 80+ components, a theme designer, various theme alternatives such as Material, Bootstrap, Tailwind, premium templates and professional support. In addition, it integrates with PrimeB
1 lines • 45.3 kB
Source Map (JSON)
{"version":3,"file":"primeng-paginator.mjs","sources":["../../src/paginator/style/paginatorstyle.ts","../../src/paginator/paginator.ts","../../src/paginator/primeng-paginator.ts"],"sourcesContent":["import { Injectable } from '@angular/core';\nimport { style } from '@primeuix/styles/paginator';\nimport { BaseStyle } from 'primeng/base';\n\nconst classes = {\n paginator: ({ instance }) => ['p-paginator p-component'],\n content: 'p-paginator-content',\n contentStart: 'p-paginator-content-start',\n contentEnd: 'p-paginator-content-end',\n first: ({ instance }) => [\n 'p-paginator-first',\n {\n 'p-disabled': instance.isFirstPage() || instance.empty()\n }\n ],\n firstIcon: 'p-paginator-first-icon',\n prev: ({ instance }) => [\n 'p-paginator-prev',\n {\n 'p-disabled': instance.isFirstPage() || instance.empty()\n }\n ],\n prevIcon: 'p-paginator-prev-icon',\n next: ({ instance }) => [\n 'p-paginator-next',\n {\n 'p-disabled': instance.isLastPage() || instance.empty()\n }\n ],\n nextIcon: 'p-paginator-next-icon',\n last: ({ instance }) => [\n 'p-paginator-last',\n {\n 'p-disabled': instance.isLastPage() || instance.empty()\n }\n ],\n lastIcon: 'p-paginator-last-icon',\n pages: 'p-paginator-pages',\n page: ({ instance, pageLink }) => [\n 'p-paginator-page',\n {\n 'p-paginator-page-selected': pageLink - 1 == instance.getPage()\n }\n ],\n current: 'p-paginator-current',\n pcRowPerPageDropdown: 'p-paginator-rpp-dropdown',\n pcJumpToPageDropdown: 'p-paginator-jtp-dropdown',\n pcJumpToPageInput: 'p-paginator-jtp-input'\n};\n\n@Injectable()\nexport class PaginatorStyle extends BaseStyle {\n name = 'paginator';\n\n theme = style;\n\n classes = classes;\n}\n\n/**\n *\n * Paginator is a generic component to display content in paged format.\n *\n * [Live Demo](https://www.primeng.org/paginator)\n *\n * @module paginatorstyle\n *\n */\n\nexport enum PaginatorClasses {\n /**\n * Class name of the paginator element\n */\n paginator = 'p-paginator',\n /**\n * Class name of the content start element\n */\n contentStart = 'p-paginator-content-start',\n /**\n * Class name of the content end element\n */\n contentEnd = 'p-paginator-content-end',\n /**\n * Class name of the first element\n */\n first = 'p-paginator-first',\n /**\n * Class name of the first icon element\n */\n firstIcon = 'p-paginator-first-icon',\n /**\n * Class name of the prev element\n */\n prev = 'p-paginator-prev',\n /**\n * Class name of the prev icon element\n */\n prevIcon = 'p-paginator-prev-icon',\n /**\n * Class name of the next element\n */\n next = 'p-paginator-next',\n /**\n * Class name of the next icon element\n */\n nextIcon = 'p-paginator-next-icon',\n /**\n * Class name of the last element\n */\n last = 'p-paginator-last',\n /**\n * Class name of the last icon element\n */\n lastIcon = 'p-paginator-last-icon',\n /**\n * Class name of the pages element\n */\n pages = 'p-paginator-pages',\n /**\n * Class name of the page element\n */\n page = 'p-paginator-page',\n /**\n * Class name of the current element\n */\n current = 'p-paginator-current',\n /**\n * Class name of the row per page dropdown element\n */\n pcRowPerPageDropdown = 'p-paginator-rpp-dropdown',\n /**\n * Class name of the jump to page dropdown element\n */\n pcJumpToPageDropdown = 'p-paginator-jtp-dropdown',\n /**\n * Class name of the jump to page input element\n */\n pcJumpToPageInput = 'p-paginator-jtp-input'\n}\n\nexport interface PaginatorStyle extends BaseStyle {}\n","import { CommonModule } from '@angular/common';\nimport {\n AfterContentInit,\n booleanAttribute,\n ChangeDetectionStrategy,\n Component,\n computed,\n ContentChild,\n ContentChildren,\n ElementRef,\n EventEmitter,\n HostBinding,\n inject,\n input,\n Input,\n NgModule,\n numberAttribute,\n OnChanges,\n OnInit,\n Output,\n QueryList,\n SimpleChanges,\n TemplateRef,\n ViewEncapsulation\n} from '@angular/core';\nimport { FormsModule } from '@angular/forms';\nimport { Aria, PrimeTemplate, SelectItem, SharedModule } from 'primeng/api';\nimport { BaseComponent } from 'primeng/basecomponent';\nimport { Select, SelectChangeEvent } from 'primeng/select';\nimport { AngleDoubleLeftIcon, AngleDoubleRightIcon, AngleLeftIcon, AngleRightIcon } from 'primeng/icons';\nimport { InputNumber } from 'primeng/inputnumber';\nimport { Ripple } from 'primeng/ripple';\nimport { Nullable } from 'primeng/ts-helpers';\nimport { PaginatorState } from './paginator.interface';\nimport { PaginatorStyle } from './style/paginatorstyle';\n\n/**\n * Paginator is a generic component to display content in paged format.\n * @group Components\n */\n@Component({\n selector: 'p-paginator',\n standalone: true,\n imports: [CommonModule, Select, InputNumber, FormsModule, Ripple, AngleDoubleLeftIcon, AngleDoubleRightIcon, AngleLeftIcon, AngleRightIcon, SharedModule],\n template: `\n <div [class]=\"cx('contentStart')\" *ngIf=\"templateLeft\" [attr.data-pc-section]=\"'start'\">\n <ng-container *ngTemplateOutlet=\"templateLeft; context: { $implicit: paginatorState }\"></ng-container>\n </div>\n <span [class]=\"cx('current')\" *ngIf=\"showCurrentPageReport\">{{ currentPageReport }}</span>\n <button *ngIf=\"showFirstLastIcon\" type=\"button\" (click)=\"changePageToFirst($event)\" pRipple [class]=\"cx('first')\" [attr.aria-label]=\"getAriaLabel('firstPageLabel')\">\n <svg data-p-icon=\"angle-double-left\" *ngIf=\"!firstPageLinkIconTemplate && !_firstPageLinkIconTemplate\" [class]=\"cx('firstIcon')\" />\n <span [class]=\"cx('firstIcon')\" *ngIf=\"firstPageLinkIconTemplate || _firstPageLinkIconTemplate\">\n <ng-template *ngTemplateOutlet=\"firstPageLinkIconTemplate || _firstPageLinkIconTemplate\"></ng-template>\n </span>\n </button>\n <button type=\"button\" [disabled]=\"isFirstPage() || empty()\" (click)=\"changePageToPrev($event)\" pRipple [class]=\"cx('prev')\" [attr.aria-label]=\"getAriaLabel('prevPageLabel')\">\n <svg data-p-icon=\"angle-left\" *ngIf=\"!previousPageLinkIconTemplate && !_previousPageLinkIconTemplate\" [class]=\"cx('prevIcon')\" />\n <span [class]=\"cx('prevIcon')\" *ngIf=\"previousPageLinkIconTemplate || _previousPageLinkIconTemplate\">\n <ng-template *ngTemplateOutlet=\"previousPageLinkIconTemplate || _previousPageLinkIconTemplate\"></ng-template>\n </span>\n </button>\n <span [class]=\"cx('pages')\" *ngIf=\"showPageLinks\">\n <button\n type=\"button\"\n *ngFor=\"let pageLink of pageLinks\"\n [class]=\"cx('page', { pageLink })\"\n [attr.aria-label]=\"getPageAriaLabel(pageLink)\"\n [attr.aria-current]=\"pageLink - 1 == getPage() ? 'page' : undefined\"\n (click)=\"onPageLinkClick($event, pageLink - 1)\"\n pRipple\n >\n {{ getLocalization(pageLink) }}\n </button>\n </span>\n <p-select\n [options]=\"pageItems\"\n [ngModel]=\"getPage()\"\n *ngIf=\"showJumpToPageDropdown\"\n [disabled]=\"empty()\"\n [attr.aria-label]=\"getAriaLabel('jumpToPageDropdownLabel')\"\n [styleClass]=\"cx('pcJumpToPageDropdown')\"\n (onChange)=\"onPageDropdownChange($event)\"\n [appendTo]=\"dropdownAppendTo || $appendTo()\"\n [scrollHeight]=\"dropdownScrollHeight\"\n >\n <ng-template pTemplate=\"selectedItem\">{{ currentPageReport }}</ng-template>\n <ng-container *ngIf=\"jumpToPageItemTemplate\">\n <ng-template let-item pTemplate=\"item\">\n <ng-container *ngTemplateOutlet=\"jumpToPageItemTemplate; context: { $implicit: item }\"></ng-container>\n </ng-template>\n </ng-container>\n <ng-template pTemplate=\"dropdownicon\" *ngIf=\"dropdownIconTemplate || _dropdownIconTemplate\">\n <ng-container *ngTemplateOutlet=\"dropdownIconTemplate || _dropdownIconTemplate\"></ng-container>\n </ng-template>\n </p-select>\n <button type=\"button\" [disabled]=\"isLastPage() || empty()\" (click)=\"changePageToNext($event)\" pRipple [class]=\"cx('next')\" [attr.aria-label]=\"getAriaLabel('nextPageLabel')\">\n <svg data-p-icon=\"angle-right\" *ngIf=\"!nextPageLinkIconTemplate && !_nextPageLinkIconTemplate\" [class]=\"cx('nextIcon')\" />\n <span [class]=\"cx('nextIcon')\" *ngIf=\"nextPageLinkIconTemplate || _nextPageLinkIconTemplate\">\n <ng-template *ngTemplateOutlet=\"nextPageLinkIconTemplate || _nextPageLinkIconTemplate\"></ng-template>\n </span>\n </button>\n <button *ngIf=\"showFirstLastIcon\" type=\"button\" [disabled]=\"isLastPage() || empty()\" (click)=\"changePageToLast($event)\" pRipple [class]=\"cx('last')\" [attr.aria-label]=\"getAriaLabel('lastPageLabel')\">\n <svg data-p-icon=\"angle-double-right\" *ngIf=\"!lastPageLinkIconTemplate && !_lastPageLinkIconTemplate\" [class]=\"cx('lastIcon')\" />\n <span [class]=\"cx('lastIcon')\" *ngIf=\"lastPageLinkIconTemplate || _lastPageLinkIconTemplate\">\n <ng-template *ngTemplateOutlet=\"lastPageLinkIconTemplate || _lastPageLinkIconTemplate\"></ng-template>\n </span>\n </button>\n <p-inputnumber *ngIf=\"showJumpToPageInput\" [ngModel]=\"currentPage()\" [class]=\"cx('pcJumpToPageInput')\" [disabled]=\"empty()\" (ngModelChange)=\"changePage($event - 1)\"></p-inputnumber>\n <p-select\n [options]=\"rowsPerPageItems\"\n [(ngModel)]=\"rows\"\n *ngIf=\"rowsPerPageOptions\"\n [styleClass]=\"cx('pcRowPerPageDropdown')\"\n [disabled]=\"empty()\"\n (onChange)=\"onRppChange($event)\"\n [appendTo]=\"dropdownAppendTo || $appendTo()\"\n [scrollHeight]=\"dropdownScrollHeight\"\n [ariaLabel]=\"getAriaLabel('rowsPerPageLabel')\"\n >\n <ng-container *ngIf=\"dropdownItemTemplate\">\n <ng-template let-item pTemplate=\"item\">\n <ng-container *ngTemplateOutlet=\"dropdownItemTemplate; context: { $implicit: item }\"></ng-container>\n </ng-template>\n </ng-container>\n <ng-template pTemplate=\"dropdownicon\" *ngIf=\"dropdownIconTemplate || _dropdownIconTemplate\">\n <ng-container *ngTemplateOutlet=\"dropdownIconTemplate || _dropdownIconTemplate\"></ng-container>\n </ng-template>\n </p-select>\n <div [class]=\"cx('contentEnd')\" *ngIf=\"templateRight\" [attr.data-pc-section]=\"'end'\">\n <ng-container *ngTemplateOutlet=\"templateRight; context: { $implicit: paginatorState }\"></ng-container>\n </div>\n `,\n changeDetection: ChangeDetectionStrategy.OnPush,\n encapsulation: ViewEncapsulation.None,\n providers: [PaginatorStyle],\n host: {\n '[attr.data-pc-name]': \"'paginator'\",\n '[attr.data-pc-section]': \"'root'\",\n '[class]': \"cn(cx('paginator'), styleClass)\"\n }\n})\nexport class Paginator extends BaseComponent implements OnInit, AfterContentInit, OnChanges {\n /**\n * Number of page links to display.\n * @group Props\n */\n @Input({ transform: numberAttribute }) pageLinkSize: number = 5;\n /**\n * Style class of the component.\n * @deprecated since v20.0.0, use `class` instead.\n * @group Props\n */\n @Input() styleClass: string | undefined;\n /**\n * Whether to show it even there is only one page.\n * @group Props\n */\n @Input({ transform: booleanAttribute }) alwaysShow: boolean = true;\n /**\n * Target element to attach the dropdown overlay, valid values are \"body\" or a local ng-template variable of another element (note: use binding with brackets for template variables, e.g. [appendTo]=\"mydiv\" for a div element having #mydiv as variable name).\n * @deprecated since v20.0.0. Use `appendTo` instead.\n * @group Props\n */\n @Input() dropdownAppendTo: HTMLElement | ElementRef | TemplateRef<any> | string | null | undefined | any;\n /**\n * Template instance to inject into the left side of the paginator.\n * @param {PaginatorState} context - Paginator state.\n * @group Props\n */\n @Input() templateLeft: TemplateRef<PaginatorState> | undefined;\n /**\n * Template instance to inject into the right side of the paginator.\n * @param {PaginatorState} context - Paginator state.\n * @group Props\n */\n @Input() templateRight: TemplateRef<PaginatorState> | undefined;\n /**\n * Dropdown height of the viewport in pixels, a scrollbar is defined if height of list exceeds this value.\n * @group Props\n */\n @Input() dropdownScrollHeight: string = '200px';\n /**\n * Template of the current page report element. Available placeholders are {currentPage},{totalPages},{rows},{first},{last} and {totalRecords}\n * @group Props\n */\n @Input() currentPageReportTemplate: string = '{currentPage} of {totalPages}';\n /**\n * Whether to display current page report.\n * @group Props\n */\n @Input({ transform: booleanAttribute }) showCurrentPageReport: boolean | undefined;\n /**\n * When enabled, icons are displayed on paginator to go first and last page.\n * @group Props\n */\n @Input({ transform: booleanAttribute }) showFirstLastIcon: boolean = true;\n /**\n * Number of total records.\n * @group Props\n */\n @Input({ transform: numberAttribute }) totalRecords: number = 0;\n /**\n * Data count to display per page.\n * @group Props\n */\n @Input({ transform: numberAttribute }) rows: number = 0;\n /**\n * Array of integer/object values to display inside rows per page dropdown. A object that have 'showAll' key can be added to it to show all data. Exp; [10,20,30,{showAll:'All'}]\n * @group Props\n */\n @Input() rowsPerPageOptions: any[] | undefined;\n /**\n * Whether to display a dropdown to navigate to any page.\n * @group Props\n */\n @Input({ transform: booleanAttribute }) showJumpToPageDropdown: boolean | undefined;\n /**\n * Whether to display a input to navigate to any page.\n * @group Props\n */\n @Input({ transform: booleanAttribute }) showJumpToPageInput: boolean | undefined;\n /**\n * Template instance to inject into the jump to page dropdown item inside in the paginator.\n * @param {Object} context - item instance.\n * @group Props\n */\n @Input() jumpToPageItemTemplate: TemplateRef<{ $implicit: any }> | undefined;\n /**\n * Whether to show page links.\n * @group Props\n */\n @Input({ transform: booleanAttribute }) showPageLinks: boolean = true;\n /**\n * Locale to be used in formatting.\n * @group Props\n */\n @Input() locale: string | undefined;\n /**\n * Template instance to inject into the rows per page dropdown item inside in the paginator.\n * @param {Object} context - item instance.\n * @group Props\n */\n @Input() dropdownItemTemplate: TemplateRef<{ $implicit: any }> | undefined;\n\n /**\n * Zero-relative number of the first row to be displayed.\n * @group Props\n */\n @Input() get first(): number {\n return this._first;\n }\n\n set first(val: number) {\n this._first = val;\n }\n /**\n * Target element to attach the overlay, valid values are \"body\" or a local ng-template variable of another element (note: use binding with brackets for template variables, e.g. [appendTo]=\"mydiv\" for a div element having #mydiv as variable name).\n * @defaultValue 'self'\n * @group Props\n */\n appendTo = input<HTMLElement | ElementRef | TemplateRef<any> | 'self' | 'body' | null | undefined | any>(undefined);\n /**\n * Callback to invoke when page changes, the event object contains information about the new state.\n * @param {PaginatorState} event - Paginator state.\n * @group Emits\n */\n @Output() onPageChange: EventEmitter<PaginatorState> = new EventEmitter<PaginatorState>();\n\n /**\n * Template for the dropdown icon.\n * @group Templates\n */\n @ContentChild('dropdownicon', { descendants: false }) dropdownIconTemplate: Nullable<TemplateRef<any>>;\n\n /**\n * Template for the first page link icon.\n * @group Templates\n */\n @ContentChild('firstpagelinkicon', { descendants: false }) firstPageLinkIconTemplate: Nullable<TemplateRef<any>>;\n\n /**\n * Template for the previous page link icon.\n * @group Templates\n */\n @ContentChild('previouspagelinkicon', { descendants: false }) previousPageLinkIconTemplate: Nullable<TemplateRef<any>>;\n\n /**\n * Template for the last page link icon.\n * @group Templates\n */\n @ContentChild('lastpagelinkicon', { descendants: false }) lastPageLinkIconTemplate: Nullable<TemplateRef<any>>;\n\n /**\n * Template for the next page link icon.\n * @group Templates\n */\n @ContentChild('nextpagelinkicon', { descendants: false }) nextPageLinkIconTemplate: Nullable<TemplateRef<any>>;\n\n @ContentChildren(PrimeTemplate) templates: Nullable<QueryList<any>>;\n\n _dropdownIconTemplate: TemplateRef<any> | undefined;\n\n _firstPageLinkIconTemplate: TemplateRef<any> | undefined;\n\n _previousPageLinkIconTemplate: TemplateRef<any> | undefined;\n\n _lastPageLinkIconTemplate: TemplateRef<any> | undefined;\n\n _nextPageLinkIconTemplate: TemplateRef<any> | undefined;\n\n pageLinks: number[] | undefined;\n\n pageItems: SelectItem[] | undefined;\n\n rowsPerPageItems: SelectItem[] | undefined;\n\n paginatorState: any;\n\n _first: number = 0;\n\n _page: number = 0;\n\n _componentStyle = inject(PaginatorStyle);\n\n $appendTo = computed(() => this.appendTo() || this.config.overlayAppendTo());\n\n @HostBinding('style.display') get display(): string {\n return this.alwaysShow || (this.pageLinks && this.pageLinks.length > 1) ? null : 'none';\n }\n\n constructor() {\n super();\n }\n\n ngOnInit() {\n super.ngOnInit();\n this.updatePaginatorState();\n }\n\n ngAfterContentInit(): void {\n (this.templates as QueryList<PrimeTemplate>).forEach((item) => {\n switch (item.getType()) {\n case 'dropdownicon':\n this._dropdownIconTemplate = item.template;\n break;\n\n case 'firstpagelinkicon':\n this._firstPageLinkIconTemplate = item.template;\n break;\n\n case 'previouspagelinkicon':\n this._previousPageLinkIconTemplate = item.template;\n break;\n\n case 'lastpagelinkicon':\n this._lastPageLinkIconTemplate = item.template;\n break;\n\n case 'nextpagelinkicon':\n this._nextPageLinkIconTemplate = item.template;\n break;\n }\n });\n }\n\n getAriaLabel(labelType: keyof Aria): string | undefined {\n return this.config.translation.aria ? this.config.translation.aria[labelType] : undefined;\n }\n\n getPageAriaLabel(value: number): string | undefined {\n return this.config.translation.aria ? this.config.translation.aria.pageLabel.replace(/{page}/g, `${value}`) : undefined;\n }\n\n getLocalization(digit: number): string {\n const numerals = [...new Intl.NumberFormat(this.locale, { useGrouping: false }).format(9876543210)].reverse();\n const index = new Map(numerals.map((d, i) => [i, d]));\n if (digit > 9) {\n const numbers = String(digit).split('');\n return numbers.map((number) => index.get(Number(number))).join('');\n } else {\n return index.get(digit);\n }\n }\n\n ngOnChanges(simpleChange: SimpleChanges): void {\n super.ngOnChanges(simpleChange);\n\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 if (simpleChange.pageLinkSize) {\n this.updatePageLinks();\n }\n }\n\n updateRowsPerPageOptions(): void {\n if (this.rowsPerPageOptions) {\n this.rowsPerPageItems = [];\n let showAllItem: SelectItem | null = null;\n\n for (let opt of this.rowsPerPageOptions) {\n if (typeof opt == 'object' && opt['showAll']) {\n showAllItem = { label: opt['showAll'], value: this.totalRecords };\n } else {\n this.rowsPerPageItems.push({ label: String(this.getLocalization(opt)), value: opt });\n }\n }\n\n if (showAllItem) {\n this.rowsPerPageItems.push(showAllItem);\n }\n }\n }\n\n isFirstPage(): boolean {\n return this.getPage() === 0;\n }\n\n isLastPage(): boolean {\n return this.getPage() === this.getPageCount() - 1;\n }\n\n getPageCount(): number {\n return Math.ceil(this.totalRecords / this.rows);\n }\n\n calculatePageLinkBoundaries(): [number, number] {\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(): void {\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): void {\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(): void {\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: Event): void {\n if (!this.isFirstPage()) {\n this.changePage(0);\n }\n\n event.preventDefault();\n }\n\n changePageToPrev(event: Event): void {\n this.changePage(this.getPage() - 1);\n event.preventDefault();\n }\n\n changePageToNext(event: Event): void {\n this.changePage(this.getPage() + 1);\n event.preventDefault();\n }\n\n changePageToLast(event: Event): void {\n if (!this.isLastPage()) {\n this.changePage(this.getPageCount() - 1);\n }\n\n event.preventDefault();\n }\n\n onPageLinkClick(event: Event, page: number): void {\n this.changePage(page);\n event.preventDefault();\n }\n\n onRppChange(event: Event): void {\n this.changePage(this.getPage());\n }\n\n onPageDropdownChange(event: SelectChangeEvent): void {\n this.changePage(event.value);\n }\n\n updatePaginatorState(): void {\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 empty(): boolean {\n return this.getPageCount() === 0;\n }\n\n currentPage(): number {\n return this.getPageCount() > 0 ? this.getPage() + 1 : 0;\n }\n\n get currentPageReport(): string {\n return this.currentPageReportTemplate\n .replace('{currentPage}', String(this.currentPage()))\n .replace('{totalPages}', String(this.getPageCount()))\n .replace('{first}', String(this.totalRecords > 0 ? this._first + 1 : 0))\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: [Paginator, SharedModule],\n exports: [Paginator, SharedModule]\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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"}