choerodon-ui
Version:
An enterprise-class UI design language and React-based implementation
246 lines (245 loc) • 13 kB
TypeScript
import React, { Component, ReactNode, ReactText } from 'react';
import DataSet from '../../pro/lib/data-set/DataSet';
import DsRecord from '../../pro/lib/data-set/Record';
import { TablePaginationConfig } from '../../pro/lib/table/interface';
import { PaginationProps } from '../../pro/lib/pagination/interface';
import { SpinProps } from '../spin';
import { Size } from '../_util/enum';
import Item from './Item';
import ConfigContext, { ConfigContextValue } from '../config-provider/ConfigContext';
export { ListItemProps, ListItemMetaProps } from './Item';
export declare type ColumnCount = 1 | 2 | 3 | 4 | 6 | 8 | 12 | 24;
export declare type ColumnType = 'gutter' | 'column' | 'xs' | 'sm' | 'md' | 'lg' | 'xl' | 'xxl';
export interface ListGridType {
gutter?: number;
column?: ColumnCount;
xs?: ColumnCount;
sm?: ColumnCount;
md?: ColumnCount;
lg?: ColumnCount;
xl?: ColumnCount;
xxl?: ColumnCount;
}
export interface RowSelection {
selectedRowKeys?: ReactText[];
defaultSelectedRowKeys?: ReactText[];
onChange?: (keys: ReactText[]) => void;
}
export interface ListProps {
bordered?: boolean;
className?: string;
children?: ReactNode;
dataSource?: any;
extra?: ReactNode;
grid?: ListGridType;
id?: string;
itemLayout?: string;
loading?: boolean | SpinProps;
loadMore?: ReactNode;
paginationProps?: PaginationProps & {
current?: number;
defaultCurrent?: number;
defaultPageSize?: number;
tiny?: boolean;
size?: string;
onShowSizeChange?: Function;
};
pagination?: TablePaginationConfig | false;
prefixCls?: string;
rowPrefixCls?: string;
spinPrefixCls?: string;
rowKey?: any;
renderItem: any;
size?: Size;
split?: boolean;
header?: ReactNode;
footer?: ReactNode;
empty?: ReactNode;
locale?: Record<string, any>;
dataSet?: DataSet;
rowSelection?: RowSelection | boolean;
}
export interface ListLocale {
emptyText: string;
}
export default class List extends Component<ListProps> {
static displayName: string;
static Item: typeof Item;
static get contextType(): typeof ConfigContext;
static defaultProps: {
dataSource: never[];
bordered: boolean;
split: boolean;
loading: boolean;
pagination: boolean;
};
context: ConfigContextValue;
stateCheckedKeys: ReactText[];
paginationCurrent: number;
defaultPaginationProps: {
page: number;
pageSize: number;
onChange: (page: number, pageSize: number) => void;
total: number;
};
private keys;
get rowSelectionKeys(): ReactText[] | undefined;
get checkedKeys(): ReactText[];
get paginationProps(): {
total: any;
page: number;
pageSize: number;
position?: import("../../components-pro/table/enum").TablePaginationPosition | undefined;
maxPageSize?: number | undefined;
onChange: ((page: number, pageSize: number) => void) | ((page: number, pageSize: number) => void);
beforeChange?: ((page: number, pageSize: number) => boolean | void | Promise<boolean | undefined> | undefined) | undefined;
itemRender?: ((page: number, type: import("../../components-pro/pagination/Pagination").PagerType) => React.ReactNode) | undefined;
pageSizeOptions?: string[] | undefined;
pageSizeEditable?: boolean | undefined;
sizeChangerPosition?: import("../../components-pro/pagination/enum").SizeChangerPosition | undefined;
sizeChangerOptionRenderer?: import("../../components-pro/field/FormField").Renderer<import("../../components-pro/field/FormField").RenderProps> | undefined;
showSizeChanger?: boolean | undefined;
showQuickJumper?: boolean | {
goButton?: React.ReactNode;
} | undefined;
showSizeChangerLabel?: boolean | undefined;
showTotal?: boolean | ((total: number, range: [number, number], counting?: boolean | undefined) => React.ReactNode) | undefined;
showPager?: boolean | undefined;
hideOnSinglePage?: boolean | undefined;
simple?: boolean | undefined;
quickJumperPosition?: import("../../components-pro/pagination/enum").QuickJumperPosition | undefined;
dataSet?: DataSet | undefined;
code?: boolean | undefined;
disabled?: boolean | undefined;
title?: React.ReactNode;
size?: Size | undefined;
onAuxClick?: ((event: React.MouseEvent<any, MouseEvent>) => void) | undefined;
onAuxClickCapture?: ((event: React.MouseEvent<any, MouseEvent>) => void) | undefined;
onClick?: ((event: React.MouseEvent<any, MouseEvent>) => void) | undefined;
onClickCapture?: ((event: React.MouseEvent<any, MouseEvent>) => void) | undefined;
onDoubleClick?: ((event: React.MouseEvent<any, MouseEvent>) => void) | undefined;
onDoubleClickCapture?: ((event: React.MouseEvent<any, MouseEvent>) => void) | undefined;
onContextMenu?: ((event: React.MouseEvent<any, MouseEvent>) => void) | undefined;
onContextMenuCapture?: ((event: React.MouseEvent<any, MouseEvent>) => void) | undefined;
onMouseUp?: ((event: React.MouseEvent<any, MouseEvent>) => void) | undefined;
onMouseUpCapture?: ((event: React.MouseEvent<any, MouseEvent>) => void) | undefined;
onMouseDown?: ((event: React.MouseEvent<any, MouseEvent>) => void) | undefined;
onMouseDownCapture?: ((event: React.MouseEvent<any, MouseEvent>) => void) | undefined;
onMouseMove?: ((event: React.MouseEvent<any, MouseEvent>) => void) | undefined;
onMouseMoveCapture?: ((event: React.MouseEvent<any, MouseEvent>) => void) | undefined;
onMouseEnter?: ((event: React.MouseEvent<any, MouseEvent>) => void) | undefined;
onMouseEnterCapture?: ((event: React.MouseEvent<any, MouseEvent>) => void) | undefined;
onMouseLeave?: ((event: React.MouseEvent<any, MouseEvent>) => void) | undefined;
onMouseLeaveCapture?: ((event: React.MouseEvent<any, MouseEvent>) => void) | undefined;
onMouseOver?: ((event: React.MouseEvent<any, MouseEvent>) => void) | undefined;
onMouseOverCapture?: ((event: React.MouseEvent<any, MouseEvent>) => void) | undefined;
onMouseOut?: ((event: React.MouseEvent<any, MouseEvent>) => void) | undefined;
onMouseOutCapture?: ((event: React.MouseEvent<any, MouseEvent>) => void) | undefined;
onKeyDown?: ((event: React.KeyboardEvent<any>) => void) | undefined;
onKeyDownCapture?: ((event: React.KeyboardEvent<any>) => void) | undefined;
onKeyUp?: ((event: React.KeyboardEvent<any>) => void) | undefined;
onKeyUpCapture?: ((event: React.KeyboardEvent<any>) => void) | undefined;
onKeyPress?: ((event: React.KeyboardEvent<any>) => void) | undefined;
onKeyPressCapture?: ((event: React.KeyboardEvent<any>) => void) | undefined;
onFocus?: ((event: React.FocusEvent<any, Element>) => void) | undefined;
onFocusCapture?: ((event: React.FocusEvent<any, Element>) => void) | undefined;
onBlur?: ((event: React.FocusEvent<any, Element>) => void) | undefined;
onBlurCapture?: ((event: React.FocusEvent<any, Element>) => void) | undefined;
onCopy?: ((event: React.ClipboardEvent<any>) => void) | undefined;
onCopyCapture?: ((event: React.ClipboardEvent<any>) => void) | undefined;
onCut?: ((event: React.ClipboardEvent<any>) => void) | undefined;
onCutCapture?: ((event: React.ClipboardEvent<any>) => void) | undefined;
onPaste?: ((event: React.ClipboardEvent<any>) => void) | undefined;
onPasteCapture?: ((event: React.ClipboardEvent<any>) => void) | undefined;
onCompositionEnd?: ((event: React.CompositionEvent<any>) => void) | undefined;
onCompositionEndCapture?: ((event: React.CompositionEvent<any>) => void) | undefined;
onCompositionStart?: ((event: React.CompositionEvent<any>) => void) | undefined;
onCompositionStartCapture?: ((event: React.CompositionEvent<any>) => void) | undefined;
onCompositionUpdate?: ((event: React.CompositionEvent<any>) => void) | undefined;
onCompositionUpdateCapture?: ((event: React.CompositionEvent<any>) => void) | undefined;
'aria-activedescendant'?: string | undefined;
'aria-atomic'?: boolean | "false" | "true" | undefined;
'aria-autocomplete'?: "none" | "both" | "inline" | "list" | undefined;
'aria-busy'?: boolean | "false" | "true" | undefined;
'aria-checked'?: boolean | "mixed" | "false" | "true" | undefined;
'aria-colcount'?: number | undefined;
'aria-colindex'?: number | undefined;
'aria-colspan'?: number | undefined;
'aria-controls'?: string | undefined;
'aria-current'?: boolean | "time" | "page" | "false" | "true" | "step" | "date" | "location" | undefined;
'aria-describedby'?: string | undefined;
'aria-details'?: string | undefined;
'aria-disabled'?: boolean | "false" | "true" | undefined;
'aria-dropeffect'?: "link" | "none" | "copy" | "move" | "execute" | "popup" | undefined;
'aria-errormessage'?: string | undefined;
'aria-expanded'?: boolean | "false" | "true" | undefined;
'aria-flowto'?: string | undefined;
'aria-grabbed'?: boolean | "false" | "true" | undefined;
'aria-haspopup'?: boolean | "dialog" | "menu" | "listbox" | "grid" | "false" | "true" | "tree" | undefined;
'aria-hidden'?: boolean | "false" | "true" | undefined;
'aria-invalid'?: boolean | "false" | "true" | "grammar" | "spelling" | undefined;
'aria-keyshortcuts'?: string | undefined;
'aria-label'?: string | undefined;
'aria-labelledby'?: string | undefined;
'aria-level'?: number | undefined;
'aria-live'?: "off" | "assertive" | "polite" | undefined;
'aria-modal'?: boolean | "false" | "true" | undefined;
'aria-multiline'?: boolean | "false" | "true" | undefined;
'aria-multiselectable'?: boolean | "false" | "true" | undefined;
'aria-orientation'?: "horizontal" | "vertical" | undefined;
'aria-owns'?: string | undefined;
'aria-placeholder'?: string | undefined;
'aria-posinset'?: number | undefined;
'aria-pressed'?: boolean | "mixed" | "false" | "true" | undefined;
'aria-readonly'?: boolean | "false" | "true" | undefined;
'aria-relevant'?: "all" | "text" | "additions" | "additions removals" | "additions text" | "removals" | "removals additions" | "removals text" | "text additions" | "text removals" | undefined;
'aria-required'?: boolean | "false" | "true" | undefined;
'aria-roledescription'?: string | undefined;
'aria-rowcount'?: number | undefined;
'aria-rowindex'?: number | undefined;
'aria-rowspan'?: number | undefined;
'aria-selected'?: boolean | "false" | "true" | undefined;
'aria-setsize'?: number | undefined;
'aria-sort'?: "none" | "ascending" | "descending" | "other" | undefined;
'aria-valuemax'?: number | undefined;
'aria-valuemin'?: number | undefined;
'aria-valuenow'?: number | undefined;
'aria-valuetext'?: string | undefined;
id?: string | undefined;
tabIndex?: number | undefined;
key?: string | number | undefined;
suffixCls?: string | undefined;
prefixCls?: string | undefined;
className?: string | undefined;
elementClassName?: string | undefined;
style?: React.CSSProperties | undefined;
hidden?: boolean | undefined;
lang?: import("../../components-dataset/locale-context/enum").Lang | undefined;
spellCheck?: boolean | "false" | "true" | undefined;
autoFocus?: boolean | undefined;
dir?: string | undefined;
accessKey?: string | undefined;
contentEditable?: boolean | "inherit" | "false" | "true" | undefined;
draggable?: boolean | "false" | "true" | undefined;
};
componentWillMount(): void;
componentWillUnmount(): void;
handleDataSetLoad(): void;
processDataSetListener(flag: boolean): void;
initDefaultCheckRows(): void;
getContextValue(): {
grid: ListGridType | undefined;
getPrefixCls: typeof import("../configure").getPrefixCls;
};
renderItem: (item: React.ReactElement<any, string | ((props: any) => React.ReactElement<any, any> | null) | (new (props: any) => React.Component<any, any, any>)> | DsRecord, index: number) => any;
isSomethingAfterLastItem(): boolean;
renderEmpty: (contextLocale: ListLocale) => JSX.Element;
getPrefixCls(): string;
updateStateKey(value: any, key: any): (string | number)[];
handleChange(value: any, key: any): void;
renderCheckBox(key: any): {
element: () => JSX.Element;
isChecked: boolean;
} | undefined;
render(): JSX.Element;
}