choerodon-ui
Version:
An enterprise-class UI design language and React-based implementation
222 lines (221 loc) • 8.55 kB
TypeScript
/// <reference types="lodash" />
import { Key, ReactNode } from 'react';
import { ColumnProps } from './Column';
import DataSet from '../data-set/DataSet';
import Record from '../data-set/Record';
import { DragColumnAlign, ScrollPosition, TableAutoHeightType, TableColumnTooltip, TableHeightType, TableQueryBarType } from './enum';
import ColumnGroups from './ColumnGroups';
import Table, { expandIconProps, TableCustomized, TablePaginationConfig, TableProps, TableQueryBarHook } from './Table';
import { Size } from '../core/enum';
import TableEditor from './TableEditor';
import { HighlightRenderer } from '../field/FormField';
export declare const SELECTION_KEY = "__selection-column__";
export declare const ROW_NUMBER_KEY = "__row-number-column__";
export declare const DRAG_KEY = "__drag-column__";
export declare const EXPAND_KEY = "__expand-column__";
export declare const CUSTOMIZED_KEY = "__customized-column__";
export declare const AGGREGATION_EXPAND_CELL_KEY = "__aggregation-expand-cell__";
export declare type HeaderText = {
name: string;
label: string;
};
export declare function getIdList(store: TableStore): number[];
export declare function mergeDefaultProps(originalColumns: ColumnProps[], tableAggregation?: boolean, customizedColumns?: {
[key: string]: ColumnProps;
}, parent?: ColumnProps | null, defaultKey?: number[], columnSort?: {
left: number;
center: number;
right: number;
}): [any[], any[], any[], boolean];
export declare function normalizeColumns(elements: ReactNode, tableAggregation?: boolean, customizedColumns?: {
[key: string]: ColumnProps;
}, parent?: ColumnProps | null, defaultKey?: number[], columnSort?: {
left: number;
center: number;
right: number;
}): [any[], any[], any[], boolean];
export default class TableStore {
node: Table;
editors: Map<string, TableEditor>;
customizedLoaded?: boolean;
props: TableProps;
customized: TableCustomized;
tempCustomized: TableCustomized;
loading?: boolean;
leftOriginalColumns: ColumnProps[];
originalColumns: ColumnProps[];
rightOriginalColumns: ColumnProps[];
hasAggregationColumn?: boolean;
calcBodyHeight: number;
width?: number;
height?: number;
totalHeight?: number;
lastScrollTop: number;
lockColumnsBodyRowsHeight: any;
lockColumnsFootRowsHeight: any;
lockColumnsHeadRowsHeight: any;
expandedRows: (string | number)[];
hoverRow?: Record;
rowClicked?: boolean;
currentEditorName?: string;
styledHidden?: boolean;
customizedActiveKey: string[];
mouseBatchChooseStartId: number;
mouseBatchChooseEndId: number;
mouseBatchChooseState: boolean;
mouseBatchChooseIdList: number[];
columnResizing?: boolean;
scrollPosition: ScrollPosition;
inBatchExpansion: boolean;
performanceOn: boolean;
lastSelected?: Record;
timing: {
renderStart: number;
renderEnd: number;
};
get bodyHeight(): number;
get stickyLeft(): boolean;
get stickyRight(): boolean;
get performanceEnabled(): boolean;
get dataSet(): DataSet;
get prefixCls(): string;
get customizable(): boolean | undefined;
get aggregation(): boolean | undefined;
get aggregationExpandType(): 'cell' | 'row' | 'column';
get autoHeight(): {
type: TableAutoHeightType;
diff: number;
} | undefined;
get heightType(): TableHeightType;
get originalHeightType(): TableHeightType;
get virtualCell(): boolean | undefined;
/**
* number 矫正虚拟滚动由于样式问题导致的高度不符问题
*/
get virtualRowHeight(): number;
get virtual(): boolean | undefined;
get virtualHeight(): number;
get virtualStartIndex(): number;
get virtualEndIndex(): number;
get virtualTop(): number;
get virtualData(): Record[];
get hidden(): boolean | undefined;
get alwaysShowRowBox(): boolean;
get keyboard(): boolean;
get columnResizable(): boolean;
get columnHideable(): boolean;
/**
* 表头支持编辑
*/
get columnTitleEditable(): boolean;
get pagination(): TablePaginationConfig | false | undefined;
get dragColumnAlign(): DragColumnAlign | undefined;
get columnDraggable(): boolean;
get rowDraggable(): boolean;
get size(): Size;
get rowHeight(): 'auto' | number;
get autoFootHeight(): boolean;
get emptyText(): ReactNode;
get highLightRow(): boolean | string;
get parityRow(): boolean;
get showRemovedRow(): boolean;
get autoFocus(): boolean;
get selectedHighLightRow(): boolean;
get editorNextKeyEnterDown(): boolean;
get border(): boolean;
get columnEditorBorder(): boolean;
get queryBar(): TableQueryBarType | TableQueryBarHook | undefined;
get expandIcon(): ((props: expandIconProps) => ReactNode) | undefined;
get currentEditRecord(): Record | undefined;
set currentEditRecord(record: Record | undefined);
showCachedSelection?: boolean;
get isTree(): boolean;
get editing(): boolean;
get hasRowBox(): boolean;
get useMouseBatchChoose(): boolean;
get showSelectionTips(): boolean;
get overflowX(): boolean;
get overflowY(): boolean;
customizedColumnHeader(): JSX.Element;
get customizedColumn(): ColumnProps | undefined;
get expandColumn(): ColumnProps | undefined;
get rowNumberColumn(): ColumnProps | undefined;
get selectionColumn(): ColumnProps | undefined;
get draggableColumn(): ColumnProps | undefined;
get leftColumns(): ColumnProps[];
get rightColumns(): ColumnProps[];
get columns(): ColumnProps[];
get columnGroups(): ColumnGroups;
get leftColumnGroups(): ColumnGroups;
get rightColumnGroups(): ColumnGroups;
get leafNamedColumns(): ColumnProps[];
get hasEmptyWidthColumn(): boolean;
get hasCheckFieldColumn(): boolean;
get hasFooter(): boolean;
get isAnyColumnsLeftLock(): boolean;
get isAnyColumnsRightLock(): boolean;
get isAnyColumnsLock(): boolean;
get data(): Record[];
get indeterminate(): boolean;
get allChecked(): boolean;
get expandIconAsCell(): boolean;
get expandIconColumnIndex(): number;
get inlineEdit(): boolean;
private handleSelectAllChange;
handleLoadCustomized(): void;
constructor(node: Table);
isBuiltInColumn({ key }: ColumnProps): boolean | undefined;
getColumnTooltip(column: ColumnProps): TableColumnTooltip | undefined;
getColumnHeaders(): Promise<HeaderText[]>;
showEditor(name: string): void;
setLastScrollTop(lastScrollTop: number): void;
hideEditor(): void;
changeMouseBatchChooseIdList(idList: number[]): void;
showNextEditor(name: string, reserve: boolean): void;
setProps(props: any): void;
updateProps(props: any): void;
initColumns(): void;
isAggregationCellExpanded(record: Record, key: Key): boolean;
setAggregationCellExpanded(record: Record, key: Key, expanded: boolean): void;
isRowExpanded(record: Record): boolean;
/**
*
* @param record 想修改的record
* @param expanded 设置是否展开
* @param disHandler 设置是否需要触发展开事件
*/
setRowExpanded(record: Record, expanded: boolean, disHandler?: boolean): void;
isRowPending(record: Record): boolean;
setRowPending(record: Record, pending: boolean): void;
isRowLoaded(record: Record): boolean;
setRowLoaded(record: Record, loaded: boolean): void;
isRowHover(record: Record): boolean;
get canTreeLoadData(): boolean;
get cellHighlightRenderer(): HighlightRenderer;
setRowHover(record: Record, hover: boolean): void;
expandAll(): void;
collapseAll(): void;
onTreeNodeLoad({ record }: {
record: Record;
}): Promise<any>;
renderSelectionBox({ record }: {
record: any;
}): ReactNode;
renderRowNumber({ record, dataSet }: {
record: any;
dataSet: any;
}): ReactNode;
renderDragBox({ record }: {
record: any;
}): JSX.Element;
changeCustomizedColumnValue(column: ColumnProps, value: object): void;
saveCustomized(customized?: TableCustomized | null): void;
saveCustomizedDebounce: ((customized?: TableCustomized | null | undefined) => void) & import("lodash").Cancelable;
openCustomizationModal(modal: any): void;
loadCustomized(): Promise<void>;
handleAllPageSelectionMenuClick({ key }: {
key: any;
}): void;
renderAllPageSelectionMenu(): JSX.Element;
private multipleSelectionRenderer;
}