@duoduo-oba/ng-devui
Version:
DevUI components based on Angular
583 lines • 60.7 kB
JavaScript
/**
* @fileoverview added by tsickle
* Generated from: pagination.component.ts
* @suppress {checkTypes,constantProperty,extraRequire,missingOverride,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc
*/
import { ChangeDetectionStrategy, ChangeDetectorRef, Component, ElementRef, EventEmitter, Input, Output, ViewChild } from '@angular/core';
import { fromEvent } from 'rxjs';
import { I18nService } from '@duoduo-oba/ng-devui/i18n';
export class PaginationComponent {
/**
* @param {?} ref
* @param {?} i18n
*/
constructor(ref, i18n) {
this.ref = ref;
this.i18n = i18n;
/**
* 【可选】每页显示最大条目数量,默认10条
*/
this.pageSize = 10;
/**
* 【可选】用于选择更改分页每页最大条目数量的下拉框的数据源,默认为`[5, 10, 20, 50]`
*/
this.pageSizeOptions = [5, 10, 20, 50];
/**
* 【可选】初始化页码
*/
this.pageIndex = 1;
/**
* 页码变化的回调
*/
this.pageIndexChange = new EventEmitter();
/**
* 每页最大条目数量变更时的回调
*/
this.pageSizeChange = new EventEmitter();
/**
* 分页最多显示几个按钮,默认10个
*/
this.maxItems = 10;
/**
* 【可选】分页组件尺寸
*/
this.size = '';
// 是否显示跳转按钮,默认不显示
this.showJumpButton = false;
// 翻过了页的需求要显示当前真实页面
this.showTruePageIndex = false;
this.showPages = [];
this.totalPage = 1;
this._total = 0;
this.jumpPage = null;
/**
* 下拉菜单默认方向
*/
this.selectDirection = 'auto';
/**
* 极简模式开关
*/
this.lite = false;
this.showPageSelector = true;
this.haveConfigMenu = false;
this.litePaginatorOptions = [];
this.litePaginatorOptionsLengthCache = 0;
this.showConfig = false;
this.configButtonLoseFocusHandler = null;
this.loseFocusListener = null;
this.i18nText = this.i18n.getI18nText().pagination;
this.i18nSubscription = this.i18n.langChange().subscribe((/**
* @param {?} data
* @return {?}
*/
(data) => {
this.i18nText = data.pagination;
this.ref.markForCheck();
}));
this.constructLitePaginatorOptions();
}
/**
* @param {?} total
* @return {?}
*/
set total(total) {
if (total === undefined) {
this._total = 0;
}
else {
if (!isNaN(parseInt(total, 10))) {
this._total = parseInt(total, 10);
}
}
}
/**
* @return {?}
*/
get total() {
return this._total;
}
/**
* @return {?}
*/
first() {
if (this.pageIndex !== 1) {
this.onPageIndexChange(1);
}
}
/**
* @return {?}
*/
last() {
/** @type {?} */
const last = Math.max(this.totalPage, 1);
if (this.pageIndex !== last) {
this.onPageIndexChange(last);
}
}
/**
* @return {?}
*/
prev() {
if (this.hasPrev()) {
this.onPageIndexChange(this.pageIndex - 1);
}
}
/**
* @return {?}
*/
next() {
if (this.hasNext()) {
this.onPageIndexChange(this.pageIndex + 1);
}
}
/**
* @return {?}
*/
jump() {
/** @type {?} */
const pageInput = parseInt(this.jumpPage, 10);
if (pageInput) {
if (pageInput > 0 && pageInput <= this.totalPage) {
this.onPageIndexChange(pageInput);
}
}
}
/**
* @return {?}
*/
validateInput() {
if (this.jumpPage === '') {
return;
}
/** @type {?} */
const value = parseInt(this.jumpPage, 10);
this.jumpPage = value;
if (isNaN(value)) {
this.jumpPage = this.pageIndex;
}
}
/**
* @return {?}
*/
preRange() {
/** @type {?} */
const pre = this.showPages[0] - 1;
this.onPageIndexChange(Math.max(pre, 1));
}
/**
* @return {?}
*/
nextRange() {
/** @type {?} */
const next = this.showPages[this.showPages.length - 1] + 1;
this.onPageIndexChange(Math.min(next, this.totalPage));
}
/**
* @param {?} pageIndex
* @return {?}
*/
onPageIndexChange(pageIndex) {
if (this.pageIndex !== pageIndex) {
this.litePaginatorIndex = Object.assign({}, {
value: this.pageIndex,
label: `${this.pageIndex}/${this.totalPage}`
});
this.pageIndexChange.emit(pageIndex);
}
}
/**
* @param {?} size
* @return {?}
*/
onPageSizeChange(size) {
if (this.pageSize !== size) {
this.pageSizeChange.emit(size);
if (Math.ceil(this.total / size) < this.totalPage) {
this.totalPage = Math.ceil(this.total / size);
this.onPageIndexChange(this.totalPage <= this.pageIndex ? this.totalPage : this.pageIndex);
}
this.adjustPaginatorWidth();
}
}
/**
* @return {?}
*/
hasPrev() {
return this.pageIndex > 1;
}
/**
* @return {?}
*/
hasNext() {
return this.pageIndex < this.totalPage;
}
/**
* @private
* @return {?}
*/
getTotalPage() {
return Math.ceil(this.total / this.pageSize);
}
/**
* @param {?} changes
* @return {?}
*/
ngOnChanges(changes) {
/** @type {?} */
const shouldUpdateRanges = PaginationComponent.EFFECT_PAGE_RANGE_KEYS.some((/**
* @param {?} key
* @return {?}
*/
key => !!changes[key]));
if (shouldUpdateRanges) {
this.totalPage = this.getTotalPage();
if (!this.showTruePageIndex) {
this.pageIndex = Math.max(Math.min(this.pageIndex, this.totalPage), 1);
}
this.jumpPage = this.pageIndex;
this.updateShowPageRange();
this.constructLitePaginatorOptions();
this.adjustPaginatorWidth();
}
}
/**
* @return {?}
*/
ngAfterViewInit() {
this.adjustPaginatorWidth();
}
/**
* @private
* @return {?}
*/
updateShowPageRange() {
if (!this.totalPage) {
this.showPages = [1];
return;
}
if (this.totalPage <= this.maxItems) {
this.showPages = new Array(this.totalPage).fill(0).map((/**
* @param {?} _
* @param {?} i
* @return {?}
*/
(_, i) => i + 1));
return;
}
this.showPages = this.extractRange();
}
/**
* @private
* @return {?}
*/
extractRange() {
/** @type {?} */
const showPages = [this.pageIndex];
/** @type {?} */
let start = this.pageIndex - 1;
/** @type {?} */
let end = this.pageIndex + 1;
/** @type {?} */
const arriveLeftBound = (/**
* @param {?} index
* @return {?}
*/
index => index < 1);
/** @type {?} */
const arriveRightBound = (/**
* @param {?} index
* @return {?}
*/
(index) => index > this.totalPage);
/** @type {?} */
const fullPageRang = (/**
* @param {?} pages
* @return {?}
*/
(pages) => pages.length >= this.maxItems - 2);
while (!(fullPageRang(showPages) || (arriveLeftBound(start) && arriveRightBound(end)))) {
if (!arriveLeftBound(start)) {
showPages.unshift((start--));
}
if (!fullPageRang(showPages) && !arriveRightBound(end)) {
showPages.push(end++);
}
}
return showPages;
}
/**
* @private
* @return {?}
*/
constructLitePaginatorOptions() {
if (this.litePaginatorOptions.length === 0 ||
this.litePaginatorOptions.length !== this.litePaginatorOptionsLengthCache) {
this.litePaginatorOptions = Array.from({ length: this.totalPage }).map((/**
* @param {?} v
* @param {?} index
* @return {?}
*/
(v, index) => {
return {
label: `${index + 1}/${this.totalPage}`,
value: index + 1
};
}));
}
this.litePaginatorIndex = Object.assign({}, {
value: this.pageIndex,
label: `${this.pageIndex}/${this.totalPage}`
});
}
/**
* @private
* @return {?}
*/
adjustPaginatorWidth() {
if (this.litePaginator && this.litePaginator.nativeElement && this.litePaginatorOptions.length > 0) {
/** @type {?} */
const lastOption = this.litePaginatorOptions[this.litePaginatorOptions.length - 1];
/** @type {?} */
const lastLabel = lastOption ? lastOption['label'] : '';
/** @type {?} */
const minWidth = 100;
/** @type {?} */
const width = lastLabel.length * 4 + 80;
this.litePaginator.nativeElement.style.width = `${Math.max(minWidth, width)}px`;
}
}
/**
* @param {?=} force
* @return {?}
*/
toggleMenu(force = null) {
if (force !== null) {
this.showConfig = force;
}
else {
this.showConfig = !this.showConfig;
}
this.ref.markForCheck();
if (this.showConfig) {
this.subscribeLoseFocusHandler();
}
else {
this.unsubscribeLoseFocusHandler();
}
}
/**
* @private
* @return {?}
*/
closeMenu() {
this.toggleMenu(false);
}
/**
* @private
* @return {?}
*/
unsubscribeLoseFocusHandler() {
if (this.configButtonLoseFocusHandler) {
this.configButtonLoseFocusHandler.unsubscribe();
this.configButtonLoseFocusHandler = null;
}
}
/**
* @return {?}
*/
ngOnDestroy() {
this.unsubscribeLoseFocusHandler();
if (this.i18nSubscription) {
this.i18nSubscription.unsubscribe();
}
}
/**
* @private
* @return {?}
*/
subscribeLoseFocusHandler() {
if (this.loseFocusListener === null) {
this.loseFocusListener = fromEvent(document, 'click');
}
if (this.configButtonLoseFocusHandler === null) {
this.configButtonLoseFocusHandler = this.loseFocusListener.subscribe(this.closeMenu.bind(this));
}
}
}
PaginationComponent.EFFECT_PAGE_RANGE_KEYS = ['total', 'pageSize', 'pageIndex', 'maxItems'];
PaginationComponent.decorators = [
{ type: Component, args: [{
selector: 'd-pagination',
template: "<div class=\"devui-pagination\">\r\n <div *ngIf=\"canChangePageSize && !lite\" class=\"devui-page-size {{ size ? 'devui-page-size-' + size : '' }}\">\r\n <d-select\r\n [scrollHight]=\"'200px'\"\r\n [direction]=\"selectDirection\"\r\n [size]=\"size\"\r\n [ngModel]=\"pageSize\"\r\n [appendToBody]=\"true\"\r\n (valueChange)=\"onPageSizeChange($event)\"\r\n [options]=\"pageSizeOptions\"\r\n [isSearch]=\"false\"\r\n ></d-select>\r\n </div>\r\n <div *ngIf=\"canViewTotal\" class=\"devui-total-size\">{{ totalItemText ? totalItemText : i18nText?.totalItem }}: {{ total }}</div>\r\n <div *ngIf=\"lite && showPageSelector\" class=\"devui-lite-paginator\" #litePaginator>\r\n <d-select\r\n [scrollHight]=\"'200px'\"\r\n [direction]=\"selectDirection\"\r\n [size]=\"size\"\r\n [isSearch]=\"false\"\r\n [ngModel]=\"litePaginatorIndex\"\r\n [appendToBody]=\"true\"\r\n [options]=\"litePaginatorOptions\"\r\n [filterKey]=\"'label'\"\r\n [disabled]=\"!litePaginatorOptions.length\"\r\n (valueChange)=\"onPageIndexChange($event.value)\"\r\n ></d-select>\r\n </div>\r\n <ul class=\"devui-pagination-list {{ size ? 'devui-pagination-' + size : '' }}\">\r\n <ng-container *ngIf=\"!lite\">\r\n <li *ngIf=\"preLink\" [ngClass]=\"{ disabled: pageIndex == totalPage }\">\r\n <a (click)=\"prev()\" class=\"devui-pagination-link\">{{ preLink }}</a>\r\n </li>\r\n <li *ngIf=\"!preLink\" [ngClass]=\"{ disabled: pageIndex == 1 }\">\r\n <a (click)=\"prev()\" class=\"devui-pagination-link\">\r\n <svg width=\"1em\" height=\"1.5em\" viewBox=\"0 0 16 16\" version=\"1.1\" xmlns=\"http://www.w3.org/2000/svg\">\r\n <g id=\"\u64CD\u4F5C/collapse1\" stroke=\"none\" stroke-width=\"1\" fill=\"none\" fill-rule=\"evenodd\">\r\n <polygon\r\n id=\"\u8DEF\u5F84\"\r\n fill=\"#293040\"\r\n fill-rule=\"nonzero\"\r\n points=\"10.7071068 12.2928932 9.29289322 13.7071068 3.58578644 8 9.29289322 2.29289322 10.7071068 3.70710678 6.41421356 8\"\r\n ></polygon>\r\n </g>\r\n </svg>\r\n </a>\r\n </li>\r\n <li *ngIf=\"showPages[0] > 1\" (click)=\"first()\">\r\n <a>1</a>\r\n </li>\r\n <li *ngIf=\"showPages[0] > 2\" (click)=\"preRange()\">\r\n <a>...</a>\r\n </li>\r\n <li *ngFor=\"let item of showPages\" [ngClass]=\"{ active: item == pageIndex }\">\r\n <a (click)=\"onPageIndexChange(item)\">{{ item }}</a>\r\n </li>\r\n <li *ngIf=\"showPages[showPages.length - 1] < totalPage - 1\" (click)=\"nextRange()\">\r\n <a>...</a>\r\n </li>\r\n <li *ngIf=\"showPages[showPages.length - 1] < totalPage\" (click)=\"last()\">\r\n <a>{{ totalPage }}</a>\r\n </li>\r\n <ng-container *ngIf=\"showTruePageIndex && pageIndex > totalPage && totalPage > 0\">\r\n <li *ngIf=\"pageIndex > totalPage + 1\" class=\"disabled\"><a>...</a></li>\r\n <li class=\"active disabled\">\r\n <a>{{ pageIndex }}</a>\r\n </li>\r\n </ng-container>\r\n <li *ngIf=\"nextLink\" [ngClass]=\"{ disabled: pageIndex == totalPage }\">\r\n <a (click)=\"next()\" class=\"devui-pagination-link\">{{ nextLink }}</a>\r\n </li>\r\n <li *ngIf=\"!nextLink\" [ngClass]=\"{ disabled: pageIndex == totalPage }\">\r\n <a (click)=\"next()\" class=\"devui-pagination-link\">\r\n <svg width=\"1em\" height=\"1.5em\" viewBox=\"0 0 16 16\" version=\"1.1\" xmlns=\"http://www.w3.org/2000/svg\">\r\n <g id=\"\u64CD\u4F5C/collapse2\" stroke=\"none\" stroke-width=\"1\" fill=\"none\" fill-rule=\"evenodd\">\r\n <polygon\r\n id=\"\u8DEF\u5F84\"\r\n fill=\"#293040\"\r\n fill-rule=\"nonzero\"\r\n transform=\"translate(8.146447, 8.000000) scale(-1, 1) translate(-8.146447, -8.000000) \"\r\n points=\"11.7071068 12.2928932 10.2928932 13.7071068 4.58578644 8 10.2928932 2.29289322 11.7071068 3.70710678 7.41421356 8\"\r\n ></polygon>\r\n </g>\r\n </svg>\r\n </a>\r\n </li>\r\n </ng-container>\r\n <ng-container *ngIf=\"lite\">\r\n <li *ngIf=\"preLink\" [ngClass]=\"{ disabled: pageIndex == totalPage }\">\r\n <a (click)=\"prev()\" [attr.aria-label]=\"nextLink\" class=\"devui-pagination-link devui-pagination-link-lite\">{{ preLink }}</a>\r\n </li>\r\n <li *ngIf=\"!preLink\" [ngClass]=\"{ disabled: pageIndex == 1 }\">\r\n <a (click)=\"prev()\" [attr.aria-label]=\"nextLink\" class=\"devui-pagination-link devui-pagination-link-lite \">\r\n <svg width=\"1em\" height=\"1.5em\" viewBox=\"0 0 16 16\" version=\"1.1\" xmlns=\"http://www.w3.org/2000/svg\">\r\n <g id=\"\u64CD\u4F5C/collapse1\" stroke=\"none\" stroke-width=\"1\" fill=\"none\" fill-rule=\"evenodd\">\r\n <polygon\r\n id=\"\u8DEF\u5F84\"\r\n fill=\"#293040\"\r\n fill-rule=\"nonzero\"\r\n points=\"10.7071068 12.2928932 9.29289322 13.7071068 3.58578644 8 9.29289322 2.29289322 10.7071068 3.70710678 6.41421356 8\"\r\n ></polygon>\r\n </g>\r\n </svg>\r\n </a>\r\n </li>\r\n <li *ngIf=\"nextLink\" [ngClass]=\"{ disabled: pageIndex >= totalPage }\">\r\n <a (click)=\"next()\" [attr.aria-label]=\"nextLink\" class=\"devui-pagination-link devui-pagination-link-lite\">{{ nextLink }}</a>\r\n </li>\r\n <li *ngIf=\"!nextLink\" [ngClass]=\"{ disabled: pageIndex >= totalPage }\">\r\n <a (click)=\"next()\" [attr.aria-label]=\"nextLink\" class=\"devui-pagination-link devui-pagination-link-lite \">\r\n <svg width=\"1em\" height=\"1.5em\" viewBox=\"0 0 16 16\" version=\"1.1\" xmlns=\"http://www.w3.org/2000/svg\">\r\n <g id=\"\u64CD\u4F5C/collapse2\" stroke=\"none\" stroke-width=\"1\" fill=\"none\" fill-rule=\"evenodd\">\r\n <polygon\r\n id=\"\u8DEF\u5F84\"\r\n fill=\"#293040\"\r\n fill-rule=\"nonzero\"\r\n transform=\"translate(8.146447, 8.000000) scale(-1, 1) translate(-8.146447, -8.000000) \"\r\n points=\"11.7071068 12.2928932 10.2928932 13.7071068 4.58578644 8 10.2928932 2.29289322 11.7071068 3.70710678 7.41421356 8\"\r\n ></polygon>\r\n </g>\r\n </svg>\r\n </a>\r\n </li>\r\n </ng-container>\r\n </ul>\r\n <div *ngIf=\"canJumpPage\" class=\"devui-jump-container\">\r\n {{ goToText ? goToText : i18nText?.goTo }}\r\n <input\r\n type=\"text\"\r\n class=\"devui-input {{ size ? 'devui-input-' + size : '' }}\"\r\n name=\"pageIndex\"\r\n [(ngModel)]=\"jumpPage\"\r\n (keyup.enter)=\"jump()\"\r\n (keyup)=\"validateInput()\"\r\n />\r\n <div\r\n *ngIf=\"showJumpButton\"\r\n class=\"devui-jump-button {{ size ? 'devui-jump-size-' + size : 'devui-jump-size-default' }}\"\r\n title=\"{{ goToText ? goToText : i18nText?.goTo }}\"\r\n (click)=\"jump()\"\r\n >\r\n <div class=\"devui-pagination-go\"></div>\r\n </div>\r\n </div>\r\n <div class=\"devui-pagination-config\" *ngIf=\"haveConfigMenu\">\r\n <div class=\"devui-setup-icon\" (click)=\"$event.stopPropagation(); toggleMenu()\">\r\n <svg\r\n width=\"16px\"\r\n height=\"16px\"\r\n viewBox=\"0 0 16 16\"\r\n version=\"1.1\"\r\n xmlns=\"http://www.w3.org/2000/svg\"\r\n xmlns:xlink=\"http://www.w3.org/1999/xlink\"\r\n >\r\n <g stroke=\"none\" stroke-width=\"1\" fill=\"none\" fill-rule=\"evenodd\">\r\n <path\r\n d=\"M8,12 C10.209139,12 12,10.209139 12,8 C12,5.790861 10.209139,4 8,4 C5.790861,4 4,5.790861 4,8 C4,10.209139 5.790861,12 8,12 Z M4.52067059,3.11124369 C5.24511171,2.59473146 6.08922816,2.23522497 7.00334609,2.08239805 C7.00112987,2.05522493 7,2.02774441 7,2 L7,1 C7,0.44771525 7.44771525,1.01453063e-16 8,0 C8.55228475,-1.01453063e-16 9,0.44771525 9,1 L9,2 C9,2.02774441 8.99887013,2.05522493 8.99665391,2.08239805 C9.91077184,2.23522497 10.7548883,2.59473146 11.4793294,3.11124369 C11.4970673,3.09033559 11.5158021,3.06998434 11.5355339,3.05025253 L12.2426407,2.34314575 C12.633165,1.95262146 13.26633,1.95262146 13.6568542,2.34314575 C14.0473785,2.73367004 14.0473785,3.36683502 13.6568542,3.75735931 L12.9497475,4.46446609 C12.9300157,4.4841979 12.9096644,4.50293273 12.8887563,4.52067059 C13.4052685,5.24511171 13.764775,6.08922816 13.917602,7.00334609 C13.9447751,7.00112987 13.9722556,7 14,7 L15,7 C15.5522847,7 16,7.44771525 16,8 C16,8.55228475 15.5522847,9 15,9 L14,9 C13.9722556,9 13.9447751,8.99887013 13.917602,8.99665391 C13.764775,9.91077184 13.4052685,10.7548883 12.8887563,11.4793294 C12.9096644,11.4970673 12.9300157,11.5158021 12.9497475,11.5355339 L13.6568542,12.2426407 C14.0473785,12.633165 14.0473785,13.26633 13.6568542,13.6568542 C13.26633,14.0473785 12.633165,14.0473785 12.2426407,13.6568542 L11.5355339,12.9497475 C11.5158021,12.9300157 11.4970673,12.9096644 11.4793294,12.8887563 C10.7548883,13.4052685 9.91077184,13.764775 8.99665391,13.917602 C8.99887013,13.9447751 9,13.9722556 9,14 L9,15 C9,15.5522847 8.55228475,16 8,16 C7.44771525,16 7,15.5522847 7,15 L7,14 C7,13.9722556 7.00112987,13.9447751 7.00334609,13.917602 C6.08922816,13.764775 5.24511171,13.4052685 4.52067059,12.8887563 C4.50293273,12.9096644 4.4841979,12.9300157 4.46446609,12.9497475 L3.75735931,13.6568542 C3.36683502,14.0473785 2.73367004,14.0473785 2.34314575,13.6568542 C1.95262146,13.26633 1.95262146,12.633165 2.34314575,12.2426407 L3.05025253,11.5355339 C3.06998434,11.5158021 3.09033559,11.4970673 3.11124369,11.4793294 C2.59473146,10.7548883 2.23522497,9.91077184 2.08239805,8.99665391 C2.05522493,8.99887013 2.02774441,9 2,9 L1,9 C0.44771525,9 2.4125371e-16,8.55228475 3.83475851e-17,8 C-1.6455854e-16,7.44771525 0.44771525,7 1,7 L2,7 C2.02774441,7 2.05522493,7.00112987 2.08239805,7.00334609 C2.23522497,6.08922816 2.59473146,5.24511171 3.11124369,4.52067059 C3.09033559,4.50293273 3.06998434,4.4841979 3.05025253,4.46446609 L2.34314575,3.75735931 C1.95262146,3.36683502 1.95262146,2.73367004 2.34314575,2.34314575 C2.73367004,1.95262146 3.36683502,1.95262146 3.75735931,2.34314575 L4.46446609,3.05025253 C4.4841979,3.06998434 4.50293273,3.09033559 4.52067059,3.11124369 Z M8,9 C7.44771525,9 7,8.55228475 7,8 C7,7.44771525 7.44771525,7 8,7 C8.55228475,7 9,7.44771525 9,8 C9,8.55228475 8.55228475,9 8,9 Z\"\r\n id=\"\u5F62\u72B6\"\r\n fill=\"#293040\"\r\n fill-rule=\"nonzero\"\r\n ></path>\r\n </g>\r\n </svg>\r\n </div>\r\n <div *ngIf=\"showConfig\" class=\"devui-config-container\">\r\n <ng-content></ng-content>\r\n <div class=\"devui-pagination-config-item devui-page-size-config\" *ngIf=\"canChangePageSize\">\r\n <div class=\"devui-config-item-title\">\u6BCF\u9875\u6761\u6570</div>\r\n <div class=\"devui-page-number\">\r\n <ng-container *ngFor=\"let size of pageSizeOptions\">\r\n <div class=\"number\" [ngClass]=\"{ choosed: size === pageSize }\" (click)=\"onPageSizeChange(size)\">\r\n {{ size }}\r\n </div>\r\n </ng-container>\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n</div>\r\n",
exportAs: 'pagination',
changeDetection: ChangeDetectionStrategy.OnPush,
styles: [":host{display:block}.devui-pagination .devui-page-size{display:inline-block;max-width:100px;vertical-align:middle;margin:0 10px 0 0;position:relative}.devui-pagination .devui-page-size.devui-page-size-sm{max-width:60px}.devui-pagination .devui-page-size.devui-page-size-lg{max-width:100px}.devui-pagination .devui-total-size{display:inline-block;position:relative;margin:0 20px 0 0;color:#575d6c}.devui-pagination .devui-pagination-list{display:inline-block;margin:20px 0}.devui-pagination .devui-pagination-list>.disabled>a,.devui-pagination .devui-pagination-list>.disabled>a:focus,.devui-pagination .devui-pagination-list>.disabled>a:hover{cursor:not-allowed}.devui-pagination .devui-pagination-list li{display:inline}.devui-pagination .devui-pagination-list li.disabled a{background:#fff;opacity:.3}.devui-pagination .devui-pagination-list li:not(.disabled){cursor:pointer}.devui-pagination .devui-pagination-list li:not(.disabled) a:focus,.devui-pagination .devui-pagination-list li:not(.disabled) a:hover,.devui-pagination .devui-pagination-list li:not(.disabled) span:focus,.devui-pagination .devui-pagination-list li:not(.disabled) span:hover{background:#f2f5fc}.devui-pagination .devui-pagination-list li:not(.disabled).active a{background:#5e7ce0;color:#fff;cursor:default}.devui-pagination .devui-pagination-list li:not(.disabled) a.devui-pagination-link:hover svg g polygon{fill:#5e7ce0}.devui-pagination .devui-pagination-list li:not(.disabled) a.devui-pagination-link-lite:hover{border:1px solid #adb0b8!important}.devui-pagination .devui-pagination-list .devui-pagination-link svg{vertical-align:bottom}.devui-pagination .devui-pagination-list .devui-pagination-link svg g polygon{fill:#252b3a}.devui-pagination .devui-pagination-list .devui-pagination-link-lite{border:1px solid transparent!important;border-radius:2px}.devui-pagination .devui-pagination-list>li>a{margin-left:5px;padding:5px 12px;line-height:1.42857143}.devui-pagination .devui-pagination-sm>li>a{padding:4px 10px;line-height:1.66666667;font-size:12px}.devui-pagination .devui-pagination-lg>li>a{padding:9px 17px;font-size:16px;line-height:1.3333333}.devui-pagination .devui-pagination-list>li:first-child>a,.devui-pagination .devui-pagination-list>li:last-child>a{padding:4px 11px;border-radius:1px;border:1px solid #adb0b8}.devui-pagination .devui-pagination-sm>li:first-child>a,.devui-pagination .devui-pagination-sm>li:last-child>a{padding:3px 4px;border-radius:1px;border:1px solid #adb0b8}.devui-pagination .devui-pagination-lg>li:first-child>a,.devui-pagination .devui-pagination-lg>li:last-child>a{padding:8px 16px;border-radius:1px;border:1px solid #adb0b8}.devui-pagination .devui-jump-container{display:inline-block;position:relative;margin:0 10px}.devui-pagination .devui-jump-container .devui-input{display:inline-block;width:50px;margin-right:5px}.devui-pagination .devui-jump-button{display:inline-block;vertical-align:bottom;border-radius:1px;border:1px solid #adb0b8;cursor:pointer}.devui-pagination .devui-jump-button .devui-pagination-go{width:0;height:0;border-top-style:solid;border-left-style:solid;border-bottom-style:solid}.devui-pagination .devui-jump-button:hover{border-color:#344899}.devui-pagination .devui-jump-button:hover .devui-pagination-go{border-left-color:#344899}.devui-pagination .devui-jump-size-default{width:34px;height:34px}.devui-pagination .devui-jump-size-default .devui-pagination-go{width:0;height:0;border-top:12px solid transparent;border-left:12px solid #575d6c;border-bottom:12px solid transparent;margin:4px auto}.devui-pagination .devui-jump-size-sm{width:24px;height:24px}.devui-pagination .devui-jump-size-sm .devui-pagination-go{width:0;height:0;border-top:8px solid transparent;border-left:8px solid #575d6c;border-bottom:8px solid transparent;margin:3px auto}.devui-pagination .devui-jump-size-lg{width:46px;height:46px}.devui-pagination .devui-jump-size-lg .devui-pagination-go{width:0;height:0;border-top:16px solid transparent;border-left:16px solid #575d6c;border-bottom:16px solid transparent;margin:6px auto}.devui-pagination .devui-lite-paginator{display:inline-block;margin-right:5px;width:100px}.devui-pagination .devui-pagination-config{color:#252b3a;position:relative;display:inline-block;vertical-align:middle;margin:0 5px}.devui-pagination .devui-pagination-config .devui-setup-icon{line-height:30px;cursor:pointer;display:-webkit-box;display:flex}.devui-pagination .devui-pagination-config .devui-setup-icon svg g path{fill:#252b3a}.devui-pagination .devui-pagination-config .devui-config-container{padding:5px 0;box-shadow:0 0 6px 1px rgba(41,48,64,.2);border-radius:2px;width:150px;background-color:#fff;line-height:26px;position:absolute;left:-136px;top:28px;cursor:auto;z-index:1000;-moz-user-select:none;-webkit-user-select:none;-ms-user-select:none;user-select:none}.devui-pagination .devui-pagination-config .devui-config-container .devui-pagination-config-item.devui-page-size-config{border-bottom:none}.devui-pagination .devui-pagination-config .devui-config-container .devui-pagination-config-item{padding-bottom:8px;padding-top:5px;border-bottom:1px solid #dfe1e6}.devui-pagination .devui-pagination-config .devui-config-container .devui-pagination-config-item .devui-config-item-title{color:#575d6c;padding-left:10px;font-size:12px;line-height:22px}.devui-pagination .devui-pagination-config .devui-config-container .devui-pagination-config-item .devui-page-number{padding-left:10px;margin-top:4px;display:-webkit-box;display:flex;display:-ms-flexbox}.devui-pagination .devui-pagination-config .devui-config-container .devui-pagination-config-item .devui-page-number div{color:#252b3a;cursor:pointer;border-top:1px solid #adb0b8;border-bottom:1px solid #adb0b8;border-right:1px solid #adb0b8;text-align:center;height:26px;width:26px}.devui-pagination .devui-pagination-config .devui-config-container .devui-pagination-config-item .devui-page-number div:hover{background-color:#f2f5fc}.devui-pagination .devui-pagination-config .devui-config-container .devui-pagination-config-item .devui-page-number div:first-child{border-left:1px solid #adb0b8}.devui-pagination .devui-pagination-config .devui-config-container .devui-pagination-config-item .devui-page-number .choosed,.devui-pagination .devui-pagination-config .devui-config-container .devui-pagination-config-item .devui-page-number .devui-page-number div.choosed{color:#5e7ce0;background-color:#f2f5fc!important;cursor:auto!important}:host ::ng-deep .devui-input-sm{height:24px;padding:5px;font-size:14px;line-height:18px;border-radius:0}:host ::ng-deep .devui-select-sm{min-height:24px}"]
}] }
];
/** @nocollapse */
PaginationComponent.ctorParameters = () => [
{ type: ChangeDetectorRef },
{ type: I18nService }
];
PaginationComponent.propDecorators = {
pageSize: [{ type: Input }],
pageSizeOptions: [{ type: Input }],
pageIndex: [{ type: Input }],
pageIndexChange: [{ type: Output }],
pageSizeChange: [{ type: Output }],
maxItems: [{ type: Input }],
preLink: [{ type: Input }],
nextLink: [{ type: Input }],
size: [{ type: Input }],
canJumpPage: [{ type: Input }],
canChangePageSize: [{ type: Input }],
canViewTotal: [{ type: Input }],
cssClass: [{ type: Input }],
showJumpButton: [{ type: Input }],
showTruePageIndex: [{ type: Input }],
id: [{ type: Input }],
totalItemText: [{ type: Input }],
goToText: [{ type: Input }],
selectDirection: [{ type: Input }],
lite: [{ type: Input }],
showPageSelector: [{ type: Input }],
haveConfigMenu: [{ type: Input }],
litePaginator: [{ type: ViewChild, args: ['litePaginator', { static: false },] }],
total: [{ type: Input }]
};
if (false) {
/** @type {?} */
PaginationComponent.EFFECT_PAGE_RANGE_KEYS;
/**
* 【可选】每页显示最大条目数量,默认10条
* @type {?}
*/
PaginationComponent.prototype.pageSize;
/**
* 【可选】用于选择更改分页每页最大条目数量的下拉框的数据源,默认为`[5, 10, 20, 50]`
* @type {?}
*/
PaginationComponent.prototype.pageSizeOptions;
/**
* 【可选】初始化页码
* @type {?}
*/
PaginationComponent.prototype.pageIndex;
/**
* 页码变化的回调
* @type {?}
*/
PaginationComponent.prototype.pageIndexChange;
/**
* 每页最大条目数量变更时的回调
* @type {?}
*/
PaginationComponent.prototype.pageSizeChange;
/**
* 分页最多显示几个按钮,默认10个
* @type {?}
*/
PaginationComponent.prototype.maxItems;
/**
* 【可选】前一页按钮文字,默认为左箭头图标
* @type {?}
*/
PaginationComponent.prototype.preLink;
/**
* 【可选】后一页按钮文字,默认为左箭头图标
* @type {?}
*/
PaginationComponent.prototype.nextLink;
/**
* 【可选】分页组件尺寸
* @type {?}
*/
PaginationComponent.prototype.size;
/**
* 【可选】是否显示分页输入跳转
* @type {?}
*/
PaginationComponent.prototype.canJumpPage;
/**
* 【可选】是否显示用于选择更改分页每页最大条目数量的下拉框
* @type {?}
*/
PaginationComponent.prototype.canChangePageSize;
/**
* 【可选】是否显示总条目
* @type {?}
*/
PaginationComponent.prototype.canViewTotal;
/** @type {?} */
PaginationComponent.prototype.cssClass;
/** @type {?} */
PaginationComponent.prototype.showJumpButton;
/** @type {?} */
PaginationComponent.prototype.showTruePageIndex;
/** @type {?} */
PaginationComponent.prototype.id;
/** @type {?} */
PaginationComponent.prototype.showPages;
/** @type {?} */
PaginationComponent.prototype.totalPage;
/** @type {?} */
PaginationComponent.prototype._total;
/** @type {?} */
PaginationComponent.prototype.jumpPage;
/** @type {?} */
PaginationComponent.prototype.totalItemText;
/** @type {?} */
PaginationComponent.prototype.goToText;
/**
* 下拉菜单默认方向
* @type {?}
*/
PaginationComponent.prototype.selectDirection;
/**
* 极简模式开关
* @type {?}
*/
PaginationComponent.prototype.lite;
/** @type {?} */
PaginationComponent.prototype.showPageSelector;
/** @type {?} */
PaginationComponent.prototype.haveConfigMenu;
/** @type {?} */
PaginationComponent.prototype.litePaginatorIndex;
/** @type {?} */
PaginationComponent.prototype.litePaginatorOptions;
/**
* @type {?}
* @private
*/
PaginationComponent.prototype.litePaginatorOptionsLengthCache;
/** @type {?} */
PaginationComponent.prototype.showConfig;
/** @type {?} */
PaginationComponent.prototype.litePaginator;
/**
* @type {?}
* @private
*/
PaginationComponent.prototype.configButtonLoseFocusHandler;
/**
* @type {?}
* @private
*/
PaginationComponent.prototype.loseFocusListener;
/** @type {?} */
PaginationComponent.prototype.i18nText;
/** @type {?} */
PaginationComponent.prototype.i18nSubscription;
/**
* @type {?}
* @private
*/
PaginationComponent.prototype.ref;
/**
* @type {?}
* @private
*/
PaginationComponent.prototype.i18n;
}
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicGFnaW5hdGlvbi5jb21wb25lbnQuanMiLCJzb3VyY2VSb290Ijoibmc6Ly9uZy1kZXZ1aS9wYWdpbmF0aW9uLyIsInNvdXJjZXMiOlsicGFnaW5hdGlvbi5jb21wb25lbnQudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7QUFBQSxPQUFPLEVBRUwsdUJBQXVCLEVBQ3ZCLGlCQUFpQixFQUNqQixTQUFTLEVBQ1QsVUFBVSxFQUNWLFlBQVksRUFDWixLQUFLLEVBR0wsTUFBTSxFQUVOLFNBQVMsRUFDVixNQUFNLGVBQWUsQ0FBQztBQUN2QixPQUFPLEVBQUUsU0FBUyxFQUFnQixNQUFNLE1BQU0sQ0FBQztBQUMvQyxPQUFPLEVBQWlCLFdBQVcsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQVMzRCxNQUFNLE9BQU8sbUJBQW1COzs7OztJQXFGOUIsWUFBcUIsR0FBc0IsRUFBVSxJQUFpQjtRQUFqRCxRQUFHLEdBQUgsR0FBRyxDQUFtQjtRQUFVLFNBQUksR0FBSixJQUFJLENBQWE7Ozs7UUEvRTdELGFBQVEsR0FBRyxFQUFFLENBQUM7Ozs7UUFJZCxvQkFBZSxHQUFhLENBQUMsQ0FBQyxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxDQUFDLENBQUM7Ozs7UUFJNUMsY0FBUyxHQUFHLENBQUMsQ0FBQzs7OztRQUliLG9CQUFlLEdBQUcsSUFBSSxZQUFZLEVBQVUsQ0FBQzs7OztRQUk3QyxtQkFBYyxHQUFHLElBQUksWUFBWSxFQUFVLENBQUM7Ozs7UUFJN0MsYUFBUSxHQUFHLEVBQUUsQ0FBQzs7OztRQVlkLFNBQUksR0FBcUIsRUFBRSxDQUFDOztRQWU1QixtQkFBYyxHQUFHLEtBQUssQ0FBQzs7UUFFdkIsc0JBQWlCLEdBQUcsS0FBSyxDQUFDO1FBRW5DLGNBQVMsR0FBRyxFQUFFLENBQUM7UUFDZixjQUFTLEdBQUcsQ0FBQyxDQUFDO1FBQ2QsV0FBTSxHQUFHLENBQUMsQ0FBQztRQUNYLGFBQVEsR0FBRyxJQUFJLENBQUM7Ozs7UUFRUCxvQkFBZSxH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LCtDQUErQjs7Ozs7SUFDbEIsa0NBQThCOzs7OztJQUFFLG1DQUF5QiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7XHJcbiAgQWZ0ZXJWaWV3SW5pdCxcclxuICBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneSxcclxuICBDaGFuZ2VEZXRlY3RvclJlZixcclxuICBDb21wb25lbnQsXHJcbiAgRWxlbWVudFJlZixcclxuICBFdmVudEVtaXR0ZXIsXHJcbiAgSW5wdXQsXHJcbiAgT25DaGFuZ2VzLFxyXG4gIE9uRGVzdHJveSxcclxuICBPdXRwdXQsXHJcbiAgU2ltcGxlQ2hhbmdlcyxcclxuICBWaWV3Q2hpbGRcclxufSBmcm9tICdAYW5ndWxhci9jb3JlJztcclxuaW1wb3J0IHsgZnJvbUV2ZW50LCBTdWJzY3JpcHRpb24gfSBmcm9tICdyeGpzJztcclxuaW1wb3J0IHsgSTE4bkludGVyZmFjZSwgSTE4blNlcnZpY2UgfSBmcm9tICduZy1kZXZ1aS9pMThuJztcclxuXHJcbkBDb21wb25lbnQoe1xyXG4gIHNlbGVjdG9yOiAnZC1wYWdpbmF0aW9uJyxcclxuICBzdHlsZVVybHM6IFsnLi9wYWdpbmF0aW9uLmNvbXBvbmVudC5zY3NzJ10sXHJcbiAgdGVtcGxhdGVVcmw6ICcuL3BhZ2luYXRpb24uY29tcG9uZW50Lmh0bWwnLFxyXG4gIGV4cG9ydEFzOiAncGFnaW5hdGlvbicsXHJcbiAgY2hhbmdlRGV0ZWN0aW9uOiBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneS5PblB1c2hcclxufSlcclxuZXhwb3J0IGNsYXNzIFBhZ2luYXRpb25Db21wb25lbnQgaW1wbGVtZW50cyBPbkNoYW5nZXMsIEFmdGVyVmlld0luaXQsIE9uRGVzdHJveSB7XHJcbiAgc3RhdGljIEVGRkVDVF9QQUdFX1JBTkdFX0tFWVMgPSBbJ3RvdGFsJywgJ3BhZ2VTaXplJywgJ3BhZ2VJbmRleCcsICdtYXhJdGVtcyddO1xyXG5cclxuICAvKipcclxuICAgKiDjgJDlj6/pgInjgJHmr4/pobXmmL7npLrmnIDlpKfmnaHnm67mlbDph4/vvIzpu5jorqQxMOadoVxyXG4gICAqL1xyXG4gIEBJbnB1dCgpIHBhZ2VTaXplID0gMTA7XHJcbiAgLyoqXHJcbiAgICog44CQ5Y+v6YCJ44CR55So5LqO6YCJ5oup5pu05pS55YiG6aG15q+P6aG15pyA5aSn5p2h55uu5pWw6YeP55qE5LiL5ouJ5qGG55qE5pWw5o2u5rqQ77yM6buY6K6k5Li6YFs1LCAxMCwgMjAsIDUwXWBcclxuICAgKi9cclxuICBASW5wdXQoKSBwYWdlU2l6ZU9wdGlvbnM6IG51bWJlcltdID0gWzUsIDEwLCAyMCwgNTBdO1xyXG4gIC8qKlxyXG4gICAqIOOAkOWPr+mAieOAkeWIneWni+WMlumhteeggVxyXG4gICAqL1xyXG4gIEBJbnB1dCgpIHBhZ2VJbmRleCA9IDE7XHJcbiAgLyoqXHJcbiAgICog6aG156CB5Y+Y5YyW55qE5Zue6LCDXHJcbiAgICovXHJcbiAgQE91dHB1dCgpIHBhZ2VJbmRleENoYW5nZSA9IG5ldyBFdmVudEVtaXR0ZXI8bnVtYmVyPigpO1xyXG4gIC8qKlxyXG4gICAqIOavj+mhteacgOWkp+adoeebruaVsOmHj+WPmOabtOaXtueahOWbnuiwg1xyXG4gICAqL1xyXG4gIEBPdXRwdXQoKSBwYWdlU2l6ZUNoYW5nZSA9IG5ldyBFdmVudEVtaXR0ZXI8bnVtYmVyPigpO1xyXG4gIC8qKlxyXG4gICAqIOWIhumhteacgOWkmuaYvuekuuWHoOS4quaMiemSru+8jOm7mOiupDEw5LiqXHJcbiAgICovXHJcbiAgQElucHV0KCkgbWF4SXRlbXMgPSAxMDtcclxuICAvKipcclxuICAgKiDjgJDlj6/pgInjgJHliY3kuIDpobXmjInpkq7mloflrZfvvIzpu5jorqTkuLrlt6bnrq3lpLTlm77moIdcclxuICAgKi9cclxuICBASW5wdXQoKSBwcmVMaW5rOiBzdHJpbmc7XHJcbiAgLyoqXHJcbiAgICog44CQ5Y+v6YCJ44CR5ZCO5LiA6aG15oyJ6ZKu5paH5a2X77yM6buY6K6k5Li65bem566t5aS05Zu+5qCHXHJcbiAgICovXHJcbiAgQElucHV0KCkgbmV4dExpbms6IHN0cmluZztcclxuICAvKipcclxuICAgKiDjgJDlj6/pgInjgJHliIbpobXnu4Tku7blsLrlr7hcclxuICAgKi9cclxuICBASW5wdXQoKSBzaXplOiAnJyB8ICdzbScgfCAnbGcnID0gJyc7XHJcbiAgLyoqXHJcbiAgICog44CQ5Y+v6YCJ44CR5piv5ZCm5pi+56S65YiG6aG16L6T5YWl6Lez6L2sXHJcbiAgICovXHJcbiAgQElucHV0KCkgY2FuSnVtcFBhZ2U6IGJvb2xlYW47XHJcbiAgLyoqXHJcbiAgICog44CQ5Y+v6YCJ44CR5piv5ZCm5pi+56S655So5LqO6YCJ5oup5pu05pS55YiG6aG15q+P6aG15pyA5aSn5p2h55uu5pWw6YeP55qE5LiL5ouJ5qGGXHJcbiAgICovXHJcbiAgQElucHV0KCkgY2FuQ2hhbmdlUGFnZVNpemU6IGJvb2xlYW47XHJcbiAgLyoqXHJcbiAgICog44CQ5Y+v6YCJ44CR5piv5ZCm5pi+56S65oC75p2h55uuXHJcbiAgICovXHJcbiAgQElucHV0KCkgY2FuVmlld1RvdGFsOiBib29sZWFuO1xyXG4gIEBJbnB1dCgpIGNzc0NsYXNzOiBzdHJpbmc7XHJcbiAgLy8g5piv5ZCm5pi+56S66Lez6L2s5oyJ6ZKu77yM6buY6K6k5LiN5pi+56S6XHJcbiAgQElucHV0KCkgc2hvd0p1bXBCdXR0b24gPSBmYWxzZTtcclxuICAvLyDnv7vov4fkuobpobXnmoTpnIDmsYLopoHmmL7npLrlvZPliY3nnJ/lrp7pobXpnaJcclxuICBASW5wdXQoKSBzaG93VHJ1ZVBhZ2VJbmRleCA9IGZhbHNlO1xyXG4gIEBJbnB1dCgpIGlkO1xyXG4gIHNob3dQYWdlcyA9IFtdO1xyXG4gIHRvdGFsUGFnZSA9IDE7XHJcbiAgX3RvdGFsID0gMDtcclxuICBqdW1wUGFnZSA9IG51bGw7XHJcblxyXG5cclxuICBASW5wdXQoKSB0b3RhbEl0ZW1UZXh0OiBzdHJpbmc7XHJcbiAgQElucHV0KCkgZ29Ub1RleHQ6IHN0cmluZztcclxuICAvKipcclxuICAgKiDkuIvmi4noj5zljZXpu5jorqTmlrnlkJFcclxuICAgKi9cclxuICBASW5wdXQoKSBzZWxlY3REaXJlY3Rpb246ICdhdXRvJyB8ICd1cCcgfCAnZ