159 lines
4.5 KiB
TypeScript
159 lines
4.5 KiB
TypeScript
import * as React from 'react';
|
|
|
|
interface PaginatorPageState {
|
|
first: number;
|
|
rows: number;
|
|
page: number;
|
|
pageCount: number;
|
|
}
|
|
|
|
type PaginatorFirstPageLinkType = React.ReactNode | ((options: PaginatorFirstPageLinkOptions) => React.ReactNode);
|
|
|
|
type PaginatorPrevPageLinkType = React.ReactNode | ((options: PaginatorPrevPageLinkOptions) => React.ReactNode);
|
|
|
|
type PaginatorPageLinksType = React.ReactNode | ((options: PaginatorPageLinksOptions) => React.ReactNode);
|
|
|
|
type PaginatorNextPageLinkType = React.ReactNode | ((options: PaginatorNextPageLinkOptions) => React.ReactNode);
|
|
|
|
type PaginatorLastPageLinkType = React.ReactNode | ((options: PaginatorLastPageLinkOptions) => React.ReactNode);
|
|
|
|
type PaginatorRowsPerPageDropdownType = React.ReactNode | ((options: PaginatorRowsPerPageDropdownOptions) => React.ReactNode);
|
|
|
|
type PaginatorCurrentPageReportType = React.ReactNode | ((options: PaginatorCurrentPageReportOptions) => React.ReactNode);
|
|
|
|
type PaginatorJumpToPageInputType = React.ReactNode | ((options: PaginatorJumpToPageInputOptions) => React.ReactNode);
|
|
|
|
type PaginatorAppendToType = 'self' | HTMLElement | undefined | null;
|
|
|
|
interface PaginatorFirstPageLinkOptions {
|
|
onClick(event: React.SyntheticEvent): void;
|
|
className: string;
|
|
iconClassName: string;
|
|
disabled: boolean;
|
|
element: JSX.Element;
|
|
props: PaginatorProps;
|
|
}
|
|
|
|
interface PaginatorPrevPageLinkOptions {
|
|
onClick(event: React.SyntheticEvent): void;
|
|
className: string;
|
|
iconClassName: string;
|
|
disabled: boolean;
|
|
element: JSX.Element;
|
|
props: PaginatorProps;
|
|
}
|
|
|
|
interface PaginatorViewOptions {
|
|
startPage: number;
|
|
endPage: number;
|
|
}
|
|
interface PaginatorPageLinksOptions {
|
|
onClick(event: React.SyntheticEvent): void;
|
|
className: string;
|
|
view: PaginatorViewOptions;
|
|
page: number;
|
|
currentPage: number;
|
|
totalPages: number;
|
|
element: JSX.Element;
|
|
props: PaginatorProps;
|
|
}
|
|
|
|
interface PaginatorNextPageLinkOptions {
|
|
onClick(event: React.SyntheticEvent): void;
|
|
className: string;
|
|
iconClassName: string;
|
|
disabled: boolean;
|
|
element: JSX.Element;
|
|
props: PaginatorProps;
|
|
}
|
|
|
|
interface PaginatorLastPageLinkOptions {
|
|
onClick(event: React.SyntheticEvent): void;
|
|
className: string;
|
|
iconClassName: string;
|
|
disabled: boolean;
|
|
element: JSX.Element;
|
|
props: PaginatorProps;
|
|
}
|
|
|
|
interface PaginatorChangeTargetOptions {
|
|
name: string;
|
|
id: string;
|
|
value: string | undefined | null;
|
|
}
|
|
|
|
interface PaginatorChangeParams {
|
|
originalEvent: React.SyntheticEvent;
|
|
value: string | undefined | null;
|
|
stopPropagation(): void;
|
|
preventDefault(): void;
|
|
target: PaginatorChangeTargetOptions;
|
|
}
|
|
|
|
interface PaginatorRowsPerPageDropdownOptions {
|
|
value: any;
|
|
options: any[];
|
|
onChange(e: PaginatorChangeParams): void;
|
|
appendTo: PaginatorAppendToType;
|
|
currentPage: number;
|
|
totalPages: number;
|
|
totalRecords: number;
|
|
element: JSX.Element;
|
|
props: PaginatorProps;
|
|
disabled: boolean;
|
|
}
|
|
|
|
interface PaginatorCurrentPageReportOptions {
|
|
currentPage: number;
|
|
totalPages: number;
|
|
first: number;
|
|
last: number;
|
|
rows: number;
|
|
totalRecords: number;
|
|
className: string;
|
|
element: JSX.Element;
|
|
props: PaginatorProps;
|
|
}
|
|
|
|
interface PaginatorJumpToPageInputOptions {
|
|
value: number;
|
|
onChange(first:number, rows: number): void;
|
|
disabled: boolean;
|
|
className: string;
|
|
element: JSX.Element;
|
|
props: PaginatorProps;
|
|
}
|
|
|
|
interface PaginatorTemplateOptions {
|
|
layout: string;
|
|
FirstPageLink: PaginatorFirstPageLinkType;
|
|
PrevPageLink: PaginatorPrevPageLinkType;
|
|
PageLinks: PaginatorPageLinksType;
|
|
NextPageLink: PaginatorNextPageLinkType;
|
|
LastPageLink: PaginatorLastPageLinkType;
|
|
RowsPerPageDropdown: PaginatorRowsPerPageDropdownType;
|
|
CurrentPageReport: PaginatorCurrentPageReportType;
|
|
JumpToPageInput: PaginatorJumpToPageInputType;
|
|
}
|
|
|
|
export type PaginatorTemplate = string | PaginatorTemplateOptions;
|
|
|
|
export interface PaginatorProps {
|
|
totalRecords?: number;
|
|
rows?: number;
|
|
first?: number;
|
|
pageLinkSize?: number;
|
|
rowsPerPageOptions?: number[];
|
|
alwaysShow?: boolean;
|
|
style?: object;
|
|
className?: string;
|
|
template?: PaginatorTemplate;
|
|
leftContent?: React.ReactNode;
|
|
rightContent?: React.ReactNode;
|
|
currentPageReportTemplate?: string;
|
|
dropdownAppendTo?: PaginatorAppendToType;
|
|
onPageChange?(event: PaginatorPageState): void;
|
|
}
|
|
|
|
export declare class Paginator extends React.Component<PaginatorProps, any> { }
|