choerodon-ui
Version:
An enterprise-class UI design language and React-based implementation
122 lines (121 loc) • 5.63 kB
TypeScript
import React, { ReactNode } from 'react';
import PropTypes from 'prop-types';
import { Size } from '../../../lib/_util/enum';
import DataSetComponent, { DataSetComponentProps } from '../data-set/DataSetComponent';
import { QuickJumperPosition, SizeChangerPosition } from './enum';
import { Renderer } from '../field/FormField';
export declare type PagerType = 'page' | 'prev' | 'next' | 'first' | 'last' | 'jump-prev' | 'jump-next';
export interface PaginationProps extends DataSetComponentProps {
total?: number;
page?: number;
pageSize?: number;
maxPageSize?: number;
onChange?: (page: number, pageSize: number) => void;
itemRender?: (page: number, type: PagerType) => ReactNode;
pageSizeOptions?: string[];
pageSizeEditable?: boolean;
sizeChangerPosition?: SizeChangerPosition;
sizeChangerOptionRenderer?: Renderer;
showSizeChanger?: boolean;
showQuickJumper?: boolean | {
goButton?: React.ReactNode;
};
showSizeChangerLabel?: boolean;
showTotal?: boolean | ((total: number, range: [number, number]) => React.ReactNode);
showPager?: boolean;
hideOnSinglePage?: boolean;
simple?: boolean;
quickJumperPosition?: QuickJumperPosition;
}
export default class Pagination extends DataSetComponent<PaginationProps> {
static displayName: string;
static propTypes: {
id: PropTypes.Requireable<string>;
size: PropTypes.Requireable<Size>;
suffixCls: PropTypes.Requireable<string>;
prefixCls: PropTypes.Requireable<string>;
title: PropTypes.Requireable<PropTypes.ReactNodeLike>;
disabled: PropTypes.Requireable<boolean>;
hidden: PropTypes.Requireable<boolean>;
autoFocus: PropTypes.Requireable<boolean>;
accessKey: PropTypes.Requireable<string | boolean>;
dir: PropTypes.Requireable<string>;
contentEditable: PropTypes.Requireable<string | boolean>;
draggable: PropTypes.Requireable<string | boolean>;
style: PropTypes.Requireable<object>;
className: PropTypes.Requireable<string>;
tabIndex: PropTypes.Requireable<number>;
lang: PropTypes.Requireable<string>;
spellCheck: PropTypes.Requireable<boolean>;
onFocus: PropTypes.Requireable<(...args: any[]) => any>;
onBlur: PropTypes.Requireable<(...args: any[]) => any>;
onClick: PropTypes.Requireable<(...args: any[]) => any>;
onDoubleClick: PropTypes.Requireable<(...args: any[]) => any>;
onMouseUp: PropTypes.Requireable<(...args: any[]) => any>;
onMouseDown: PropTypes.Requireable<(...args: any[]) => any>;
onMouseMove: PropTypes.Requireable<(...args: any[]) => any>;
onMouseEnter: PropTypes.Requireable<(...args: any[]) => any>;
onMouseLeave: PropTypes.Requireable<(...args: any[]) => any>;
onMouseOver: PropTypes.Requireable<(...args: any[]) => any>;
onMouseOut: PropTypes.Requireable<(...args: any[]) => any>;
onContextMenu: PropTypes.Requireable<(...args: any[]) => any>;
onKeyDown: PropTypes.Requireable<(...args: any[]) => any>;
onKeyUp: PropTypes.Requireable<(...args: any[]) => any>;
onKeyPress: PropTypes.Requireable<(...args: any[]) => any>;
dataSet: PropTypes.Requireable<object>;
total: PropTypes.Requireable<number>;
page: PropTypes.Requireable<number>;
pageSize: PropTypes.Requireable<number>;
onChange: PropTypes.Requireable<(...args: any[]) => any>;
itemRender: PropTypes.Requireable<(...args: any[]) => any>;
sizeChangerPosition: PropTypes.Requireable<SizeChangerPosition>;
sizeChangerOptionRenderer: PropTypes.Requireable<(...args: any[]) => any>;
showSizeChanger: PropTypes.Requireable<boolean>;
showQuickJumper: PropTypes.Requireable<boolean | object>;
showSizeChangerLabel: PropTypes.Requireable<boolean>;
showTotal: PropTypes.Requireable<boolean | ((...args: any[]) => any)>;
showPager: PropTypes.Requireable<boolean>;
simple: PropTypes.Requireable<boolean>;
quickJumperPosition: PropTypes.Requireable<QuickJumperPosition>;
};
static defaultProps: {
suffixCls: string;
sizeChangerPosition: SizeChangerPosition;
quickJumperPosition: QuickJumperPosition;
sizeChangerOptionRenderer: ({ text }: {
text: any;
}) => any;
hideOnSinglePage: boolean;
showSizeChanger: boolean;
showQuickJumper: boolean;
showSizeChangerLabel: boolean;
showTotal: boolean;
simple: boolean;
};
pageInput?: number | '';
get pageSize(): number;
get page(): number;
get total(): number | undefined;
get totalPage(): number;
get next(): boolean;
getObservableProps(props: any, context: any): any;
handlePageSizeBeforeChange(value: any): boolean | Promise<boolean>;
handlePageSizeChange(value: number): void;
handleChange(page: number, pageSize: number): void;
handlePagerClick(page: any): void;
getValidValue(value: any): any;
jumpPage(page: any): void;
handleJumpChange(value: any): void;
handleJumpGo(e: any): void;
getOmitPropsKeys(): string[];
getOptions(): ReactNode;
getPager(page: number, type: PagerType, active?: boolean, disabledSender?: boolean): JSX.Element;
renderPagers(page: number): ReactNode;
renderSizeChange(pageSize: number): ReactNode;
renderTotal(pageSize: number, page: number, total: number): ReactNode;
/**
* 渲染快速跳至
*/
renderQuickGo(): ReactNode;
render(): JSX.Element | null;
}