/** * Page size selector configuration options. */ export interface PageSizeSelectorOptions { /** * Whether the page size selector is enabled. * * @default true */ enabled?: boolean; /** * Available options for page size dropdown. * * @default [10, 20, 50, 100] */ options?: Array; } /** * Controls options for pagination UI elements. */ export interface PaginationControlsOptions { /** * Page size selector configuration including available options and enabled * state. Users can select from the options to change the number of items * displayed per page. * * @default { enabled: true, options: [10, 20, 50, 100] } */ pageSizeSelector?: boolean | PageSizeSelectorOptions; /** * Whether to show the page information text * (e.g., "Showing 1 - 20 of 200"). * * @default true */ pageInfo?: boolean | PageInfoOptions; /** * Whether to show the first/last page controls buttons. * * @default true */ firstLastButtons?: boolean | FirstLastButtonsOptions; /** * Whether to show the previous/next page controls buttons. * * @default true */ previousNextButtons?: boolean | PreviousNextButtonsOptions; /** * Page number buttons configuration. * * @default { enabled: true, count: 5 } */ pageButtons?: boolean | PageButtonsOptions; } /** * Language options for pagination text values. */ export interface PaginationLangOptions { /** * Text for the page information display. * Placeholders: {start}, {end}, {total}, {currentPage}, {totalPages} * * @default "Showing {start} - {end} of {total} (Page {currentPage} of {totalPages})" // eslint-disable-line */ pageInfo?: string; /** * Text for the page size label. * * @default "rows per page" */ pageSizeLabel?: string; /** * Text for the first page button (accessibility). * * @default "First page" */ firstPage?: string; /** * Text for the previous page button (accessibility). * * @default "Previous page" */ previousPage?: string; /** * Text for the next page button (accessibility). * * @default "Next page" */ nextPage?: string; /** * Text for the last page button (accessibility). * * @default "Last page" */ lastPage?: string; /** * Text for page number button (accessibility). * Placeholder: {page} * * @default "Page {page}" */ pageNumber?: string; /** * Text for ellipsis (accessibility). * * @default "More pages" */ ellipsis?: string; } /** * Pagination options. */ export interface PaginationOptions { /** * Whether the pagination should be rendered. * * @sample grid-lite/basic/pagination-alignment-controls * Pagination alignment * * @default false */ enabled?: boolean; /** * The current page number. * * @default 1 */ page?: number; /** * Initial number of items per page when the Grid is initialized. * This value will be used as the default page size if not specified * in pageSizeSelector options. * * @default 10 */ pageSize?: number; /** * Position of the pagination container relative to the table. * * @default 'bottom' */ position?: string; /** * Alignment of the pagination elements within the wrapper. * * @sample grid-lite/basic/pagination-alignment-controls Pagination alignment */ align?: 'left' | 'center' | 'right' | 'distributed'; /** * Controls options for pagination UI elements. */ controls?: PaginationControlsOptions; } /** * Page buttons configuration options. */ export interface PageButtonsOptions { /** * Whether to show page number buttons. * * @default true */ enabled?: boolean; /** * Maximum number of page number buttons to show before using ellipsis. * * @default 5 */ count?: number; } /** * Page info configuration options. */ export interface PageInfoOptions { /** * Whether to show the page information text. * * @default true */ enabled?: boolean; } /** * First/last page navigation buttons configuration options. */ export interface FirstLastButtonsOptions { /** * Whether to show the first/last page navigation buttons. * * @default true */ enabled?: boolean; } /** * Previous/next page navigation buttons configuration options. */ export interface PreviousNextButtonsOptions { /** * Whether to show the previous/next page navigation buttons. * * @default true */ enabled?: boolean; }