primeng
Version:
PrimeNG is a premium UI library for Angular featuring a rich set of 90+ components, a theme designer, various theme alternatives such as Material, Bootstrap, Tailwind, premium templates and professional support. In addition, it integrates with PrimeBlock,
1 lines • 44.9 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 style = 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 { NgTemplateOutlet } from '@angular/common';\nimport { booleanAttribute, ChangeDetectionStrategy, Component, computed, contentChild, effect, inject, InjectionToken, input, model, NgModule, numberAttribute, output, TemplateRef, untracked, ViewEncapsulation } from '@angular/core';\nimport { FormsModule } from '@angular/forms';\nimport { SelectItem } from 'primeng/api';\nimport { BaseComponent, PARENT_INSTANCE } from 'primeng/basecomponent';\nimport { Bind } from 'primeng/bind';\nimport { AngleDoubleLeft as AngleDoubleLeftIcon } from '@primeicons/angular/angle-double-left';\nimport { AngleDoubleRight as AngleDoubleRightIcon } from '@primeicons/angular/angle-double-right';\nimport { AngleLeft as AngleLeftIcon } from '@primeicons/angular/angle-left';\nimport { AngleRight as AngleRightIcon } from '@primeicons/angular/angle-right';\nimport { InputNumber } from 'primeng/inputnumber';\nimport { Ripple } from 'primeng/ripple';\nimport { Select, SelectChangeEvent } from 'primeng/select';\nimport type { AppendTo } from 'primeng/types/shared';\nimport { PaginatorDropdownItemTemplateContext, PaginatorPassThrough, PaginatorState, PaginatorTemplateContext } from 'primeng/types/paginator';\nimport { PaginatorStyle } from './style/paginatorstyle';\n\nconst PAGINATOR_INSTANCE = new InjectionToken<Paginator>('PAGINATOR_INSTANCE');\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: [NgTemplateOutlet, Select, InputNumber, FormsModule, Ripple, AngleDoubleLeftIcon, AngleDoubleRightIcon, AngleLeftIcon, AngleRightIcon, Bind],\n template: `\n @if (templateLeft()) {\n <div [pBind]=\"ptm('contentStart')\" [class]=\"cx('contentStart')\">\n <ng-container *ngTemplateOutlet=\"templateLeft()!; context: { $implicit: paginatorState() }\"></ng-container>\n </div>\n }\n @if (showCurrentPageReport()) {\n <span [pBind]=\"ptm('current')\" [class]=\"cx('current')\">{{ currentPageReport }}</span>\n }\n @if (showFirstLastIcon()) {\n <button [pBind]=\"ptm('first')\" type=\"button\" (click)=\"changePageToFirst($event)\" pRipple [class]=\"cx('first')\" [attr.aria-label]=\"getAriaLabel('firstPageLabel')\">\n @if (!firstPageLinkIconTemplate()) {\n <svg [pBind]=\"ptm('firstIcon')\" data-p-icon=\"angle-double-left\" [class]=\"cx('firstIcon')\" />\n } @else {\n <span [class]=\"cx('firstIcon')\">\n <ng-template *ngTemplateOutlet=\"firstPageLinkIconTemplate()!\"></ng-template>\n </span>\n }\n </button>\n }\n <button [pBind]=\"ptm('prev')\" type=\"button\" [disabled]=\"isFirstPage() || empty()\" (click)=\"changePageToPrev($event)\" pRipple [class]=\"cx('prev')\" [attr.aria-label]=\"getAriaLabel('prevPageLabel')\">\n @if (!previousPageLinkIconTemplate()) {\n <svg [pBind]=\"ptm('prevIcon')\" data-p-icon=\"angle-left\" [class]=\"cx('prevIcon')\" />\n } @else {\n <span [class]=\"cx('prevIcon')\">\n <ng-template *ngTemplateOutlet=\"previousPageLinkIconTemplate()!\"></ng-template>\n </span>\n }\n </button>\n @if (showPageLinks()) {\n <span [pBind]=\"ptm('pages')\" [class]=\"cx('pages')\">\n @for (pageLink of pageLinks(); track $index) {\n <button\n [pBind]=\"ptm('page')\"\n type=\"button\"\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 }\n </span>\n }\n @if (showJumpToPageDropdown()) {\n <p-select\n [options]=\"pageItems()\"\n [ngModel]=\"getPage()\"\n [disabled]=\"empty()\"\n [attr.aria-label]=\"getAriaLabel('jumpToPageDropdownLabel')\"\n [class]=\"cx('pcJumpToPageDropdown')\"\n (onChange)=\"onPageDropdownChange($event)\"\n [appendTo]=\"$appendTo()\"\n [scrollHeight]=\"dropdownScrollHeight()\"\n [pt]=\"ptm('pcJumpToPageDropdown')\"\n [unstyled]=\"unstyled()\"\n >\n <ng-template #selectedItem>{{ currentPageReport }}</ng-template>\n @if (jumpToPageItemTemplate()) {\n <ng-template #item let-item>\n <ng-container *ngTemplateOutlet=\"jumpToPageItemTemplate()!; context: { $implicit: item }\"></ng-container>\n </ng-template>\n }\n @if (dropdownIconTemplate()) {\n <ng-template #dropdownicon>\n <ng-container *ngTemplateOutlet=\"dropdownIconTemplate()!\"></ng-container>\n </ng-template>\n }\n </p-select>\n }\n <button [pBind]=\"ptm('next')\" type=\"button\" [disabled]=\"isLastPage() || empty()\" (click)=\"changePageToNext($event)\" pRipple [class]=\"cx('next')\" [attr.aria-label]=\"getAriaLabel('nextPageLabel')\">\n @if (!nextPageLinkIconTemplate()) {\n <svg [pBind]=\"ptm('nextIcon')\" data-p-icon=\"angle-right\" [class]=\"cx('nextIcon')\" />\n } @else {\n <span [class]=\"cx('nextIcon')\">\n <ng-template *ngTemplateOutlet=\"nextPageLinkIconTemplate()!\"></ng-template>\n </span>\n }\n </button>\n @if (showFirstLastIcon()) {\n <button [pBind]=\"ptm('last')\" type=\"button\" [disabled]=\"isLastPage() || empty()\" (click)=\"changePageToLast($event)\" pRipple [class]=\"cx('last')\" [attr.aria-label]=\"getAriaLabel('lastPageLabel')\">\n @if (!lastPageLinkIconTemplate()) {\n <svg [pBind]=\"ptm('lastIcon')\" data-p-icon=\"angle-double-right\" [class]=\"cx('lastIcon')\" />\n } @else {\n <span [class]=\"cx('lastIcon')\">\n <ng-template *ngTemplateOutlet=\"lastPageLinkIconTemplate()!\"></ng-template>\n </span>\n }\n </button>\n }\n @if (showJumpToPageInput()) {\n <p-inputnumber [pt]=\"ptm('pcJumpToPageInput')\" [ngModel]=\"currentPage()\" [class]=\"cx('pcJumpToPageInput')\" [disabled]=\"empty()\" (ngModelChange)=\"changePage($event - 1)\" [unstyled]=\"unstyled()\" />\n }\n @if (rowsPerPageOptions()) {\n <p-select\n [options]=\"rowsPerPageItems()\"\n [ngModel]=\"rows()\"\n (ngModelChange)=\"rows.set($event)\"\n [class]=\"cx('pcRowPerPageDropdown')\"\n [disabled]=\"empty()\"\n (onChange)=\"onRppChange($event)\"\n [appendTo]=\"$appendTo()\"\n [scrollHeight]=\"dropdownScrollHeight()\"\n [ariaLabel]=\"getAriaLabel('rowsPerPageLabel')\"\n [pt]=\"ptm('pcRowPerPageDropdown')\"\n [unstyled]=\"unstyled()\"\n >\n @if (dropdownItemTemplate()) {\n <ng-template #item let-item>\n <ng-container *ngTemplateOutlet=\"dropdownItemTemplate()!; context: { $implicit: item }\"></ng-container>\n </ng-template>\n }\n @if (dropdownIconTemplate()) {\n <ng-template #dropdownicon>\n <ng-container *ngTemplateOutlet=\"dropdownIconTemplate()!\"></ng-container>\n </ng-template>\n }\n </p-select>\n }\n @if (templateRight()) {\n <div [pBind]=\"ptm('contentEnd')\" [class]=\"cx('contentEnd')\">\n <ng-container *ngTemplateOutlet=\"templateRight()!; context: { $implicit: paginatorState() }\"></ng-container>\n </div>\n }\n `,\n changeDetection: ChangeDetectionStrategy.OnPush,\n encapsulation: ViewEncapsulation.None,\n providers: [PaginatorStyle, { provide: PAGINATOR_INSTANCE, useExisting: Paginator }, { provide: PARENT_INSTANCE, useExisting: Paginator }],\n host: {\n '[class]': \"cx('paginator')\",\n '[style.display]': 'hostDisplay()'\n },\n hostDirectives: [Bind]\n})\nexport class Paginator extends BaseComponent<PaginatorPassThrough> {\n componentName = 'Paginator';\n\n bindDirectiveInstance = inject(Bind, { self: true });\n\n $pcPaginator: Paginator | undefined = inject(PAGINATOR_INSTANCE, { optional: true, skipSelf: true }) ?? undefined;\n\n onAfterViewChecked() {\n this.bindDirectiveInstance.setAttrs(this.ptms(['host', 'root']));\n }\n /**\n * Number of page links to display.\n * @group Props\n */\n pageLinkSize = input(5, { transform: numberAttribute });\n /**\n * Whether to show it even there is only one page.\n * @group Props\n */\n alwaysShow = input(true, { transform: booleanAttribute });\n /**\n * Template instance to inject into the left side of the paginator.\n * @param {PaginatorTemplateContext} context - Paginator template context.\n * @see {@link PaginatorTemplateContext}\n * @group Props\n */\n templateLeft = input<TemplateRef<PaginatorTemplateContext>>();\n /**\n * Template instance to inject into the right side of the paginator.\n * @param {PaginatorTemplateContext} context - Paginator template context.\n * @see {@link PaginatorTemplateContext}\n * @group Props\n */\n templateRight = input<TemplateRef<PaginatorTemplateContext>>();\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 dropdownScrollHeight = input('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 currentPageReportTemplate = input('{currentPage} of {totalPages}');\n /**\n * Whether to display current page report.\n * @group Props\n */\n showCurrentPageReport = input(false, { transform: booleanAttribute });\n /**\n * When enabled, icons are displayed on paginator to go first and last page.\n * @group Props\n */\n showFirstLastIcon = input(true, { transform: booleanAttribute });\n /**\n * Number of total records.\n * @group Props\n */\n totalRecords = input(0, { transform: numberAttribute });\n /**\n * Data count to display per page.\n * @group Props\n */\n rows = model(0);\n /**\n * Zero-relative number of the first row to be displayed.\n * @group Props\n */\n first = model(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 rowsPerPageOptions = input<any[]>();\n /**\n * Whether to display a dropdown to navigate to any page.\n * @group Props\n */\n showJumpToPageDropdown = input(false, { transform: booleanAttribute });\n /**\n * Whether to display a input to navigate to any page.\n * @group Props\n */\n showJumpToPageInput = input(false, { transform: booleanAttribute });\n /**\n * Template instance to inject into the jump to page dropdown item inside in the paginator.\n * @param {PaginatorDropdownItemTemplateContext} context - dropdown item context.\n * @see {@link PaginatorDropdownItemTemplateContext}\n * @group Props\n */\n jumpToPageItemTemplate = input<TemplateRef<PaginatorDropdownItemTemplateContext>>();\n /**\n * Whether to show page links.\n * @group Props\n */\n showPageLinks = input(true, { transform: booleanAttribute });\n /**\n * Locale to be used in formatting.\n * @group Props\n */\n locale = input<string>();\n /**\n * Template instance to inject into the rows per page dropdown item inside in the paginator.\n * @param {PaginatorDropdownItemTemplateContext} context - dropdown item context.\n * @see {@link PaginatorDropdownItemTemplateContext}\n * @group Props\n */\n dropdownItemTemplate = input<TemplateRef<PaginatorDropdownItemTemplateContext>>();\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<AppendTo>(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 onPageChange = output<PaginatorState>();\n\n /**\n * Template for the dropdown icon.\n * @group Templates\n */\n dropdownIconTemplate = contentChild<TemplateRef<void>>('dropdownicon', { descendants: false });\n\n /**\n * Template for the first page link icon.\n * @group Templates\n */\n firstPageLinkIconTemplate = contentChild<TemplateRef<void>>('firstpagelinkicon', { descendants: false });\n\n /**\n * Template for the previous page link icon.\n * @group Templates\n */\n previousPageLinkIconTemplate = contentChild<TemplateRef<void>>('previouspagelinkicon', { descendants: false });\n\n /**\n * Template for the last page link icon.\n * @group Templates\n */\n lastPageLinkIconTemplate = contentChild<TemplateRef<void>>('lastpagelinkicon', { descendants: false });\n\n /**\n * Template for the next page link icon.\n * @group Templates\n */\n nextPageLinkIconTemplate = contentChild<TemplateRef<void>>('nextpagelinkicon', { descendants: false });\n\n _componentStyle = inject(PaginatorStyle);\n\n $appendTo = computed(() => this.appendTo() || this.config.overlayAppendTo());\n\n pageLinks = computed(() => {\n const numberOfPages = this.getPageCount();\n const visiblePages = Math.min(this.pageLinkSize(), numberOfPages);\n const page = this.getPage();\n let start = Math.max(0, Math.ceil(page - visiblePages / 2));\n const end = Math.min(numberOfPages - 1, start + visiblePages - 1);\n const delta = this.pageLinkSize() - (end - start + 1);\n start = Math.max(0, start - delta);\n\n const links: number[] = [];\n for (let i = start; i <= end; i++) {\n links.push(i + 1);\n }\n return links;\n });\n\n pageItems = computed(() => {\n if (!this.showJumpToPageDropdown()) return [];\n const items: SelectItem[] = [];\n for (let i = 0; i < this.getPageCount(); i++) {\n items.push({ label: String(i + 1), value: i });\n }\n return items;\n });\n\n rowsPerPageItems = computed(() => {\n const options = this.rowsPerPageOptions();\n if (!options) return [];\n const items: SelectItem[] = [];\n let showAllItem: SelectItem | null = null;\n for (const opt of options) {\n if (typeof opt === 'object' && opt['showAll']) {\n showAllItem = { label: opt['showAll'], value: this.totalRecords() };\n } else {\n items.push({ label: String(this.getLocalization(opt)), value: opt });\n }\n }\n if (showAllItem) items.push(showAllItem);\n return items;\n });\n\n paginatorState = computed(() => ({\n page: this.getPage(),\n pageCount: this.getPageCount(),\n rows: this.rows(),\n first: this.first(),\n totalRecords: this.totalRecords()\n }));\n\n hostDisplay = computed(() => (this.alwaysShow() || this.pageLinks().length > 1 ? null : 'none'));\n\n constructor() {\n super();\n effect(() => {\n const totalRecords = this.totalRecords();\n untracked(() => {\n const page = this.getPage();\n if (page > 0 && totalRecords && this.first() >= totalRecords) {\n Promise.resolve(null).then(() => this.changePage(page - 1));\n }\n });\n });\n }\n\n getAriaLabel(labelType: string): string | undefined {\n return this.config.translation.aria ? (this.config.translation.aria as any)[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) as string;\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());\n }\n\n getPage() {\n return Math.floor(this.first() / this.rows());\n }\n\n currentPage() {\n return this.getPageCount() > 0 ? this.getPage() + 1 : 0;\n }\n\n get currentPageReport() {\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 changePage(p: number) {\n const pc = this.getPageCount();\n if (p >= 0 && p < pc) {\n this.first.set(this.rows() * p);\n this.onPageChange.emit({\n page: p,\n first: this.first(),\n rows: this.rows(),\n pageCount: pc\n });\n }\n }\n\n changePageToFirst(event: Event) {\n if (!this.isFirstPage()) {\n this.changePage(0);\n }\n event.preventDefault();\n }\n\n changePageToPrev(event: Event) {\n this.changePage(this.getPage() - 1);\n event.preventDefault();\n }\n\n changePageToNext(event: Event) {\n this.changePage(this.getPage() + 1);\n event.preventDefault();\n }\n\n changePageToLast(event: Event) {\n if (!this.isLastPage()) {\n this.changePage(this.getPageCount() - 1);\n }\n event.preventDefault();\n }\n\n onPageLinkClick(event: Event, page: number) {\n this.changePage(page);\n event.preventDefault();\n }\n\n onRppChange(_event: Event) {\n this.changePage(this.getPage());\n }\n\n onPageDropdownChange(event: SelectChangeEvent) {\n this.changePage(event.value);\n }\n\n empty() {\n return this.getPageCount() === 0;\n }\n}\n\n@NgModule({\n imports: [Paginator],\n exports: [Paginator]\n})\nexport class PaginatorModule {}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public_api';\n"],"names":["AngleDoubleLeftIcon","AngleDoubleRightIcon","AngleLeftIcon","AngleRightIcon"],"mappings":"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"}