UNPKG

@ngx-uk-frontend/core

Version:

Core utilities and shared functionality for ngx-uk-frontend libraries

71 lines (70 loc) 3.74 kB
import * as i0 from "@angular/core"; /** * Internal interface for pagination items */ export interface PageItem { /** The number/text to display for the item */ number: string; /** Whether this is the current active page */ current?: boolean; /** Whether to display this item as an ellipsis */ ellipsis?: boolean; /** Actual page number for this item */ pageNumber?: number; /** Unique identifier for tracking in loops */ id: string; } /** * Base directive for pagination components. * Contains common functionality shared between different design system implementations. */ export declare class PaginationDirective { /** Total number of items */ readonly itemCount: import("@angular/core").InputSignal<number>; /** Number of items per page */ readonly itemsPerPage: import("@angular/core").InputSignal<number>; /** Current page number (1-based) */ readonly currentPage: import("@angular/core").InputSignal<number>; /** Title for the previous button */ readonly previousTitle: import("@angular/core").InputSignal<string>; /** Label for the previous button (additional context) */ readonly previousLabel: import("@angular/core").InputSignal<string | null>; /** Title for the next button */ readonly nextTitle: import("@angular/core").InputSignal<string>; /** Label for the next button (additional context) */ readonly nextLabel: import("@angular/core").InputSignal<string | null>; /** Output event when a pagination item is clicked */ readonly pageChange: import("@angular/core").OutputEmitterRef<number>; /** Output event when the previous link is clicked */ readonly previousClick: import("@angular/core").OutputEmitterRef<void>; /** Output event when the next link is clicked */ readonly nextClick: import("@angular/core").OutputEmitterRef<void>; /** Counter for generating unique IDs */ private ellipsisCounter; /** Computed total number of pages */ readonly totalPages: import("@angular/core").Signal<number>; /** Computed flag for whether previous button should be shown */ readonly hasPreviousPage: import("@angular/core").Signal<boolean>; /** Computed flag for whether next button should be shown */ readonly hasNextPage: import("@angular/core").Signal<boolean>; /** Computed pagination items */ readonly computedItems: import("@angular/core").Signal<PageItem[]>; /** * Handle page number click */ onPageClick(item: PageItem): void; /** * Creates a page item for the specified page number */ protected createPageItem(pageNumber: number): PageItem; /** * Creates an ellipsis item */ protected createEllipsisItem(): PageItem; /** * Creates an array of sequential page items */ protected createSequentialItems(start: number, end: number): PageItem[]; static ɵfac: i0.ɵɵFactoryDeclaration<PaginationDirective, never>; static ɵdir: i0.ɵɵDirectiveDeclaration<PaginationDirective, never, never, { "itemCount": { "alias": "itemCount"; "required": false; "isSignal": true; }; "itemsPerPage": { "alias": "itemsPerPage"; "required": false; "isSignal": true; }; "currentPage": { "alias": "currentPage"; "required": false; "isSignal": true; }; "previousTitle": { "alias": "previousTitle"; "required": false; "isSignal": true; }; "previousLabel": { "alias": "previousLabel"; "required": false; "isSignal": true; }; "nextTitle": { "alias": "nextTitle"; "required": false; "isSignal": true; }; "nextLabel": { "alias": "nextLabel"; "required": false; "isSignal": true; }; }, { "pageChange": "pageChange"; "previousClick": "previousClick"; "nextClick": "nextClick"; }, never, never, true, never>; }