UNPKG

@uifabric/experiments

Version:

Experimental React components for building experiences for Office 365.

145 lines (144 loc) 3.93 kB
import { IStyle, ITheme } from '../../Styling'; import { IStyleFunctionOrObject, IRefObject, IRenderFunction } from '../../Utilities'; import { IIconProps } from 'office-ui-fabric-react/lib/Icon'; export interface IPaginationProps { /** * The total number of pages. */ pageCount: number; /** * Items per page */ itemsPerPage?: number; /** * total number of items */ totalItemCount?: number; /** * Selected page index * @default 0 */ selectedPageIndex?: number; /** * Icon prop for the first page button */ firstPageIconProps?: IIconProps; /** * Icon prop for the previous page button */ previousPageIconProps?: IIconProps; /** * Icon prop for the next page button */ nextPageIconProps?: IIconProps; /** * Icon prop for the last page button */ lastPageIconProps?: IIconProps; /** * aria label for the first page button */ firstPageAriaLabel?: string; /** * aria label for the previous page button */ previousPageAriaLabel?: string; /** * aria label for the next page button */ nextPageAriaLabel?: string; /** * aria label for the last page button */ lastPageAriaLabel?: string; /** * aria label for the page. This should be a simple string such as 'page' in corresponding localized language. */ pageAriaLabel?: string; /** * aria label for the selected page. e.g. 'selected', 'page selected' */ selectedAriaLabel?: string; /** * call to provide customized styling that will layer on top of the variant rules. */ styles?: IStyleFunctionOrObject<IPaginationStyleProps, IPaginationStyles>; /** * Gets ref to component interface */ componentRef?: IRefObject<{}>; /** * theme provided by High-Order Component. */ theme?: ITheme; /** * the aria label of combo box */ comboBoxAriaLabel?: string; /** * format of the pagination control * @default PaginationFormat.buttons */ format?: PaginationFormat; /** * number of visible buttons. This is only applicable for @param comboBox */ numberOfPageButton?: number; /** * The string object */ strings?: IPaginationString; /** * the call back function to load another page in the table. This needs to be defined in the parent component. */ onPageChange?: (index: number) => void; /** * provide a render function for the visible item label if localization of this string is needed. */ onRenderVisibleItemLabel?: IRenderFunction<IPaginationProps>; } export declare type PaginationFormat = 'comboBox' | 'buttons'; export interface IPaginationString { /** * the divider between the 'from item index' and the 'to item index', e.g. '-' **/ divider?: string; /** * the string for 'of', e.g. 'of' **/ of?: string; } export interface IPaginationStyleProps { theme: ITheme; /** * format of the pagination control * @default PaginationFormat.comboBox */ format?: PaginationFormat; } export interface IPaginationStyles { /** * Style for the root element. */ root: IStyle; /** * Style for the Combo Box. */ comboBox: IStyle; /** * Style for the page number. */ pageNumber: IStyle; /** * Style for the previous, next, first, last page buttons. */ previousNextPage: IStyle; /** * Style for the previous, next, first, last page buttons when they are disabled. */ previousNextPageDisabled: IStyle; /** * Style for the visible item label. */ visibleItemLabel: IStyle; }