choerodon-ui
Version:
An enterprise-class UI design language and React-based implementation
197 lines (196 loc) • 7.57 kB
TypeScript
/// <reference types="lodash" />
import { ReactNode } from 'react';
import { ColumnProps } from './Column';
import DataSet from '../data-set/DataSet';
import Record from '../data-set/Record';
import { DragColumnAlign, TableAutoHeightType, TableColumnTooltip, TableHeightType, TableQueryBarType } from './enum';
import ColumnGroups from './ColumnGroups';
import ColumnGroup from './ColumnGroup';
import { Customized, expandIconProps, TablePaginationConfig } from './Table';
import TableEditor from './TableEditor';
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 type HeaderText = {
name: string;
label: string;
};
export declare const getIdList: (startId: number, endId: number) => any[];
export declare function mergeDefaultProps(originalColumns: ColumnProps[], customizedColumns?: object, parent?: ColumnProps | null, defaultKey?: number[]): ColumnProps[];
export declare function normalizeColumns(elements: ReactNode, customizedColumns?: object, parent?: ColumnProps | null, defaultKey?: number[]): any[];
export default class TableStore {
node: any;
editors: Map<string, TableEditor>;
props: any;
customized: Customized;
tempCustomized: Customized;
loading?: boolean;
originalColumns: ColumnProps[];
bodyHeight: number;
width?: number;
height?: number;
totalHeight?: number;
lastScrollTop: number;
lockColumnsBodyRowsHeight: any;
lockColumnsFootRowsHeight: any;
lockColumnsHeadRowsHeight: any;
expandedRows: (string | number)[];
isHeaderHover?: boolean;
hoverRow?: Record;
clickRow?: Record;
currentEditorName?: string;
styledHidden?: boolean;
rowHighLight: boolean;
customizedActiveKey: string[];
mouseBatchChooseStartId: number;
mouseBatchChooseEndId: number;
mouseBatchChooseState: boolean;
mouseBatchChooseIdList?: number[];
multiLineHeight: number[];
columnResizing?: boolean;
inBatchExpansion: boolean;
get dataSet(): DataSet;
get prefixCls(): string;
get customizable(): boolean;
get autoHeight(): {
type: TableAutoHeightType;
diff: number;
} | undefined;
get heightType(): TableHeightType;
get originalHeightType(): TableHeightType;
/**
* number 矫正虚拟滚动由于样式问题导致的高度不符问题
*/
get virtualRowHeight(): number;
get virtual(): boolean;
get virtualHeight(): number;
get virtualStartIndex(): number;
get virtualTop(): number;
get virtualData(): Record[];
get hidden(): boolean;
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 rowHeight(): 'auto' | number;
get autoFootHeight(): boolean;
get emptyText(): ReactNode;
get highLightRow(): boolean | string;
get parityRow(): boolean;
get autoFocus(): boolean;
get selectedHighLightRow(): boolean;
get editorNextKeyEnterDown(): boolean;
get border(): boolean;
get queryBar(): TableQueryBarType;
get expandIcon(): (props: expandIconProps) => ReactNode;
get pristine(): boolean;
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 columns(): ColumnProps[];
get leftColumns(): ColumnProps[];
get centerColumns(): ColumnProps[];
get rightColumns(): ColumnProps[];
get columnGroups(): ColumnGroups;
get groupedColumns(): ColumnGroup[];
get leftGroupedColumns(): ColumnGroup[];
get centerGroupedColumns(): ColumnGroup[];
get rightGroupedColumns(): ColumnGroup[];
get leafColumns(): ColumnProps[];
get leftLeafColumns(): ColumnProps[];
get centerLeafColumns(): ColumnProps[];
get rightLeafColumns(): ColumnProps[];
get leafNamedColumns(): ColumnProps[];
get totalLeafColumnsWidth(): number;
get leftLeafColumnsWidth(): number;
get rightLeafColumnsWidth(): number;
get hasCheckFieldColumn(): boolean;
get hasFooter(): boolean;
get isAnyColumnsResizable(): boolean;
get isAnyColumnsLock(): boolean;
get isAnyColumnsLeftLock(): boolean;
get isAnyColumnsRightLock(): boolean;
get data(): Record[];
get indeterminate(): boolean;
get allChecked(): boolean;
get expandIconAsCell(): boolean;
get expandIconColumnIndex(): number;
get inlineEdit(): boolean;
private handleSelectAllChange;
constructor(node: any);
getColumnTooltip(column: ColumnProps): TableColumnTooltip;
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;
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;
isRowClick(record: Record): boolean;
setRowClicked(record: Record, click: boolean): void;
get canTreeLoadData(): boolean;
get isRowHighLight(): boolean;
setRowHighLight(highLight: boolean): void;
setRowHover(record: Record, hover: boolean): void;
setMultiLineHeight(multiLineHeight: number): void;
expandAll(): void;
collapseAll(): void;
onTreeNodeLoad({ record }: {
record: Record;
}): Promise<any>;
private getLeafColumns;
renderSelectionBox({ record }: {
record: any;
}): ReactNode;
renderRowNumber({ record, dataSet }: {
record: any;
dataSet: any;
}): ReactNode;
renderDragBox({ record }: {
record: any;
}): any;
changeCustomizedColumnValue(column: ColumnProps, value: object): void;
saveCustomized(customized?: Customized | null): void;
saveCustomizedDebounce: ((customized?: Customized | null | undefined) => void) & import("lodash").Cancelable;
openCustomizationModal(modal: any): void;
loadCustomized(): Promise<void>;
private multipleSelectionRenderer;
}