UNPKG

@duoduo-oba/ng-devui

Version:

DevUI components based on Angular

583 lines 60.7 kB
/** * @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