/**----------------------------------------------------------------------------------------- * Copyright © 2026 Progress Software Corporation. All rights reserved. * Licensed under commercial license. See LICENSE.md in the project root for more information *-------------------------------------------------------------------------------------------*/ import { EventEmitter, OnChanges, SimpleChanges, OnInit, OnDestroy, ElementRef, Renderer2, NgZone, AfterViewInit, QueryList, ChangeDetectorRef } from '@angular/core'; import { PageChangeEvent } from './change-event-args.interface'; import { PagerTemplateDirective } from "./pager-template.directive"; import { PagerContextService } from "./pager-context.service"; import { PageSizeChangeEvent } from './pagesizechange-event'; import { PageSizeItem } from './pagesize-item.interface'; import { AdaptiveMode } from '../util'; import { PagerType } from './common/pager-type'; import { LocalizationService } from '@progress/kendo-angular-l10n'; import { PagerNavigationService } from './navigation.service'; import { PagerSize } from './common/pager-size'; import { PagerPageSizesComponent } from './pager-page-sizes.component'; import { PagerInputComponent } from './pager-input.component'; import * as i0 from "@angular/core"; /** * Represents the Kendo UI Pager component for Angular. * Enables you to split a set of data into pages, providing a flexible and intuitive UI. * * @example * ```ts * @Component({ * selector: 'my-app', * template: ` * * * ` * }) * export class AppComponent { * public total = 200; * public skip = 0; * public pageSize = 10; * * public onPageChange(event: PageChangeEvent) { * this.skip = event.skip; * } * } * ``` * * @remarks * Supported children components are: * {@link PagerNumericButtonsComponent}, * {@link PagerInputComponent}, * {@link PagerPageSizesComponent}, * {@link PagerSpacerComponent}, * {@link PagerPrevButtonsComponent}, * {@link PagerNextButtonsComponent}, * {@link PagerInfoComponent}, * {@link CustomMessagesComponent} */ export declare class PagerComponent implements OnChanges, AfterViewInit, OnInit, OnDestroy { private pagerContext; private element; private localization; private renderer; private ngZone; private cdr; private navigationService; /** * Represents the collection of pager template directives. */ template: QueryList; set numericButtons(buttons: ElementRef); set pagerInput(input: ElementRef); pagerInputComponent: PagerInputComponent; set pageSizes(sizes: ElementRef); pageSizesComponent: PagerPageSizesComponent; /** * @hidden */ externalTemplate: any; /** * Specifies the total number of data items in the collection. * * @default 0 */ total: number; /** * Specifies the number of data items to skip. * * @default 0 */ skip: number; /** * Specifies the number of data items per page. */ pageSize: number; /** * Specifies the maximum number of numeric buttons before the buttons are collapsed. * * @default 10 */ buttonCount: number; /** * Determines whether to display information about the current page and the total number of records. * * @default true */ info: boolean; /** * Specifies the type of the Pager. * * @default 'numeric' */ type: PagerType; /** * Displays a dropdown for selecting the page size. * When set to `true`, the dropdown contains the default list of options - 5, 10, 20. * To customize the list of options, set `pageSizeValues` to an array of the desired values. * The array can contain numbers and [PageSizeItem](https://www.telerik.com/kendo-angular-ui/components/pager/api/pagesizeitem) objects. */ set pageSizeValues(value: boolean | number[] | PageSizeItem[]); get pageSizeValues(): boolean | number[] | PageSizeItem[]; /** * Determines whether to display the **Previous** and **Next** buttons. * * @default true */ previousNext: boolean; /** * Determines whether users can use dedicated shortcuts to interact with the Pager ([see example](https://www.telerik.com/kendo-angular-ui/components/pager/keyboard-navigation)). * By default, navigation is enabled. To disable it and make the Pager content accessible in the normal tab sequence, set the property to `false`. * @default true * * @remarks * This property is related to accessibility. */ set navigable(value: boolean); get navigable(): boolean; /** * Specifies the padding of all Pager elements. The default value is set by the Kendo theme. */ set size(size: PagerSize); get size(): PagerSize; /** * Determines whether the Pager responsive functionality is enabled ([see example](https://www.telerik.com/kendo-angular-ui/components/pager/responsive-design)). * * @default true */ responsive: boolean; /** * Determines whether the Pager adaptiveness functionality is enabled ([see example](https://www.telerik.com/kendo-angular-ui/components/pager/adaptiveness)). * * @default 'none' */ adaptiveMode: AdaptiveMode; /** * Fires when the current page of the Pager changes ([see example](https://www.telerik.com/kendo-angular-ui/components/pager)). * You have to handle the event and page the data. */ pageChange: EventEmitter; /** * Fires when the page size of the Pager changes. * You have to handle the event and page the data. * If the event is prevented, the page size remains unchanged ([see example](https://www.telerik.com/kendo-angular-ui/components/pager/events)). */ pageSizeChange: EventEmitter; /** * @hidden */ pagerInputVisibilityChange: EventEmitter; /** * @hidden */ pageTextVisibilityChange: EventEmitter; /** * @hidden */ itemsTextVisibilityChange: EventEmitter; pagerClass: boolean; get responsiveClass(): boolean; widgetRole: string; roleDescription: string; keyShortcuts: string; get hostTabindex(): string; get dir(): string; /** * @hidden */ focusHandler(ev: any): void; get totalPages(): number; get currentPage(): number; get templateContext(): any; /** * @hidden */ get showPageText(): boolean; set showPageText(value: boolean); /** * @hidden */ get showItemsText(): boolean; set showItemsText(value: boolean); /** * @hidden */ get showInput(): boolean; set showInput(value: boolean); /** * @hidden */ initialized: boolean; private subscriptions; private _templateContext; _pageSizeValues: number[] | PageSizeItem[]; private direction; private isInnerNavigationEnabled; private _navigable; private _size; private _showInput; private _showPageText; private _showItemsText; private _isAllSelected; /** * Stores the measurements of various Pager elements. * These dimensions are used for responsive layout calculations. * @hidden */ private pagerDimensions; constructor(pagerContext: PagerContextService, element: ElementRef, localization: LocalizationService, renderer: Renderer2, ngZone: NgZone, cdr: ChangeDetectorRef, navigationService: PagerNavigationService); ngOnInit(): void; /** * Gets the maximum number of items displayed on the current page. */ get maxItems(): number; ngAfterViewInit(): void; ngOnChanges(changes: SimpleChanges): void; ngOnDestroy(): void; /** * @hidden */ changePage(event: PageChangeEvent): void; /** * @hidden */ changePageSize(event: PageSizeChangeEvent): void; /** * @hidden */ onPageSizeChange(event: PageSizeChangeEvent): void; /** * @hidden */ resizeHandler: (compareWidth?: boolean) => void; private sizesDropDownElement; private pagerInputElement; private pagerInfoElement; private numericButtonsElement; private responsiveDropDownElement; private responsiveDropDownTextElement; private responsivePageTextElement; private responsiveInfoTextElement; private responsiveNumericButtonsElement; /** * Contains all elements that are subject to responsive toggling. * These elements will be shown or hidden based on the available space. * The order of elements in the array defines the priority of visibility. * This array allows us to work with the elements without performing element-specific logic in other methods. */ private responsiveElements; private get ariaLabel(); private keyDownHandler; private innerNavigationChange; private handleClasses; private showElements; private isElementVisible; private hideElement; private showElement; private measureAllTextWidths; private showNumericButtonsResponsive; private get showPageSizes(); private setPagerDimensions; static ɵfac: i0.ɵɵFactoryDeclaration; static ɵcmp: i0.ɵɵComponentDeclaration; }