UNPKG

@ng-bootstrap/ng-bootstrap

Version:
1 lines 28.6 kB
{"version":3,"file":"ng-bootstrap-ng-bootstrap-pagination.mjs","sources":["../../../src/pagination/pagination-config.ts","../../../src/pagination/pagination.ts","../../../src/pagination/pagination.module.ts","../../../src/pagination/ng-bootstrap-ng-bootstrap-pagination.ts"],"sourcesContent":["import { Injectable } from '@angular/core';\n\n/**\n * A configuration service for the [`NgbPagination`](#/components/pagination/api#NgbPagination) component.\n *\n * You can inject this service, typically in your root component, and customize the values of its properties in\n * order to provide default values for all the paginations used in the application.\n */\n@Injectable({ providedIn: 'root' })\nexport class NgbPaginationConfig {\n\tdisabled = false;\n\tboundaryLinks = false;\n\tdirectionLinks = true;\n\tellipses = true;\n\tmaxSize = 0;\n\tpageSize = 10;\n\trotate = false;\n\tsize: 'sm' | 'lg' | string | null;\n}\n","import {\n\tChangeDetectionStrategy,\n\tComponent,\n\tContentChild,\n\tDirective,\n\tEventEmitter,\n\tinject,\n\tInput,\n\tOnChanges,\n\tOutput,\n\tSimpleChanges,\n\tTemplateRef,\n} from '@angular/core';\nimport { getValueInRange, isNumber } from './_ngb-ngbootstrap-utilities.mjs';\nimport { NgbPaginationConfig } from './pagination-config';\nimport { NgTemplateOutlet } from '@angular/common';\n\n/**\n * A context for the\n * * `NgbPaginationFirst`\n * * `NgbPaginationPrevious`\n * * `NgbPaginationNext`\n * * `NgbPaginationLast`\n * * `NgbPaginationEllipsis`\n * * `NgbPaginationPages`\n *\n * link templates in case you want to override one.\n *\n * @since 4.1.0\n */\nexport interface NgbPaginationLinkContext {\n\t/**\n\t * Page number displayed by the current link.\n\t */\n\tcurrentPage: number;\n\n\t/**\n\t * If `true`, the current link is disabled.\n\t */\n\tdisabled: boolean;\n}\n\n/**\n * A context for the `NgbPaginationNumber` link template in case you want to override one.\n *\n * Extends `NgbPaginationLinkContext`.\n *\n * @since 4.1.0\n */\nexport interface NgbPaginationNumberContext extends NgbPaginationLinkContext {\n\t/**\n\t * The page number, displayed by the current page link.\n\t */\n\t$implicit: number;\n}\n\n/**\n * A context for the `NgbPaginationPages` pages template in case you want to override\n * the way all pages are displayed.\n *\n * @since 9.1.0\n */\nexport interface NgbPaginationPagesContext {\n\t/**\n\t * The currently selected page number.\n\t */\n\t$implicit: number;\n\n\t/**\n\t * If `true`, pagination is disabled.\n\t */\n\tdisabled: boolean;\n\n\t/**\n\t * Pages numbers that should be rendered starting with 1.\n\t */\n\tpages: number[];\n}\n\n/**\n * A directive to match the 'ellipsis' link template\n *\n * @since 4.1.0\n */\n@Directive({ selector: 'ng-template[ngbPaginationEllipsis]' })\nexport class NgbPaginationEllipsis {\n\ttemplateRef = inject(TemplateRef<NgbPaginationLinkContext>);\n}\n\n/**\n * A directive to match the 'first' link template\n *\n * @since 4.1.0\n */\n@Directive({ selector: 'ng-template[ngbPaginationFirst]' })\nexport class NgbPaginationFirst {\n\ttemplateRef = inject(TemplateRef<NgbPaginationLinkContext>);\n}\n\n/**\n * A directive to match the 'last' link template\n *\n * @since 4.1.0\n */\n@Directive({ selector: 'ng-template[ngbPaginationLast]' })\nexport class NgbPaginationLast {\n\ttemplateRef = inject(TemplateRef<NgbPaginationLinkContext>);\n}\n\n/**\n * A directive to match the 'next' link template\n *\n * @since 4.1.0\n */\n@Directive({ selector: 'ng-template[ngbPaginationNext]' })\nexport class NgbPaginationNext {\n\ttemplateRef = inject(TemplateRef<NgbPaginationLinkContext>);\n}\n\n/**\n * A directive to match the page 'number' link template\n *\n * @since 4.1.0\n */\n@Directive({ selector: 'ng-template[ngbPaginationNumber]' })\nexport class NgbPaginationNumber {\n\ttemplateRef = inject(TemplateRef<NgbPaginationNumberContext>);\n}\n\n/**\n * A directive to match the 'previous' link template\n *\n * @since 4.1.0\n */\n@Directive({ selector: 'ng-template[ngbPaginationPrevious]' })\nexport class NgbPaginationPrevious {\n\ttemplateRef = inject(TemplateRef<NgbPaginationLinkContext>);\n}\n\n/**\n * A directive to match the 'pages' whole content\n *\n * @since 9.1.0\n */\n@Directive({ selector: 'ng-template[ngbPaginationPages]' })\nexport class NgbPaginationPages {\n\ttemplateRef = inject(TemplateRef<NgbPaginationPagesContext>);\n}\n\n/**\n * A component that displays page numbers and allows to customize them in several ways.\n */\n@Component({\n\tselector: 'ngb-pagination',\n\timports: [NgTemplateOutlet],\n\tchangeDetection: ChangeDetectionStrategy.OnPush,\n\thost: {\n\t\trole: 'navigation',\n\t},\n\ttemplate: `\n\t\t<ng-template #first><span aria-hidden=\"true\" i18n=\"@@ngb.pagination.first\">&laquo;&laquo;</span></ng-template>\n\t\t<ng-template #previous><span aria-hidden=\"true\" i18n=\"@@ngb.pagination.previous\">&laquo;</span></ng-template>\n\t\t<ng-template #next><span aria-hidden=\"true\" i18n=\"@@ngb.pagination.next\">&raquo;</span></ng-template>\n\t\t<ng-template #last><span aria-hidden=\"true\" i18n=\"@@ngb.pagination.last\">&raquo;&raquo;</span></ng-template>\n\t\t<ng-template #ellipsis>...</ng-template>\n\t\t<ng-template #defaultNumber let-page let-currentPage=\"currentPage\">{{ page }}</ng-template>\n\t\t<ng-template #defaultPages let-page let-pages=\"pages\" let-disabled=\"disabled\">\n\t\t\t@for (pageNumber of pages; track $index) {\n\t\t\t\t<li\n\t\t\t\t\tclass=\"page-item\"\n\t\t\t\t\t[class.active]=\"pageNumber === page\"\n\t\t\t\t\t[class.disabled]=\"isEllipsis(pageNumber) || disabled\"\n\t\t\t\t>\n\t\t\t\t\t@if (isEllipsis(pageNumber)) {\n\t\t\t\t\t\t<a class=\"page-link\" tabindex=\"-1\" aria-disabled=\"true\">\n\t\t\t\t\t\t\t<ng-template\n\t\t\t\t\t\t\t\t[ngTemplateOutlet]=\"tplEllipsis?.templateRef || ellipsis\"\n\t\t\t\t\t\t\t\t[ngTemplateOutletContext]=\"{ disabled: true, currentPage: page }\"\n\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t</a>\n\t\t\t\t\t} @else {\n\t\t\t\t\t\t<a\n\t\t\t\t\t\t\tclass=\"page-link\"\n\t\t\t\t\t\t\thref\n\t\t\t\t\t\t\t(click)=\"selectPage(pageNumber); $event.preventDefault()\"\n\t\t\t\t\t\t\t[attr.tabindex]=\"disabled ? '-1' : null\"\n\t\t\t\t\t\t\t[attr.aria-disabled]=\"disabled ? 'true' : null\"\n\t\t\t\t\t\t\t[attr.aria-current]=\"pageNumber === page ? 'page' : null\"\n\t\t\t\t\t\t>\n\t\t\t\t\t\t\t<ng-template\n\t\t\t\t\t\t\t\t[ngTemplateOutlet]=\"tplNumber?.templateRef || defaultNumber\"\n\t\t\t\t\t\t\t\t[ngTemplateOutletContext]=\"{ disabled: disabled, $implicit: pageNumber, currentPage: page }\"\n\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t</a>\n\t\t\t\t\t}\n\t\t\t\t</li>\n\t\t\t}\n\t\t</ng-template>\n\t\t<ul [class]=\"'pagination' + (size ? ' pagination-' + size : '')\">\n\t\t\t@if (boundaryLinks) {\n\t\t\t\t<li class=\"page-item\" [class.disabled]=\"previousDisabled()\">\n\t\t\t\t\t<a\n\t\t\t\t\t\taria-label=\"First\"\n\t\t\t\t\t\ti18n-aria-label=\"@@ngb.pagination.first-aria\"\n\t\t\t\t\t\tclass=\"page-link\"\n\t\t\t\t\t\thref\n\t\t\t\t\t\t(click)=\"selectPage(1); $event.preventDefault()\"\n\t\t\t\t\t\t[attr.tabindex]=\"previousDisabled() ? '-1' : null\"\n\t\t\t\t\t\t[attr.aria-disabled]=\"previousDisabled() ? 'true' : null\"\n\t\t\t\t\t>\n\t\t\t\t\t\t<ng-template\n\t\t\t\t\t\t\t[ngTemplateOutlet]=\"tplFirst?.templateRef || first\"\n\t\t\t\t\t\t\t[ngTemplateOutletContext]=\"{ disabled: previousDisabled(), currentPage: page }\"\n\t\t\t\t\t\t/>\n\t\t\t\t\t</a>\n\t\t\t\t</li>\n\t\t\t}\n\t\t\t@if (directionLinks) {\n\t\t\t\t<li class=\"page-item\" [class.disabled]=\"previousDisabled()\">\n\t\t\t\t\t<a\n\t\t\t\t\t\taria-label=\"Previous\"\n\t\t\t\t\t\ti18n-aria-label=\"@@ngb.pagination.previous-aria\"\n\t\t\t\t\t\tclass=\"page-link\"\n\t\t\t\t\t\thref\n\t\t\t\t\t\t(click)=\"selectPage(page - 1); $event.preventDefault()\"\n\t\t\t\t\t\t[attr.tabindex]=\"previousDisabled() ? '-1' : null\"\n\t\t\t\t\t\t[attr.aria-disabled]=\"previousDisabled() ? 'true' : null\"\n\t\t\t\t\t>\n\t\t\t\t\t\t<ng-template\n\t\t\t\t\t\t\t[ngTemplateOutlet]=\"tplPrevious?.templateRef || previous\"\n\t\t\t\t\t\t\t[ngTemplateOutletContext]=\"{ disabled: previousDisabled() }\"\n\t\t\t\t\t\t/>\n\t\t\t\t\t</a>\n\t\t\t\t</li>\n\t\t\t}\n\t\t\t<ng-template\n\t\t\t\t[ngTemplateOutlet]=\"tplPages?.templateRef || defaultPages\"\n\t\t\t\t[ngTemplateOutletContext]=\"{ $implicit: page, pages: pages, disabled: disabled }\"\n\t\t\t/>\n\t\t\t@if (directionLinks) {\n\t\t\t\t<li class=\"page-item\" [class.disabled]=\"nextDisabled()\">\n\t\t\t\t\t<a\n\t\t\t\t\t\taria-label=\"Next\"\n\t\t\t\t\t\ti18n-aria-label=\"@@ngb.pagination.next-aria\"\n\t\t\t\t\t\tclass=\"page-link\"\n\t\t\t\t\t\thref\n\t\t\t\t\t\t(click)=\"selectPage(page + 1); $event.preventDefault()\"\n\t\t\t\t\t\t[attr.tabindex]=\"nextDisabled() ? '-1' : null\"\n\t\t\t\t\t\t[attr.aria-disabled]=\"nextDisabled() ? 'true' : null\"\n\t\t\t\t\t>\n\t\t\t\t\t\t<ng-template\n\t\t\t\t\t\t\t[ngTemplateOutlet]=\"tplNext?.templateRef || next\"\n\t\t\t\t\t\t\t[ngTemplateOutletContext]=\"{ disabled: nextDisabled(), currentPage: page }\"\n\t\t\t\t\t\t/>\n\t\t\t\t\t</a>\n\t\t\t\t</li>\n\t\t\t}\n\t\t\t@if (boundaryLinks) {\n\t\t\t\t<li class=\"page-item\" [class.disabled]=\"nextDisabled()\">\n\t\t\t\t\t<a\n\t\t\t\t\t\taria-label=\"Last\"\n\t\t\t\t\t\ti18n-aria-label=\"@@ngb.pagination.last-aria\"\n\t\t\t\t\t\tclass=\"page-link\"\n\t\t\t\t\t\thref\n\t\t\t\t\t\t(click)=\"selectPage(pageCount); $event.preventDefault()\"\n\t\t\t\t\t\t[attr.tabindex]=\"nextDisabled() ? '-1' : null\"\n\t\t\t\t\t\t[attr.aria-disabled]=\"nextDisabled() ? 'true' : null\"\n\t\t\t\t\t>\n\t\t\t\t\t\t<ng-template\n\t\t\t\t\t\t\t[ngTemplateOutlet]=\"tplLast?.templateRef || last\"\n\t\t\t\t\t\t\t[ngTemplateOutletContext]=\"{ disabled: nextDisabled(), currentPage: page }\"\n\t\t\t\t\t\t/>\n\t\t\t\t\t</a>\n\t\t\t\t</li>\n\t\t\t}\n\t\t</ul>\n\t`,\n})\nexport class NgbPagination implements OnChanges {\n\tprivate _config = inject(NgbPaginationConfig);\n\n\tpageCount = 0;\n\tpages: number[] = [];\n\n\t@ContentChild(NgbPaginationEllipsis, { static: false }) tplEllipsis?: NgbPaginationEllipsis;\n\t@ContentChild(NgbPaginationFirst, { static: false }) tplFirst?: NgbPaginationFirst;\n\t@ContentChild(NgbPaginationLast, { static: false }) tplLast?: NgbPaginationLast;\n\t@ContentChild(NgbPaginationNext, { static: false }) tplNext?: NgbPaginationNext;\n\t@ContentChild(NgbPaginationNumber, { static: false }) tplNumber?: NgbPaginationNumber;\n\t@ContentChild(NgbPaginationPrevious, { static: false }) tplPrevious?: NgbPaginationPrevious;\n\t@ContentChild(NgbPaginationPages, { static: false }) tplPages?: NgbPaginationPages;\n\n\t/**\n\t * If `true`, pagination links will be disabled.\n\t */\n\t@Input() disabled = this._config.disabled;\n\n\t/**\n\t * If `true`, the \"First\" and \"Last\" page links are shown.\n\t */\n\t@Input() boundaryLinks = this._config.boundaryLinks;\n\n\t/**\n\t * If `true`, the \"Next\" and \"Previous\" page links are shown.\n\t */\n\t@Input() directionLinks = this._config.directionLinks;\n\n\t/**\n\t * If `true`, the ellipsis symbols and first/last page numbers will be shown when `maxSize` > number of pages.\n\t */\n\t@Input() ellipses = this._config.ellipses;\n\n\t/**\n\t * Whether to rotate pages when `maxSize` > number of pages.\n\t *\n\t * The current page always stays in the middle if `true`.\n\t */\n\t@Input() rotate = this._config.rotate;\n\n\t/**\n\t * The number of items in your paginated collection.\n\t *\n\t * Note, that this is not the number of pages. Page numbers are calculated dynamically based on\n\t * `collectionSize` and `pageSize`. Ex. if you have 100 items in your collection and displaying 20 items per page,\n\t * you'll end up with 5 pages.\n\t */\n\t@Input({ required: true }) collectionSize: number;\n\n\t/**\n\t * The maximum number of pages to display.\n\t */\n\t@Input() maxSize = this._config.maxSize;\n\n\t/**\n\t * The current page.\n\t *\n\t * Page numbers start with `1`.\n\t */\n\t@Input() page = 1;\n\n\t/**\n\t * The number of items per page.\n\t */\n\t@Input() pageSize = this._config.pageSize;\n\n\t/**\n\t * An event fired when the page is changed. Will fire only if collection size is set and all values are valid.\n\t *\n\t * Event payload is the number of the newly selected page.\n\t *\n\t * Page numbers start with `1`.\n\t */\n\t@Output() pageChange = new EventEmitter<number>(true);\n\n\t/**\n\t * The pagination display size.\n\t *\n\t * Bootstrap currently supports small and large sizes.\n\t *\n\t * If the passed value is a string (ex. 'custom'), it will just add the `pagination-custom` css class\n\t */\n\t@Input() size = this._config.size;\n\n\thasPrevious(): boolean {\n\t\treturn this.page > 1;\n\t}\n\n\thasNext(): boolean {\n\t\treturn this.page < this.pageCount;\n\t}\n\n\tnextDisabled(): boolean {\n\t\treturn !this.hasNext() || this.disabled;\n\t}\n\n\tpreviousDisabled(): boolean {\n\t\treturn !this.hasPrevious() || this.disabled;\n\t}\n\n\tselectPage(pageNumber: number): void {\n\t\tthis._updatePages(pageNumber);\n\t}\n\n\tngOnChanges(changes: SimpleChanges): void {\n\t\tthis._updatePages(this.page);\n\t}\n\n\tisEllipsis(pageNumber): boolean {\n\t\treturn pageNumber === -1;\n\t}\n\n\t/**\n\t * Appends ellipses and first/last page number to the displayed pages\n\t */\n\tprivate _applyEllipses(start: number, end: number) {\n\t\tif (this.ellipses) {\n\t\t\tif (start > 0) {\n\t\t\t\t// The first page will always be included. If the displayed range\n\t\t\t\t// starts after the third page, then add ellipsis. But if the range\n\t\t\t\t// starts on the third page, then add the second page instead of\n\t\t\t\t// an ellipsis, because the ellipsis would only hide a single page.\n\t\t\t\tif (start > 2) {\n\t\t\t\t\tthis.pages.unshift(-1);\n\t\t\t\t} else if (start === 2) {\n\t\t\t\t\tthis.pages.unshift(2);\n\t\t\t\t}\n\t\t\t\tthis.pages.unshift(1);\n\t\t\t}\n\t\t\tif (end < this.pageCount) {\n\t\t\t\t// The last page will always be included. If the displayed range\n\t\t\t\t// ends before the third-last page, then add ellipsis. But if the range\n\t\t\t\t// ends on third-last page, then add the second-last page instead of\n\t\t\t\t// an ellipsis, because the ellipsis would only hide a single page.\n\t\t\t\tif (end < this.pageCount - 2) {\n\t\t\t\t\tthis.pages.push(-1);\n\t\t\t\t} else if (end === this.pageCount - 2) {\n\t\t\t\t\tthis.pages.push(this.pageCount - 1);\n\t\t\t\t}\n\t\t\t\tthis.pages.push(this.pageCount);\n\t\t\t}\n\t\t}\n\t}\n\n\t/**\n\t * Rotates page numbers based on maxSize items visible.\n\t * Currently selected page stays in the middle:\n\t *\n\t * Ex. for selected page = 6:\n\t * [5,*6*,7] for maxSize = 3\n\t * [4,5,*6*,7] for maxSize = 4\n\t */\n\tprivate _applyRotation(): [number, number] {\n\t\tlet start = 0;\n\t\tlet end = this.pageCount;\n\t\tlet leftOffset = Math.floor(this.maxSize / 2);\n\t\tlet rightOffset = this.maxSize % 2 === 0 ? leftOffset - 1 : leftOffset;\n\n\t\tif (this.page <= leftOffset) {\n\t\t\t// very beginning, no rotation -> [0..maxSize]\n\t\t\tend = this.maxSize;\n\t\t} else if (this.pageCount - this.page < leftOffset) {\n\t\t\t// very end, no rotation -> [len-maxSize..len]\n\t\t\tstart = this.pageCount - this.maxSize;\n\t\t} else {\n\t\t\t// rotate\n\t\t\tstart = this.page - leftOffset - 1;\n\t\t\tend = this.page + rightOffset;\n\t\t}\n\n\t\treturn [start, end];\n\t}\n\n\t/**\n\t * Paginates page numbers based on maxSize items per page.\n\t */\n\tprivate _applyPagination(): [number, number] {\n\t\tlet page = Math.ceil(this.page / this.maxSize) - 1;\n\t\tlet start = page * this.maxSize;\n\t\tlet end = start + this.maxSize;\n\n\t\treturn [start, end];\n\t}\n\n\tprivate _setPageInRange(newPageNo) {\n\t\tconst prevPageNo = this.page;\n\t\tthis.page = getValueInRange(newPageNo, this.pageCount, 1);\n\n\t\tif (this.page !== prevPageNo && isNumber(this.collectionSize)) {\n\t\t\tthis.pageChange.emit(this.page);\n\t\t}\n\t}\n\n\tprivate _updatePages(newPage: number) {\n\t\tthis.pageCount = Math.ceil(this.collectionSize / this.pageSize);\n\n\t\tif (!isNumber(this.pageCount)) {\n\t\t\tthis.pageCount = 0;\n\t\t}\n\n\t\t// fill-in model needed to render pages\n\t\tthis.pages.length = 0;\n\t\tfor (let i = 1; i <= this.pageCount; i++) {\n\t\t\tthis.pages.push(i);\n\t\t}\n\n\t\t// set page within 1..max range\n\t\tthis._setPageInRange(newPage);\n\n\t\t// apply maxSize if necessary\n\t\tif (this.maxSize > 0 && this.pageCount > this.maxSize) {\n\t\t\tlet start = 0;\n\t\t\tlet end = this.pageCount;\n\n\t\t\t// either paginating or rotating page numbers\n\t\t\tif (this.rotate) {\n\t\t\t\t[start, end] = this._applyRotation();\n\t\t\t} else {\n\t\t\t\t[start, end] = this._applyPagination();\n\t\t\t}\n\n\t\t\tthis.pages = this.pages.slice(start, end);\n\n\t\t\t// adding ellipses\n\t\t\tthis._applyEllipses(start, end);\n\t\t}\n\t}\n}\n","import { NgModule } from '@angular/core';\n\nimport {\n\tNgbPagination,\n\tNgbPaginationEllipsis,\n\tNgbPaginationFirst,\n\tNgbPaginationLast,\n\tNgbPaginationNext,\n\tNgbPaginationNumber,\n\tNgbPaginationPrevious,\n\tNgbPaginationPages,\n} from './pagination';\n\nexport {\n\tNgbPagination,\n\tNgbPaginationEllipsis,\n\tNgbPaginationFirst,\n\tNgbPaginationLast,\n\tNgbPaginationNext,\n\tNgbPaginationNumber,\n\tNgbPaginationPrevious,\n\tNgbPaginationPages,\n} from './pagination';\nexport { NgbPaginationConfig } from './pagination-config';\n\nconst NGB_PAGINATION_DIRECTIVES = [\n\tNgbPagination,\n\tNgbPaginationEllipsis,\n\tNgbPaginationFirst,\n\tNgbPaginationLast,\n\tNgbPaginationNext,\n\tNgbPaginationNumber,\n\tNgbPaginationPrevious,\n\tNgbPaginationPages,\n];\n\n@NgModule({\n\timports: NGB_PAGINATION_DIRECTIVES,\n\texports: NGB_PAGINATION_DIRECTIVES,\n})\nexport class NgbPaginationModule {}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public-api';\n"],"names":[],"mappings":"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"}