ngx-bootstrap-fix-datepicker
Version:
Native Angular Bootstrap Components
995 lines (987 loc) • 30.7 kB
JavaScript
import { Injectable, forwardRef, EventEmitter, Component, ElementRef, ChangeDetectorRef, Input, Output, NgModule } from '@angular/core';
import { NG_VALUE_ACCESSOR } from '@angular/forms';
import { CommonModule } from '@angular/common';
/**
* @fileoverview added by tsickle
* @suppress {checkTypes,extraRequire,missingOverride,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc
*/
/**
* Provides default values for Pagination and pager components
*/
class PaginationConfig {
constructor() {
this.main = {
maxSize: void 0,
itemsPerPage: 10,
boundaryLinks: false,
directionLinks: true,
firstText: 'First',
previousText: 'Previous',
nextText: 'Next',
lastText: 'Last',
pageBtnClass: '',
rotate: true
};
this.pager = {
itemsPerPage: 15,
previousText: '« Previous',
nextText: 'Next »',
pageBtnClass: '',
align: true
};
}
}
PaginationConfig.decorators = [
{ type: Injectable }
];
if (false) {
/** @type {?} */
PaginationConfig.prototype.main;
/** @type {?} */
PaginationConfig.prototype.pager;
}
/**
* @fileoverview added by tsickle
* @suppress {checkTypes,extraRequire,missingOverride,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc
*/
/** @type {?} */
const PAGER_CONTROL_VALUE_ACCESSOR = {
provide: NG_VALUE_ACCESSOR,
/* tslint:disable-next-line: no-use-before-declare */
useExisting: forwardRef((/**
* @return {?}
*/
() => PagerComponent)),
multi: true
};
class PagerComponent {
/**
* @param {?} elementRef
* @param {?} paginationConfig
* @param {?} changeDetection
*/
constructor(elementRef, paginationConfig, changeDetection) {
this.elementRef = elementRef;
this.changeDetection = changeDetection;
/**
* fired when total pages count changes, $event:number equals to total pages count
*/
this.numPages = new EventEmitter();
/**
* fired when page was changed, $event:{page, itemsPerPage} equals to
* object with current page index and number of items per page
*/
this.pageChanged = new EventEmitter();
this.onChange = Function.prototype;
this.onTouched = Function.prototype;
this.inited = false;
this._page = 1;
this.elementRef = elementRef;
if (!this.config) {
this.configureOptions(Object.assign({}, paginationConfig.main, paginationConfig.pager));
}
}
/**
* maximum number of items per page. If value less than 1 will display all items on one page
* @return {?}
*/
get itemsPerPage() {
return this._itemsPerPage;
}
/**
* @param {?} v
* @return {?}
*/
set itemsPerPage(v) {
this._itemsPerPage = v;
this.totalPages = this.calculateTotalPages();
}
/**
* total number of items in all pages
* @return {?}
*/
get totalItems() {
return this._totalItems;
}
/**
* @param {?} v
* @return {?}
*/
set totalItems(v) {
this._totalItems = v;
this.totalPages = this.calculateTotalPages();
}
/**
* @return {?}
*/
get totalPages() {
return this._totalPages;
}
/**
* @param {?} v
* @return {?}
*/
set totalPages(v) {
this._totalPages = v;
this.numPages.emit(v);
if (this.inited) {
this.selectPage(this.page);
}
}
/**
* @param {?} value
* @return {?}
*/
set page(value) {
/** @type {?} */
const _previous = this._page;
this._page = value > this.totalPages ? this.totalPages : value || 1;
this.changeDetection.markForCheck();
if (_previous === this._page || typeof _previous === 'undefined') {
return;
}
this.pageChanged.emit({
page: this._page,
itemsPerPage: this.itemsPerPage
});
}
/**
* @return {?}
*/
get page() {
return this._page;
}
/**
* @param {?} config
* @return {?}
*/
configureOptions(config) {
this.config = Object.assign({}, config);
}
/**
* @return {?}
*/
ngOnInit() {
if (typeof window !== 'undefined') {
this.classMap = this.elementRef.nativeElement.getAttribute('class') || '';
}
// watch for maxSize
this.maxSize =
typeof this.maxSize !== 'undefined' ? this.maxSize : this.config.maxSize;
this.rotate =
typeof this.rotate !== 'undefined' ? this.rotate : this.config.rotate;
this.boundaryLinks =
typeof this.boundaryLinks !== 'undefined'
? this.boundaryLinks
: this.config.boundaryLinks;
this.directionLinks =
typeof this.directionLinks !== 'undefined'
? this.directionLinks
: this.config.directionLinks;
this.pageBtnClass =
typeof this.pageBtnClass !== 'undefined'
? this.pageBtnClass
: this.config.pageBtnClass;
// base class
this.itemsPerPage =
typeof this.itemsPerPage !== 'undefined'
? this.itemsPerPage
: this.config.itemsPerPage;
this.totalPages = this.calculateTotalPages();
// this class
this.pages = this.getPages(this.page, this.totalPages);
this.inited = true;
}
/**
* @param {?} value
* @return {?}
*/
writeValue(value) {
this.page = value;
this.pages = this.getPages(this.page, this.totalPages);
}
/**
* @param {?} key
* @return {?}
*/
getText(key) {
// tslint:disable-next-line:no-any
return ((/** @type {?} */ (this)))[`${key}Text`] || ((/** @type {?} */ (this))).config[`${key}Text`];
}
/**
* @return {?}
*/
noPrevious() {
return this.page === 1;
}
/**
* @return {?}
*/
noNext() {
return this.page === this.totalPages;
}
/**
* @param {?} fn
* @return {?}
*/
registerOnChange(fn) {
this.onChange = fn;
}
/**
* @param {?} fn
* @return {?}
*/
registerOnTouched(fn) {
this.onTouched = fn;
}
/**
* @param {?} page
* @param {?=} event
* @return {?}
*/
selectPage(page, event) {
if (event) {
event.preventDefault();
}
if (!this.disabled) {
if (event && event.target) {
// tslint:disable-next-line:no-any
/** @type {?} */
const target = event.target;
target.blur();
}
this.writeValue(page);
this.onChange(this.page);
}
}
// Create page object used in template
/**
* @protected
* @param {?} num
* @param {?} text
* @param {?} active
* @return {?}
*/
makePage(num, text, active) {
return { text, number: num, active };
}
/**
* @protected
* @param {?} currentPage
* @param {?} totalPages
* @return {?}
*/
getPages(currentPage, totalPages) {
/** @type {?} */
const pages = [];
// Default page limits
/** @type {?} */
let startPage = 1;
/** @type {?} */
let endPage = totalPages;
/** @type {?} */
const isMaxSized = typeof this.maxSize !== 'undefined' && this.maxSize < totalPages;
// recompute if maxSize
if (isMaxSized) {
if (this.rotate) {
// Current page is displayed in the middle of the visible ones
startPage = Math.max(currentPage - Math.floor(this.maxSize / 2), 1);
endPage = startPage + this.maxSize - 1;
// Adjust if limit is exceeded
if (endPage > totalPages) {
endPage = totalPages;
startPage = endPage - this.maxSize + 1;
}
}
else {
// Visible pages are paginated with maxSize
startPage =
(Math.ceil(currentPage / this.maxSize) - 1) * this.maxSize + 1;
// Adjust last page if limit is exceeded
endPage = Math.min(startPage + this.maxSize - 1, totalPages);
}
}
// Add page number links
for (let num = startPage; num <= endPage; num++) {
/** @type {?} */
const page = this.makePage(num, num.toString(), num === currentPage);
pages.push(page);
}
// Add links to move between page sets
if (isMaxSized && !this.rotate) {
if (startPage > 1) {
/** @type {?} */
const previousPageSet = this.makePage(startPage - 1, '...', false);
pages.unshift(previousPageSet);
}
if (endPage < totalPages) {
/** @type {?} */
const nextPageSet = this.makePage(endPage + 1, '...', false);
pages.push(nextPageSet);
}
}
return pages;
}
// base class
/**
* @protected
* @return {?}
*/
calculateTotalPages() {
/** @type {?} */
const totalPages = this.itemsPerPage < 1
? 1
: Math.ceil(this.totalItems / this.itemsPerPage);
return Math.max(totalPages || 0, 1);
}
}
PagerComponent.decorators = [
{ type: Component, args: [{
selector: 'pager',
template: "<ul class=\"pager\">\n <li [class.disabled]=\"noPrevious()\" [class.previous]=\"align\"\n [ngClass]=\"{'pull-left': align, 'float-left': align}\"\n class=\"{{ pageBtnClass }}\">\n <a href (click)=\"selectPage(page - 1, $event)\">{{ getText('previous') }}</a>\n </li>\n <li [class.disabled]=\"noNext()\" [class.next]=\"align\"\n [ngClass]=\"{'pull-right': align, 'float-right': align}\"\n class=\"{{ pageBtnClass }}\">\n <a href (click)=\"selectPage(page + 1, $event)\">{{ getText('next') }}</a>\n </li>\n</ul>\n",
providers: [PAGER_CONTROL_VALUE_ACCESSOR]
}] }
];
/** @nocollapse */
PagerComponent.ctorParameters = () => [
{ type: ElementRef },
{ type: PaginationConfig },
{ type: ChangeDetectorRef }
];
PagerComponent.propDecorators = {
align: [{ type: Input }],
maxSize: [{ type: Input }],
boundaryLinks: [{ type: Input }],
directionLinks: [{ type: Input }],
firstText: [{ type: Input }],
previousText: [{ type: Input }],
nextText: [{ type: Input }],
lastText: [{ type: Input }],
rotate: [{ type: Input }],
pageBtnClass: [{ type: Input }],
disabled: [{ type: Input }],
numPages: [{ type: Output }],
pageChanged: [{ type: Output }],
itemsPerPage: [{ type: Input }],
totalItems: [{ type: Input }]
};
if (false) {
/** @type {?} */
PagerComponent.prototype.config;
/**
* if `true` aligns each link to the sides of pager
* @type {?}
*/
PagerComponent.prototype.align;
/**
* limit number for page links in pager
* @type {?}
*/
PagerComponent.prototype.maxSize;
/**
* if false first and last buttons will be hidden
* @type {?}
*/
PagerComponent.prototype.boundaryLinks;
/**
* if false previous and next buttons will be hidden
* @type {?}
*/
PagerComponent.prototype.directionLinks;
/**
* first button text
* @type {?}
*/
PagerComponent.prototype.firstText;
/**
* previous button text
* @type {?}
*/
PagerComponent.prototype.previousText;
/**
* next button text
* @type {?}
*/
PagerComponent.prototype.nextText;
/**
* last button text
* @type {?}
*/
PagerComponent.prototype.lastText;
/**
* if true current page will in the middle of pages list
* @type {?}
*/
PagerComponent.prototype.rotate;
/**
* add class to <code><li\></code>
* @type {?}
*/
PagerComponent.prototype.pageBtnClass;
/**
* if true pagination component will be disabled
* @type {?}
*/
PagerComponent.prototype.disabled;
/**
* fired when total pages count changes, $event:number equals to total pages count
* @type {?}
*/
PagerComponent.prototype.numPages;
/**
* fired when page was changed, $event:{page, itemsPerPage} equals to
* object with current page index and number of items per page
* @type {?}
*/
PagerComponent.prototype.pageChanged;
/** @type {?} */
PagerComponent.prototype.onChange;
/** @type {?} */
PagerComponent.prototype.onTouched;
/** @type {?} */
PagerComponent.prototype.classMap;
/** @type {?} */
PagerComponent.prototype.pages;
/**
* @type {?}
* @protected
*/
PagerComponent.prototype._itemsPerPage;
/**
* @type {?}
* @protected
*/
PagerComponent.prototype._totalItems;
/**
* @type {?}
* @protected
*/
PagerComponent.prototype._totalPages;
/**
* @type {?}
* @protected
*/
PagerComponent.prototype.inited;
/**
* @type {?}
* @protected
*/
PagerComponent.prototype._page;
/**
* @type {?}
* @private
*/
PagerComponent.prototype.elementRef;
/**
* @type {?}
* @private
*/
PagerComponent.prototype.changeDetection;
}
/**
* @fileoverview added by tsickle
* @suppress {checkTypes,extraRequire,missingOverride,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc
*/
/**
* @record
*/
function PageChangedEvent() { }
if (false) {
/** @type {?} */
PageChangedEvent.prototype.itemsPerPage;
/** @type {?} */
PageChangedEvent.prototype.page;
}
/** @type {?} */
const PAGINATION_CONTROL_VALUE_ACCESSOR = {
provide: NG_VALUE_ACCESSOR,
/* tslint:disable-next-line: no-use-before-declare */
useExisting: forwardRef((/**
* @return {?}
*/
() => PaginationComponent)),
multi: true
};
class PaginationComponent {
/**
* @param {?} elementRef
* @param {?} paginationConfig
* @param {?} changeDetection
*/
constructor(elementRef, paginationConfig, changeDetection) {
this.elementRef = elementRef;
this.changeDetection = changeDetection;
/**
* fired when total pages count changes, $event:number equals to total pages count
*/
this.numPages = new EventEmitter();
/**
* fired when page was changed, $event:{page, itemsPerPage} equals to object
* with current page index and number of items per page
*/
this.pageChanged = new EventEmitter();
this.onChange = Function.prototype;
this.onTouched = Function.prototype;
this.inited = false;
this._page = 1;
this.elementRef = elementRef;
if (!this.config) {
this.configureOptions(paginationConfig.main);
}
}
/**
* maximum number of items per page. If value less than 1 will display all items on one page
* @return {?}
*/
get itemsPerPage() {
return this._itemsPerPage;
}
/**
* @param {?} v
* @return {?}
*/
set itemsPerPage(v) {
this._itemsPerPage = v;
this.totalPages = this.calculateTotalPages();
}
/**
* total number of items in all pages
* @return {?}
*/
get totalItems() {
return this._totalItems;
}
/**
* @param {?} v
* @return {?}
*/
set totalItems(v) {
this._totalItems = v;
this.totalPages = this.calculateTotalPages();
}
/**
* @return {?}
*/
get totalPages() {
return this._totalPages;
}
/**
* @param {?} v
* @return {?}
*/
set totalPages(v) {
this._totalPages = v;
this.numPages.emit(v);
if (this.inited) {
this.selectPage(this.page);
}
}
/**
* @param {?} value
* @return {?}
*/
set page(value) {
/** @type {?} */
const _previous = this._page;
this._page = value > this.totalPages ? this.totalPages : value || 1;
this.changeDetection.markForCheck();
if (_previous === this._page || typeof _previous === 'undefined') {
return;
}
this.pageChanged.emit({
page: this._page,
itemsPerPage: this.itemsPerPage
});
}
/**
* @return {?}
*/
get page() {
return this._page;
}
/**
* @param {?} config
* @return {?}
*/
configureOptions(config) {
this.config = Object.assign({}, config);
}
/**
* @return {?}
*/
ngOnInit() {
if (typeof window !== 'undefined') {
this.classMap = this.elementRef.nativeElement.getAttribute('class') || '';
}
// watch for maxSize
this.maxSize =
typeof this.maxSize !== 'undefined' ? this.maxSize : this.config.maxSize;
this.rotate =
typeof this.rotate !== 'undefined' ? this.rotate : this.config.rotate;
this.boundaryLinks =
typeof this.boundaryLinks !== 'undefined'
? this.boundaryLinks
: this.config.boundaryLinks;
this.directionLinks =
typeof this.directionLinks !== 'undefined'
? this.directionLinks
: this.config.directionLinks;
this.pageBtnClass =
typeof this.pageBtnClass !== 'undefined'
? this.pageBtnClass
: this.config.pageBtnClass;
// base class
this.itemsPerPage =
typeof this.itemsPerPage !== 'undefined'
? this.itemsPerPage
: this.config.itemsPerPage;
this.totalPages = this.calculateTotalPages();
// this class
this.pages = this.getPages(this.page, this.totalPages);
this.inited = true;
}
/**
* @param {?} value
* @return {?}
*/
writeValue(value) {
this.page = value;
this.pages = this.getPages(this.page, this.totalPages);
}
/**
* @param {?} key
* @return {?}
*/
getText(key) {
// tslint:disable-next-line:no-any
return ((/** @type {?} */ (this)))[`${key}Text`] || ((/** @type {?} */ (this))).config[`${key}Text`];
}
/**
* @return {?}
*/
noPrevious() {
return this.page === 1;
}
/**
* @return {?}
*/
noNext() {
return this.page === this.totalPages;
}
/**
* @param {?} fn
* @return {?}
*/
registerOnChange(fn) {
this.onChange = fn;
}
/**
* @param {?} fn
* @return {?}
*/
registerOnTouched(fn) {
this.onTouched = fn;
}
/**
* @param {?} page
* @param {?=} event
* @return {?}
*/
selectPage(page, event) {
if (event) {
event.preventDefault();
}
if (!this.disabled) {
if (event && event.target) {
// tslint:disable-next-line:no-any
/** @type {?} */
const target = event.target;
target.blur();
}
this.writeValue(page);
this.onChange(this.page);
}
}
// Create page object used in template
/**
* @protected
* @param {?} num
* @param {?} text
* @param {?} active
* @return {?}
*/
makePage(num, text, active) {
return { text, number: num, active };
}
/**
* @protected
* @param {?} currentPage
* @param {?} totalPages
* @return {?}
*/
getPages(currentPage, totalPages) {
/** @type {?} */
const pages = [];
// Default page limits
/** @type {?} */
let startPage = 1;
/** @type {?} */
let endPage = totalPages;
/** @type {?} */
const isMaxSized = typeof this.maxSize !== 'undefined' && this.maxSize < totalPages;
// recompute if maxSize
if (isMaxSized) {
if (this.rotate) {
// Current page is displayed in the middle of the visible ones
startPage = Math.max(currentPage - Math.floor(this.maxSize / 2), 1);
endPage = startPage + this.maxSize - 1;
// Adjust if limit is exceeded
if (endPage > totalPages) {
endPage = totalPages;
startPage = endPage - this.maxSize + 1;
}
}
else {
// Visible pages are paginated with maxSize
startPage =
(Math.ceil(currentPage / this.maxSize) - 1) * this.maxSize + 1;
// Adjust last page if limit is exceeded
endPage = Math.min(startPage + this.maxSize - 1, totalPages);
}
}
// Add page number links
for (let num = startPage; num <= endPage; num++) {
/** @type {?} */
const page = this.makePage(num, num.toString(), num === currentPage);
pages.push(page);
}
// Add links to move between page sets
if (isMaxSized && !this.rotate) {
if (startPage > 1) {
/** @type {?} */
const previousPageSet = this.makePage(startPage - 1, '...', false);
pages.unshift(previousPageSet);
}
if (endPage < totalPages) {
/** @type {?} */
const nextPageSet = this.makePage(endPage + 1, '...', false);
pages.push(nextPageSet);
}
}
return pages;
}
// base class
/**
* @protected
* @return {?}
*/
calculateTotalPages() {
/** @type {?} */
const totalPages = this.itemsPerPage < 1
? 1
: Math.ceil(this.totalItems / this.itemsPerPage);
return Math.max(totalPages || 0, 1);
}
}
PaginationComponent.decorators = [
{ type: Component, args: [{
selector: 'pagination',
template: "<ul class=\"pagination\" [ngClass]=\"classMap\">\n <li class=\"pagination-first page-item\"\n *ngIf=\"boundaryLinks\"\n [class.disabled]=\"noPrevious() || disabled\">\n <a class=\"page-link\" href (click)=\"selectPage(1, $event)\">\n <ng-container [ngTemplateOutlet]=\"customFirstTemplate || defaultFirstTemplate\"\n [ngTemplateOutletContext]=\"{disabled: noPrevious() || disabled, currentPage: page}\">\n </ng-container>\n </a>\n </li>\n\n <li class=\"pagination-prev page-item\"\n *ngIf=\"directionLinks\"\n [class.disabled]=\"noPrevious() || disabled\">\n <a class=\"page-link\" href (click)=\"selectPage(page - 1, $event)\">\n <ng-container [ngTemplateOutlet]=\"customPreviousTemplate || defaultPreviousTemplate\"\n [ngTemplateOutletContext]=\"{disabled: noPrevious() || disabled, currentPage: page}\">\n </ng-container>\n </a>\n </li>\n\n <li *ngFor=\"let pg of pages\"\n [class.active]=\"pg.active\"\n [class.disabled]=\"disabled && !pg.active\"\n class=\"pagination-page page-item\">\n <a class=\"page-link\" href (click)=\"selectPage(pg.number, $event)\">\n <ng-container [ngTemplateOutlet]=\"customPageTemplate || defaultPageTemplate\"\n [ngTemplateOutletContext]=\"{disabled: disabled, $implicit: pg, currentPage: page}\">\n </ng-container>\n </a>\n </li>\n\n <li class=\"pagination-next page-item\"\n *ngIf=\"directionLinks\"\n [class.disabled]=\"noNext() || disabled\">\n <a class=\"page-link\" href (click)=\"selectPage(page + 1, $event)\">\n <ng-container [ngTemplateOutlet]=\"customNextTemplate || defaultNextTemplate\"\n [ngTemplateOutletContext]=\"{disabled: noNext() || disabled, currentPage: page}\">\n </ng-container>\n </a>\n </li>\n\n <li class=\"pagination-last page-item\"\n *ngIf=\"boundaryLinks\"\n [class.disabled]=\"noNext() || disabled\">\n <a class=\"page-link\" href (click)=\"selectPage(totalPages, $event)\">\n <ng-container [ngTemplateOutlet]=\"customLastTemplate || defaultLastTemplate\"\n [ngTemplateOutletContext]=\"{disabled: noNext() || disabled, currentPage: page}\">\n </ng-container>\n </a>\n </li>\n</ul>\n\n<ng-template #defaultPageTemplate let-page>{{ page.text }}</ng-template>\n\n<ng-template #defaultNextTemplate>{{ getText('next') }}</ng-template>\n\n<ng-template #defaultPreviousTemplate>{{ getText('previous') }}</ng-template>\n\n<ng-template #defaultFirstTemplate>{{ getText('first') }}</ng-template>\n\n<ng-template #defaultLastTemplate>{{ getText('last') }}</ng-template>\n",
providers: [PAGINATION_CONTROL_VALUE_ACCESSOR]
}] }
];
/** @nocollapse */
PaginationComponent.ctorParameters = () => [
{ type: ElementRef },
{ type: PaginationConfig },
{ type: ChangeDetectorRef }
];
PaginationComponent.propDecorators = {
align: [{ type: Input }],
maxSize: [{ type: Input }],
boundaryLinks: [{ type: Input }],
directionLinks: [{ type: Input }],
firstText: [{ type: Input }],
previousText: [{ type: Input }],
nextText: [{ type: Input }],
lastText: [{ type: Input }],
rotate: [{ type: Input }],
pageBtnClass: [{ type: Input }],
disabled: [{ type: Input }],
customPageTemplate: [{ type: Input }],
customNextTemplate: [{ type: Input }],
customPreviousTemplate: [{ type: Input }],
customFirstTemplate: [{ type: Input }],
customLastTemplate: [{ type: Input }],
numPages: [{ type: Output }],
pageChanged: [{ type: Output }],
itemsPerPage: [{ type: Input }],
totalItems: [{ type: Input }]
};
if (false) {
/** @type {?} */
PaginationComponent.prototype.config;
/**
* if `true` aligns each link to the sides of pager
* @type {?}
*/
PaginationComponent.prototype.align;
/**
* limit number for page links in pager
* @type {?}
*/
PaginationComponent.prototype.maxSize;
/**
* if false first and last buttons will be hidden
* @type {?}
*/
PaginationComponent.prototype.boundaryLinks;
/**
* if false previous and next buttons will be hidden
* @type {?}
*/
PaginationComponent.prototype.directionLinks;
/**
* first button text
* @type {?}
*/
PaginationComponent.prototype.firstText;
/**
* previous button text
* @type {?}
*/
PaginationComponent.prototype.previousText;
/**
* next button text
* @type {?}
*/
PaginationComponent.prototype.nextText;
/**
* last button text
* @type {?}
*/
PaginationComponent.prototype.lastText;
/**
* if true current page will in the middle of pages list
* @type {?}
*/
PaginationComponent.prototype.rotate;
/**
* add class to <code><li\></code>
* @type {?}
*/
PaginationComponent.prototype.pageBtnClass;
/**
* if true pagination component will be disabled
* @type {?}
*/
PaginationComponent.prototype.disabled;
/**
* custom template for page link
* @type {?}
*/
PaginationComponent.prototype.customPageTemplate;
/**
* custom template for next link
* @type {?}
*/
PaginationComponent.prototype.customNextTemplate;
/**
* custom template for previous link
* @type {?}
*/
PaginationComponent.prototype.customPreviousTemplate;
/**
* custom template for first link
* @type {?}
*/
PaginationComponent.prototype.customFirstTemplate;
/**
* custom template for last link
* @type {?}
*/
PaginationComponent.prototype.customLastTemplate;
/**
* fired when total pages count changes, $event:number equals to total pages count
* @type {?}
*/
PaginationComponent.prototype.numPages;
/**
* fired when page was changed, $event:{page, itemsPerPage} equals to object
* with current page index and number of items per page
* @type {?}
*/
PaginationComponent.prototype.pageChanged;
/** @type {?} */
PaginationComponent.prototype.onChange;
/** @type {?} */
PaginationComponent.prototype.onTouched;
/** @type {?} */
PaginationComponent.prototype.classMap;
/** @type {?} */
PaginationComponent.prototype.pages;
/**
* @type {?}
* @protected
*/
PaginationComponent.prototype._itemsPerPage;
/**
* @type {?}
* @protected
*/
PaginationComponent.prototype._totalItems;
/**
* @type {?}
* @protected
*/
PaginationComponent.prototype._totalPages;
/**
* @type {?}
* @protected
*/
PaginationComponent.prototype.inited;
/**
* @type {?}
* @protected
*/
PaginationComponent.prototype._page;
/**
* @type {?}
* @private
*/
PaginationComponent.prototype.elementRef;
/**
* @type {?}
* @private
*/
PaginationComponent.prototype.changeDetection;
}
/**
* @fileoverview added by tsickle
* @suppress {checkTypes,extraRequire,missingOverride,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc
*/
class PaginationModule {
/**
* @return {?}
*/
static forRoot() {
return { ngModule: PaginationModule, providers: [PaginationConfig] };
}
}
PaginationModule.decorators = [
{ type: NgModule, args: [{
imports: [CommonModule],
declarations: [PagerComponent, PaginationComponent],
exports: [PagerComponent, PaginationComponent]
},] }
];
/**
* @fileoverview added by tsickle
* @suppress {checkTypes,extraRequire,missingOverride,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc
*/
/**
* @fileoverview added by tsickle
* @suppress {checkTypes,extraRequire,missingOverride,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc
*/
export { PagerComponent, PaginationComponent, PaginationConfig, PaginationModule, PAGER_CONTROL_VALUE_ACCESSOR as ɵa, PAGINATION_CONTROL_VALUE_ACCESSOR as ɵb };
//# sourceMappingURL=ngx-bootstrap-pagination.js.map