import React, { FC } from 'react'; import { StandardProps } from '../../util/component-types'; import { ISingleSelectOptionProps, ISingleSelectProps, ISingleSelectState } from '../SingleSelect/SingleSelect'; import { ITextFieldProps } from '../TextField/TextField'; import { IButtonProps } from '../Button/Button'; declare type IPaginatorSingleSelectProps = Partial; declare type ShowTotalObjects = (count: number) => string; export interface IPaginatorProps extends StandardProps, React.DetailedHTMLProps, HTMLDivElement> { /** * Appended to the component-specific class names set on the root elements. */ className?: string; /** * Whether or not to show the page size selector. */ hasPageSizeSelector?: boolean; /** * Disables the Paginator from being clicked or focused. */ isDisabled?: boolean; /** * Label when showTotalObjects is true with 1 or fewer objects. */ objectLabel?: string; /** * Label when showTotalObjects is true with more than 1 objects. */ objectLabelPlural?: string; /** * Called when a page is selected. */ onPageSelect?: (pageIndex: number, totalPages: number, { props, event, }: { props: IButtonProps | ITextFieldProps; event: React.MouseEvent | React.FormEvent | React.FocusEvent; }) => void; /** * Called when a page size is selected. */ onPageSizeSelect?: (pageSizeIndex: number | null, { props, event, }: { props: ISingleSelectOptionProps | undefined; event: React.MouseEvent | React.KeyboardEvent; }) => void; /** * 0-indexed currently selected page number. */ selectedPageIndex?: number; /** * Currently selected page size option index. */ selectedPageSizeIndex?: number; /** * Show total count of objects. */ showTotalObjects?: boolean | ShowTotalObjects; /** * Number to display in \`of \${totalPages}\`, calculated from * \`totalPages\` and selected page size by default. */ totalPages?: number; /** * Total number of items across all pages. */ totalCount?: number | null; /** * Array of numbers representing page size options. */ pageSizeOptions?: number[]; /** * Object of SingleSelect props which are passed thru to the underlying SingleSelect component for the page size selector. */ SingleSelect?: IPaginatorSingleSelectProps; /** * Object of TextField props which are passed thru to the underlying TextField component. */ TextField?: ITextFieldProps; } export interface IPaginatorState { pageIndex: number; totalPages: number; totalCount: number; selectedPageIndex: number; selectedPageSizeIndex: number; pageSizeOptions: number[]; SingleSelect: ISingleSelectState; } declare const Paginator: FC & ILucidComponent; declare const _default: React.FC & ILucidComponent & import("../../util/state-management").IHybridComponent; export default _default; export { Paginator as PaginatorDumb }; //# sourceMappingURL=Paginator.d.ts.map