UNPKG

choerodon-ui

Version:

An enterprise-class UI design language and React-based implementation

347 lines (346 loc) 13.8 kB
/// <reference types="lodash" /> import { Key, ReactNode } from 'react'; import { IReactionDisposer } from 'mobx'; import Group from 'choerodon-ui/dataset/data-set/Group'; import { Config, ConfigKeys, DefaultConfig } from '../../../es/configure'; import { ConfigContextValue } from '../../../es/config-provider/ConfigContext'; import { ColumnProps } from './Column'; import DataSet from '../data-set/DataSet'; import Record from '../data-set/Record'; import { RecordCachedType } from '../data-set/enum'; import { DragColumnAlign, ScrollPosition, TableAutoHeightType, TableColumnResizeTriggerType, TableColumnTooltip, TableHeightType, TableQueryBarType } from './enum'; import ColumnGroups from './ColumnGroups'; import Table, { expandIconProps, TableCustomized, TableGroup, TablePaginationConfig, TableProps, TableQueryBarHook, Clipboard } from './Table'; import { Size } from '../core/enum'; import TableEditor from './TableEditor'; import { HighlightRenderer, TagRendererProps } from '../field/FormField'; import VirtualRowMetaData from './VirtualRowMetaData'; import BatchRunner from '../_util/BatchRunner'; import ColumnGroup from './ColumnGroup'; export declare const SELECTION_KEY = "__selection-column__"; export declare const COMBOBAR_KEY = "__combo-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 const BODY_EXPANDED = "__body_expanded__"; export declare const VIRTUAL_ROOT_MARGIN = 50; export declare type HeaderText = { name: string; label: string; }; export declare function getIdList(store: TableStore): number[]; export declare function normalizeGroupColumns(tableStore: TableStore, columns: ColumnProps[] | undefined, children: ReactNode, aggregation?: boolean, customizedColumns?: { [key: string]: ColumnProps; }): [ColumnProps[], ColumnProps[], ColumnProps[], boolean]; export default class TableStore { configContext: ConfigContextValue; 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 | undefined; width?: number; lastScrollTop: number; lastScrollLeft: 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; comboBarStatus: boolean; lastSelected?: Record; activeEmptyCell?: HTMLTableCellElement; timing: { renderStart: number; renderEnd: number; }; siblingHeihgt?: { before?: number; after?: number; }; parentHeight?: number | undefined; parentPaddingTop?: number | undefined; screenHeight: number; headerHeight: number; footerHeight: number; headerFilter?: { fieldName?: string; filterText?: any; filter?: boolean | ((props: { record: Record; filterText?: string; }) => boolean); }; nextRenderColIndex?: [number, number]; prevRenderColIndex?: [number, number]; startChooseCell: { rowIndex: number; colIndex: number; target: HTMLElement; } | null; endChooseCell: { rowIndex: number; colIndex: number; target: HTMLElement; } | null; isFinishChooseCell: boolean; isCopyPristine: boolean; shiftKey: boolean; autoScrollRAF: number | null; get styleHeight(): string | number | undefined; get styleMaxHeight(): string | number | undefined; get styleMinHeight(): string | number | undefined; get computedHeight(): number | undefined; get otherHeight(): number; get height(): number | undefined; get totalHeight(): number; get bodyHeight(): number; get stickyLeft(): boolean; get stickyRight(): boolean; get performanceEnabled(): boolean; get dataSet(): DataSet; get prefixCls(): string | undefined; get customizable(): boolean | undefined; /** * board 组件个性化按钮 in buttons */ get customizedBtn(): 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; get isFixedRowHeight(): boolean; get propVirtual(): boolean | undefined; get virtual(): boolean | undefined; get columnBuffer(): number; get columnThreshold(): number; updateRenderZonePosition(): [number, number]; get virtualColumnRange(): { left?: [number, number]; center: [number, number]; right?: [number, number]; }; isRenderRange(index: number, isGroup?: boolean): boolean; get blankVirtualCell(): { left: JSX.Element[]; right: JSX.Element[]; }; get tableColumnResizeTransition(): boolean | undefined; actualRows: number | undefined; rowMetaData?: VirtualRowMetaData[] | undefined; lastMeasuredIndex: number; scrolling: boolean | undefined; cellVerticalSize: number | undefined; get virtualRowHeight(): number; get virtualEstimatedRows(): number; get virtualHeight(): number; get virtualVisibleStartIndex(): number; get virtualVisibleEndIndex(): number; get virtualStartIndex(): number; get virtualEndIndex(): number; get virtualTop(): number; get hidden(): boolean | undefined; get alwaysShowRowBox(): boolean; get keyboard(): boolean; get columnResizable(): boolean; get columnHideable(): boolean; /** * 表头支持编辑 */ get columnTitleEditable(): boolean; get heightChangeable(): boolean; get pagination(): TablePaginationConfig | false | undefined; get pageSizeChangeable(): boolean; get dragColumnAlign(): DragColumnAlign | undefined; get columnDraggable(): boolean; get rowDraggable(): boolean; get customDragDropContenxt(): boolean; get size(): Size; get rowHeight(): 'auto' | number; get headerRowHeight(): 'auto' | number; get footerRowHeight(): '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 tableColumnResizeTrigger(): TableColumnResizeTriggerType; get currentEditRecord(): Record | undefined; set currentEditRecord(record: Record | undefined); showCachedSelection?: boolean; defaultRecordCachedType?: RecordCachedType; recordCachedType?: RecordCachedType; get computedRecordCachedType(): RecordCachedType | undefined; get isTree(): boolean; get editing(): boolean; get hasRowBox(): boolean; get useMouseBatchChoose(): boolean; get showCachedTips(): boolean; get showSelectionTips(): boolean; get overflowX(): boolean; get overflowY(): boolean; get hasRowGroups(): boolean; get headerTableGroups(): TableGroup[]; customizedColumnHeader(): JSX.Element; get customizedColumn(): ColumnProps | undefined; get expandColumn(): ColumnProps | undefined; get rowNumberColumn(): ColumnProps | undefined; get selectionColumn(): ColumnProps | undefined; get comboQueryColumn(): 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 getLastEmptyWidthColumn(): ColumnProps | undefined; get hasCheckFieldColumn(): boolean; get hasFooter(): boolean; get isAnyColumnsLeftLock(): boolean; get isAnyColumnsRightLock(): boolean; get isAnyColumnsLock(): boolean; get isCombinedColumn(): boolean; groups: TableGroup[]; groupedData: Group[]; groupedDataWithHeader: Group[]; get cachedDataInType(): Record[]; get cachedData(): Record[]; get currentData(): Record[]; get treeFilter(): ((record: Record) => boolean) | undefined; get data(): Record[]; get cachedIndeterminate(): boolean; get allCachedChecked(): boolean; get currentIndeterminate(): boolean; get allCurrentChecked(): boolean; get indeterminate(): boolean; get allChecked(): boolean; get expandIconAsCell(): boolean; get expandIconColumnIndex(): number; get inlineEdit(): boolean; get clipboard(): Clipboard | undefined; checkAllCurrent(): void; unCheckAllCurrent(): void; checkAllCached(): void; unCheckAllCached(): void; private handleSelectAllChange; constructor(node: Table); isBuiltInColumn({ key }: ColumnProps): boolean | undefined; getColumnTooltip(column: ColumnProps): TableColumnTooltip | undefined; getColumnHeaders(): Promise<HeaderText[]>; getColumnTagRenderer(column: ColumnProps): ((props: TagRendererProps) => ReactNode) | undefined; showEditor(name: string): void; setLastScrollTop(lastScrollTop: number): void; setLastScrollLeft(lastScrollLeft: number): void; hideEditor(): void; changeMouseBatchChooseIdList(idList: number[]): void; showNextEditor(name: string, reserve: boolean): boolean; setProps(props: any): void; updateProps(props: any): void; groupReaction?: IReactionDisposer; disposeGroupReaction(): void; dispose(): void; initGroups(): void; initColumns(): void; isAggregationCellExpanded(record: Record, key: Key): boolean | undefined; setAggregationCellExpanded(record: Record, key: Key, expanded: boolean): void; get isBodyExpanded(): boolean; setBodyExpanded(isBodyExpanded: boolean): void; isGroupExpanded(group: Group): boolean; setGroupExpanded(group: Group, isExpanded: 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; findColumnGroup(indexOrKeyOrName: number | string): ColumnGroup | undefined; setColumnWidth(columnGroup: ColumnGroup, width: number, saveToCustomization?: boolean): void; calcDrawBorderFixColumn(startTarget: any, endTarget: any): { fixLeftClassname: string; fixRightClassname: string; fixLeftLength: number; fixRightLength: number; }; drawCopyBorder(sTarget?: HTMLElement, eTarget?: HTMLElement): void; changeCustomizedColumnValue(column: ColumnProps, value: object, saveToCustomization?: boolean): void; saveCustomized(customized?: TableCustomized | null): Promise<void>; saveCustomizedDebounce: import("lodash").DebouncedFunc<(customized?: TableCustomized | null | undefined) => Promise<void>>; openCustomizationModal(context: any): void; loadCustomized(): Promise<void>; handleAllPageSelectionMenuClick({ key }: { key: any; }): void; renderAllPageSelectionMenu(): JSX.Element; getConfig<T extends ConfigKeys>(key: T): T extends keyof DefaultConfig ? DefaultConfig[T] : Config[T]; getProPrefixCls(suffixCls: string, customizePrefixCls?: string): string; private multipleSelectionRenderer; private getRelationSize; startScroll(): void; stopScroll: import("lodash").DebouncedFunc<(() => void) & import("mobx").IAction>; batchRunner?: BatchRunner; batchSetRowHeight(key: Key, callback: Function): void; isRowInView(index: number): boolean; alignEditor(): void; blurEditor(): void; }