UNPKG

@ng-bootstrap/ng-bootstrap

Version:
666 lines (660 loc) 27.9 kB
import * as i0 from '@angular/core'; import { Injectable, inject, TemplateRef, Directive, EventEmitter, Input, Output, ContentChild, ChangeDetectionStrategy, Component, NgModule } from '@angular/core'; import { getValueInRange, isNumber } from './_ngb-ngbootstrap-utilities.mjs'; import { NgTemplateOutlet } from '@angular/common'; /** * A configuration service for the [`NgbPagination`](#/components/pagination/api#NgbPagination) component. * * You can inject this service, typically in your root component, and customize the values of its properties in * order to provide default values for all the paginations used in the application. */ class NgbPaginationConfig { constructor() { this.disabled = false; this.boundaryLinks = false; this.directionLinks = true; this.ellipses = true; this.maxSize = 0; this.pageSize = 10; this.rotate = false; } static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.0.4", ngImport: i0, type: NgbPaginationConfig, deps: [], target: i0.ɵɵFactoryTarget.Injectable }); } static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "21.0.4", ngImport: i0, type: NgbPaginationConfig, providedIn: 'root' }); } } i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.0.4", ngImport: i0, type: NgbPaginationConfig, decorators: [{ type: Injectable, args: [{ providedIn: 'root' }] }] }); /** * A directive to match the 'ellipsis' link template * * @since 4.1.0 */ class NgbPaginationEllipsis { constructor() { this.templateRef = inject((TemplateRef)); } static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.0.4", ngImport: i0, type: NgbPaginationEllipsis, deps: [], target: i0.ɵɵFactoryTarget.Directive }); } static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "21.0.4", type: NgbPaginationEllipsis, isStandalone: true, selector: "ng-template[ngbPaginationEllipsis]", ngImport: i0 }); } } i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.0.4", ngImport: i0, type: NgbPaginationEllipsis, decorators: [{ type: Directive, args: [{ selector: 'ng-template[ngbPaginationEllipsis]' }] }] }); /** * A directive to match the 'first' link template * * @since 4.1.0 */ class NgbPaginationFirst { constructor() { this.templateRef = inject((TemplateRef)); } static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.0.4", ngImport: i0, type: NgbPaginationFirst, deps: [], target: i0.ɵɵFactoryTarget.Directive }); } static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "21.0.4", type: NgbPaginationFirst, isStandalone: true, selector: "ng-template[ngbPaginationFirst]", ngImport: i0 }); } } i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.0.4", ngImport: i0, type: NgbPaginationFirst, decorators: [{ type: Directive, args: [{ selector: 'ng-template[ngbPaginationFirst]' }] }] }); /** * A directive to match the 'last' link template * * @since 4.1.0 */ class NgbPaginationLast { constructor() { this.templateRef = inject((TemplateRef)); } static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.0.4", ngImport: i0, type: NgbPaginationLast, deps: [], target: i0.ɵɵFactoryTarget.Directive }); } static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "21.0.4", type: NgbPaginationLast, isStandalone: true, selector: "ng-template[ngbPaginationLast]", ngImport: i0 }); } } i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.0.4", ngImport: i0, type: NgbPaginationLast, decorators: [{ type: Directive, args: [{ selector: 'ng-template[ngbPaginationLast]' }] }] }); /** * A directive to match the 'next' link template * * @since 4.1.0 */ class NgbPaginationNext { constructor() { this.templateRef = inject((TemplateRef)); } static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.0.4", ngImport: i0, type: NgbPaginationNext, deps: [], target: i0.ɵɵFactoryTarget.Directive }); } static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "21.0.4", type: NgbPaginationNext, isStandalone: true, selector: "ng-template[ngbPaginationNext]", ngImport: i0 }); } } i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.0.4", ngImport: i0, type: NgbPaginationNext, decorators: [{ type: Directive, args: [{ selector: 'ng-template[ngbPaginationNext]' }] }] }); /** * A directive to match the page 'number' link template * * @since 4.1.0 */ class NgbPaginationNumber { constructor() { this.templateRef = inject((TemplateRef)); } static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.0.4", ngImport: i0, type: NgbPaginationNumber, deps: [], target: i0.ɵɵFactoryTarget.Directive }); } static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "21.0.4", type: NgbPaginationNumber, isStandalone: true, selector: "ng-template[ngbPaginationNumber]", ngImport: i0 }); } } i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.0.4", ngImport: i0, type: NgbPaginationNumber, decorators: [{ type: Directive, args: [{ selector: 'ng-template[ngbPaginationNumber]' }] }] }); /** * A directive to match the 'previous' link template * * @since 4.1.0 */ class NgbPaginationPrevious { constructor() { this.templateRef = inject((TemplateRef)); } static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.0.4", ngImport: i0, type: NgbPaginationPrevious, deps: [], target: i0.ɵɵFactoryTarget.Directive }); } static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "21.0.4", type: NgbPaginationPrevious, isStandalone: true, selector: "ng-template[ngbPaginationPrevious]", ngImport: i0 }); } } i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.0.4", ngImport: i0, type: NgbPaginationPrevious, decorators: [{ type: Directive, args: [{ selector: 'ng-template[ngbPaginationPrevious]' }] }] }); /** * A directive to match the 'pages' whole content * * @since 9.1.0 */ class NgbPaginationPages { constructor() { this.templateRef = inject((TemplateRef)); } static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.0.4", ngImport: i0, type: NgbPaginationPages, deps: [], target: i0.ɵɵFactoryTarget.Directive }); } static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "21.0.4", type: NgbPaginationPages, isStandalone: true, selector: "ng-template[ngbPaginationPages]", ngImport: i0 }); } } i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.0.4", ngImport: i0, type: NgbPaginationPages, decorators: [{ type: Directive, args: [{ selector: 'ng-template[ngbPaginationPages]' }] }] }); /** * A component that displays page numbers and allows to customize them in several ways. */ class NgbPagination { constructor() { this._config = inject(NgbPaginationConfig); this.pageCount = 0; this.pages = []; /** * If `true`, pagination links will be disabled. */ this.disabled = this._config.disabled; /** * If `true`, the "First" and "Last" page links are shown. */ this.boundaryLinks = this._config.boundaryLinks; /** * If `true`, the "Next" and "Previous" page links are shown. */ this.directionLinks = this._config.directionLinks; /** * If `true`, the ellipsis symbols and first/last page numbers will be shown when `maxSize` > number of pages. */ this.ellipses = this._config.ellipses; /** * Whether to rotate pages when `maxSize` > number of pages. * * The current page always stays in the middle if `true`. */ this.rotate = this._config.rotate; /** * The maximum number of pages to display. */ this.maxSize = this._config.maxSize; /** * The current page. * * Page numbers start with `1`. */ this.page = 1; /** * The number of items per page. */ this.pageSize = this._config.pageSize; /** * An event fired when the page is changed. Will fire only if collection size is set and all values are valid. * * Event payload is the number of the newly selected page. * * Page numbers start with `1`. */ this.pageChange = new EventEmitter(true); /** * The pagination display size. * * Bootstrap currently supports small and large sizes. * * If the passed value is a string (ex. 'custom'), it will just add the `pagination-custom` css class */ this.size = this._config.size; } hasPrevious() { return this.page > 1; } hasNext() { return this.page < this.pageCount; } nextDisabled() { return !this.hasNext() || this.disabled; } previousDisabled() { return !this.hasPrevious() || this.disabled; } selectPage(pageNumber) { this._updatePages(pageNumber); } ngOnChanges(changes) { this._updatePages(this.page); } isEllipsis(pageNumber) { return pageNumber === -1; } /** * Appends ellipses and first/last page number to the displayed pages */ _applyEllipses(start, end) { if (this.ellipses) { if (start > 0) { // The first page will always be included. If the displayed range // starts after the third page, then add ellipsis. But if the range // starts on the third page, then add the second page instead of // an ellipsis, because the ellipsis would only hide a single page. if (start > 2) { this.pages.unshift(-1); } else if (start === 2) { this.pages.unshift(2); } this.pages.unshift(1); } if (end < this.pageCount) { // The last page will always be included. If the displayed range // ends before the third-last page, then add ellipsis. But if the range // ends on third-last page, then add the second-last page instead of // an ellipsis, because the ellipsis would only hide a single page. if (end < this.pageCount - 2) { this.pages.push(-1); } else if (end === this.pageCount - 2) { this.pages.push(this.pageCount - 1); } this.pages.push(this.pageCount); } } } /** * Rotates page numbers based on maxSize items visible. * Currently selected page stays in the middle: * * Ex. for selected page = 6: * [5,*6*,7] for maxSize = 3 * [4,5,*6*,7] for maxSize = 4 */ _applyRotation() { let start = 0; let end = this.pageCount; let leftOffset = Math.floor(this.maxSize / 2); let rightOffset = this.maxSize % 2 === 0 ? leftOffset - 1 : leftOffset; if (this.page <= leftOffset) { // very beginning, no rotation -> [0..maxSize] end = this.maxSize; } else if (this.pageCount - this.page < leftOffset) { // very end, no rotation -> [len-maxSize..len] start = this.pageCount - this.maxSize; } else { // rotate start = this.page - leftOffset - 1; end = this.page + rightOffset; } return [start, end]; } /** * Paginates page numbers based on maxSize items per page. */ _applyPagination() { let page = Math.ceil(this.page / this.maxSize) - 1; let start = page * this.maxSize; let end = start + this.maxSize; return [start, end]; } _setPageInRange(newPageNo) { const prevPageNo = this.page; this.page = getValueInRange(newPageNo, this.pageCount, 1); if (this.page !== prevPageNo && isNumber(this.collectionSize)) { this.pageChange.emit(this.page); } } _updatePages(newPage) { this.pageCount = Math.ceil(this.collectionSize / this.pageSize); if (!isNumber(this.pageCount)) { this.pageCount = 0; } // fill-in model needed to render pages this.pages.length = 0; for (let i = 1; i <= this.pageCount; i++) { this.pages.push(i); } // set page within 1..max range this._setPageInRange(newPage); // apply maxSize if necessary if (this.maxSize > 0 && this.pageCount > this.maxSize) { let start = 0; let end = this.pageCount; // either paginating or rotating page numbers if (this.rotate) { [start, end] = this._applyRotation(); } else { [start, end] = this._applyPagination(); } this.pages = this.pages.slice(start, end); // adding ellipses this._applyEllipses(start, end); } } static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.0.4", ngImport: i0, type: NgbPagination, deps: [], target: i0.ɵɵFactoryTarget.Component }); } static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "21.0.4", type: NgbPagination, isStandalone: true, selector: "ngb-pagination", inputs: { disabled: "disabled", boundaryLinks: "boundaryLinks", directionLinks: "directionLinks", ellipses: "ellipses", rotate: "rotate", collectionSize: "collectionSize", maxSize: "maxSize", page: "page", pageSize: "pageSize", size: "size" }, outputs: { pageChange: "pageChange" }, host: { attributes: { "role": "navigation" } }, queries: [{ propertyName: "tplEllipsis", first: true, predicate: NgbPaginationEllipsis, descendants: true }, { propertyName: "tplFirst", first: true, predicate: NgbPaginationFirst, descendants: true }, { propertyName: "tplLast", first: true, predicate: NgbPaginationLast, descendants: true }, { propertyName: "tplNext", first: true, predicate: NgbPaginationNext, descendants: true }, { propertyName: "tplNumber", first: true, predicate: NgbPaginationNumber, descendants: true }, { propertyName: "tplPrevious", first: true, predicate: NgbPaginationPrevious, descendants: true }, { propertyName: "tplPages", first: true, predicate: NgbPaginationPages, descendants: true }], usesOnChanges: true, ngImport: i0, template: ` <ng-template #first><span aria-hidden="true" i18n="@@ngb.pagination.first">&laquo;&laquo;</span></ng-template> <ng-template #previous><span aria-hidden="true" i18n="@@ngb.pagination.previous">&laquo;</span></ng-template> <ng-template #next><span aria-hidden="true" i18n="@@ngb.pagination.next">&raquo;</span></ng-template> <ng-template #last><span aria-hidden="true" i18n="@@ngb.pagination.last">&raquo;&raquo;</span></ng-template> <ng-template #ellipsis>...</ng-template> <ng-template #defaultNumber let-page let-currentPage="currentPage">{{ page }}</ng-template> <ng-template #defaultPages let-page let-pages="pages" let-disabled="disabled"> @for (pageNumber of pages; track $index) { <li class="page-item" [class.active]="pageNumber === page" [class.disabled]="isEllipsis(pageNumber) || disabled" > @if (isEllipsis(pageNumber)) { <a class="page-link" tabindex="-1" aria-disabled="true"> <ng-template [ngTemplateOutlet]="tplEllipsis?.templateRef || ellipsis" [ngTemplateOutletContext]="{ disabled: true, currentPage: page }" /> </a> } @else { <a class="page-link" href (click)="selectPage(pageNumber); $event.preventDefault()" [attr.tabindex]="disabled ? '-1' : null" [attr.aria-disabled]="disabled ? 'true' : null" [attr.aria-current]="pageNumber === page ? 'page' : null" > <ng-template [ngTemplateOutlet]="tplNumber?.templateRef || defaultNumber" [ngTemplateOutletContext]="{ disabled: disabled, $implicit: pageNumber, currentPage: page }" /> </a> } </li> } </ng-template> <ul [class]="'pagination' + (size ? ' pagination-' + size : '')"> @if (boundaryLinks) { <li class="page-item" [class.disabled]="previousDisabled()"> <a aria-label="First" i18n-aria-label="@@ngb.pagination.first-aria" class="page-link" href (click)="selectPage(1); $event.preventDefault()" [attr.tabindex]="previousDisabled() ? '-1' : null" [attr.aria-disabled]="previousDisabled() ? 'true' : null" > <ng-template [ngTemplateOutlet]="tplFirst?.templateRef || first" [ngTemplateOutletContext]="{ disabled: previousDisabled(), currentPage: page }" /> </a> </li> } @if (directionLinks) { <li class="page-item" [class.disabled]="previousDisabled()"> <a aria-label="Previous" i18n-aria-label="@@ngb.pagination.previous-aria" class="page-link" href (click)="selectPage(page - 1); $event.preventDefault()" [attr.tabindex]="previousDisabled() ? '-1' : null" [attr.aria-disabled]="previousDisabled() ? 'true' : null" > <ng-template [ngTemplateOutlet]="tplPrevious?.templateRef || previous" [ngTemplateOutletContext]="{ disabled: previousDisabled() }" /> </a> </li> } <ng-template [ngTemplateOutlet]="tplPages?.templateRef || defaultPages" [ngTemplateOutletContext]="{ $implicit: page, pages: pages, disabled: disabled }" /> @if (directionLinks) { <li class="page-item" [class.disabled]="nextDisabled()"> <a aria-label="Next" i18n-aria-label="@@ngb.pagination.next-aria" class="page-link" href (click)="selectPage(page + 1); $event.preventDefault()" [attr.tabindex]="nextDisabled() ? '-1' : null" [attr.aria-disabled]="nextDisabled() ? 'true' : null" > <ng-template [ngTemplateOutlet]="tplNext?.templateRef || next" [ngTemplateOutletContext]="{ disabled: nextDisabled(), currentPage: page }" /> </a> </li> } @if (boundaryLinks) { <li class="page-item" [class.disabled]="nextDisabled()"> <a aria-label="Last" i18n-aria-label="@@ngb.pagination.last-aria" class="page-link" href (click)="selectPage(pageCount); $event.preventDefault()" [attr.tabindex]="nextDisabled() ? '-1' : null" [attr.aria-disabled]="nextDisabled() ? 'true' : null" > <ng-template [ngTemplateOutlet]="tplLast?.templateRef || last" [ngTemplateOutletContext]="{ disabled: nextDisabled(), currentPage: page }" /> </a> </li> } </ul> `, isInline: true, dependencies: [{ kind: "directive", type: NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); } } i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.0.4", ngImport: i0, type: NgbPagination, decorators: [{ type: Component, args: [{ selector: 'ngb-pagination', imports: [NgTemplateOutlet], changeDetection: ChangeDetectionStrategy.OnPush, host: { role: 'navigation', }, template: ` <ng-template #first><span aria-hidden="true" i18n="@@ngb.pagination.first">&laquo;&laquo;</span></ng-template> <ng-template #previous><span aria-hidden="true" i18n="@@ngb.pagination.previous">&laquo;</span></ng-template> <ng-template #next><span aria-hidden="true" i18n="@@ngb.pagination.next">&raquo;</span></ng-template> <ng-template #last><span aria-hidden="true" i18n="@@ngb.pagination.last">&raquo;&raquo;</span></ng-template> <ng-template #ellipsis>...</ng-template> <ng-template #defaultNumber let-page let-currentPage="currentPage">{{ page }}</ng-template> <ng-template #defaultPages let-page let-pages="pages" let-disabled="disabled"> @for (pageNumber of pages; track $index) { <li class="page-item" [class.active]="pageNumber === page" [class.disabled]="isEllipsis(pageNumber) || disabled" > @if (isEllipsis(pageNumber)) { <a class="page-link" tabindex="-1" aria-disabled="true"> <ng-template [ngTemplateOutlet]="tplEllipsis?.templateRef || ellipsis" [ngTemplateOutletContext]="{ disabled: true, currentPage: page }" /> </a> } @else { <a class="page-link" href (click)="selectPage(pageNumber); $event.preventDefault()" [attr.tabindex]="disabled ? '-1' : null" [attr.aria-disabled]="disabled ? 'true' : null" [attr.aria-current]="pageNumber === page ? 'page' : null" > <ng-template [ngTemplateOutlet]="tplNumber?.templateRef || defaultNumber" [ngTemplateOutletContext]="{ disabled: disabled, $implicit: pageNumber, currentPage: page }" /> </a> } </li> } </ng-template> <ul [class]="'pagination' + (size ? ' pagination-' + size : '')"> @if (boundaryLinks) { <li class="page-item" [class.disabled]="previousDisabled()"> <a aria-label="First" i18n-aria-label="@@ngb.pagination.first-aria" class="page-link" href (click)="selectPage(1); $event.preventDefault()" [attr.tabindex]="previousDisabled() ? '-1' : null" [attr.aria-disabled]="previousDisabled() ? 'true' : null" > <ng-template [ngTemplateOutlet]="tplFirst?.templateRef || first" [ngTemplateOutletContext]="{ disabled: previousDisabled(), currentPage: page }" /> </a> </li> } @if (directionLinks) { <li class="page-item" [class.disabled]="previousDisabled()"> <a aria-label="Previous" i18n-aria-label="@@ngb.pagination.previous-aria" class="page-link" href (click)="selectPage(page - 1); $event.preventDefault()" [attr.tabindex]="previousDisabled() ? '-1' : null" [attr.aria-disabled]="previousDisabled() ? 'true' : null" > <ng-template [ngTemplateOutlet]="tplPrevious?.templateRef || previous" [ngTemplateOutletContext]="{ disabled: previousDisabled() }" /> </a> </li> } <ng-template [ngTemplateOutlet]="tplPages?.templateRef || defaultPages" [ngTemplateOutletContext]="{ $implicit: page, pages: pages, disabled: disabled }" /> @if (directionLinks) { <li class="page-item" [class.disabled]="nextDisabled()"> <a aria-label="Next" i18n-aria-label="@@ngb.pagination.next-aria" class="page-link" href (click)="selectPage(page + 1); $event.preventDefault()" [attr.tabindex]="nextDisabled() ? '-1' : null" [attr.aria-disabled]="nextDisabled() ? 'true' : null" > <ng-template [ngTemplateOutlet]="tplNext?.templateRef || next" [ngTemplateOutletContext]="{ disabled: nextDisabled(), currentPage: page }" /> </a> </li> } @if (boundaryLinks) { <li class="page-item" [class.disabled]="nextDisabled()"> <a aria-label="Last" i18n-aria-label="@@ngb.pagination.last-aria" class="page-link" href (click)="selectPage(pageCount); $event.preventDefault()" [attr.tabindex]="nextDisabled() ? '-1' : null" [attr.aria-disabled]="nextDisabled() ? 'true' : null" > <ng-template [ngTemplateOutlet]="tplLast?.templateRef || last" [ngTemplateOutletContext]="{ disabled: nextDisabled(), currentPage: page }" /> </a> </li> } </ul> `, }] }], propDecorators: { tplEllipsis: [{ type: ContentChild, args: [NgbPaginationEllipsis, { static: false }] }], tplFirst: [{ type: ContentChild, args: [NgbPaginationFirst, { static: false }] }], tplLast: [{ type: ContentChild, args: [NgbPaginationLast, { static: false }] }], tplNext: [{ type: ContentChild, args: [NgbPaginationNext, { static: false }] }], tplNumber: [{ type: ContentChild, args: [NgbPaginationNumber, { static: false }] }], tplPrevious: [{ type: ContentChild, args: [NgbPaginationPrevious, { static: false }] }], tplPages: [{ type: ContentChild, args: [NgbPaginationPages, { static: false }] }], disabled: [{ type: Input }], boundaryLinks: [{ type: Input }], directionLinks: [{ type: Input }], ellipses: [{ type: Input }], rotate: [{ type: Input }], collectionSize: [{ type: Input, args: [{ required: true }] }], maxSize: [{ type: Input }], page: [{ type: Input }], pageSize: [{ type: Input }], pageChange: [{ type: Output }], size: [{ type: Input }] } }); const NGB_PAGINATION_DIRECTIVES = [ NgbPagination, NgbPaginationEllipsis, NgbPaginationFirst, NgbPaginationLast, NgbPaginationNext, NgbPaginationNumber, NgbPaginationPrevious, NgbPaginationPages, ]; class NgbPaginationModule { static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.0.4", ngImport: i0, type: NgbPaginationModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule }); } static { this.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "21.0.4", ngImport: i0, type: NgbPaginationModule, imports: [NgbPagination, NgbPaginationEllipsis, NgbPaginationFirst, NgbPaginationLast, NgbPaginationNext, NgbPaginationNumber, NgbPaginationPrevious, NgbPaginationPages], exports: [NgbPagination, NgbPaginationEllipsis, NgbPaginationFirst, NgbPaginationLast, NgbPaginationNext, NgbPaginationNumber, NgbPaginationPrevious, NgbPaginationPages] }); } static { this.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "21.0.4", ngImport: i0, type: NgbPaginationModule }); } } i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.0.4", ngImport: i0, type: NgbPaginationModule, decorators: [{ type: NgModule, args: [{ imports: NGB_PAGINATION_DIRECTIVES, exports: NGB_PAGINATION_DIRECTIVES, }] }] }); /** * Generated bundle index. Do not edit. */ export { NgbPagination, NgbPaginationConfig, NgbPaginationEllipsis, NgbPaginationFirst, NgbPaginationLast, NgbPaginationModule, NgbPaginationNext, NgbPaginationNumber, NgbPaginationPages, NgbPaginationPrevious }; //# sourceMappingURL=ng-bootstrap-ng-bootstrap-pagination.mjs.map