choerodon-ui
Version:
An enterprise-class UI design language and React-based implementation
57 lines (56 loc) • 2.22 kB
TypeScript
import React, { Component, Key } from 'react';
import ConfigContext from '../../../lib/config-provider/ConfigContext';
import DataSet from '../data-set/DataSet';
import Record from '../data-set/Record';
import { onColumnResizeProps, TableProps } from '../table/Table';
import { SelectionMode } from '../table/enum';
import { DataSetSelection } from '../data-set/enum';
import { ColumnProps } from '../table/Column';
import { ModalChildrenProps } from '../modal/interface';
import { LovConfig, ViewRenderer, SelectionProps } from './Lov';
import { FormContextValue } from '../form/FormContext';
import { TriggerViewMode } from '../trigger-field/TriggerField';
export interface LovViewProps {
dataSet: DataSet;
config: LovConfig;
context: FormContextValue;
tableProps?: Partial<TableProps>;
multiple: boolean;
values: any[];
viewMode?: TriggerViewMode;
onSelect: (records: Record | Record[]) => void;
onBeforeSelect?: (records: Record | Record[]) => boolean | undefined;
modal?: ModalChildrenProps;
popupHidden?: boolean;
valueField?: string;
textField?: string;
viewRenderer?: ViewRenderer;
showSelectedInView?: boolean;
getSelectionProps?: () => SelectionProps;
}
export default class LovView extends Component<LovViewProps> {
static get contextType(): typeof ConfigContext;
selection: DataSetSelection | false;
selectionMode: SelectionMode | undefined;
resizedColumns: Map<Key, number>;
componentWillMount(): void;
componentWillUnmount(): void;
shouldComponentUpdate(nextProps: Readonly<LovViewProps>): boolean;
getColumns(): ColumnProps[] | undefined;
handleSelect(event?: React.MouseEvent): boolean;
handleKeyDown(e: any): void;
/**
* 单选 onRow 处理
* @param props
*/
handleRow(props: any): {
onDoubleClick: (event?: React.MouseEvent<Element, MouseEvent> | undefined) => boolean;
};
handleSingleRow(): {
onClick: (event?: React.MouseEvent<Element, MouseEvent> | undefined) => boolean;
};
handleColumnResize(props: onColumnResizeProps): void;
renderTable(): JSX.Element;
renderSelectionList(): JSX.Element | null;
render(): JSX.Element;
}