diff --git a/packages/components/table-v2/src/row.ts b/packages/components/table-v2/src/row.ts new file mode 100644 index 0000000000..df643e0a45 --- /dev/null +++ b/packages/components/table-v2/src/row.ts @@ -0,0 +1,78 @@ +import { buildProps, definePropType } from '@element-plus/utils' + +import type { ExtractPropTypes, StyleValue } from 'vue' +import type { Column, FixedDirection, KeyType, RowCommonParams } from './types' + +export type RowExpandParams = { + expanded: boolean + rowKey: KeyType +} & RowCommonParams + +export type RowHoverParams = { + event: MouseEvent +} & RowCommonParams + +export type RowEventHandlerParams = { + rowKey: KeyType + event: Event +} & RowCommonParams + +export type RowExpandHandler = (params: RowExpandParams) => void +export type RowHoverHandler = (params: RowHoverParams) => void +export type RowEventHandler = (params: RowEventHandlerParams) => void +export type RowHeightChangeHandler = ( + rowKey: KeyType, + height: number, + rowIndex: number, + fixedDirection: boolean | FixedDirection +) => void + +export type RowEventHandlers = { + click?: RowEventHandler + contextmenu?: RowEventHandler + dblclick?: RowEventHandler + mouseenter?: RowEventHandler + mouseleave?: RowEventHandler +} + +export const tableV2RowProps = buildProps({ + class: String, + columns: { + type: definePropType[]>(Array), + required: true, + }, + depth: Number, + expandColumnKey: String, + isScrolling: Boolean, + onRowExpand: { + type: definePropType>(Function), + }, + onRowHover: { + type: definePropType>(Function), + }, + onRowHeightChange: { + type: definePropType(Function), + }, + rowData: { + type: definePropType(Object), + required: true, + }, + rowEventHandlers: { + type: definePropType>(Object), + }, + rowIndex: { + type: Number, + required: true, + }, + /** + * Unique item key + */ + rowKey: { + type: definePropType([String, Number, Symbol]), + }, + style: { + type: definePropType([String, Array, Object]), + }, +} as const) + +export type TableV2RowProps = ExtractPropTypes diff --git a/packages/components/table-v2/src/table.ts b/packages/components/table-v2/src/table.ts index 463d8aaf1d..42c086db6c 100644 --- a/packages/components/table-v2/src/table.ts +++ b/packages/components/table-v2/src/table.ts @@ -17,16 +17,6 @@ export type ColumnSortParams = { order: SortOrder } -export type RowExpandParams = { - expanded: boolean - rowKey: KeyType -} & RowCommonParams - -export type RowEventHandlerParams = { - rowKey: KeyType - event: Event -} & RowCommonParams - /** * Renderer/Getter types */ @@ -61,25 +51,8 @@ export type RowClassNameGetter = ( * Handler types */ export type ColumnSortHandler = (params: ColumnSortParams) => void -export type RowExpandHandler = (params: RowExpandParams) => void -export type RowEventHandler = (params: RowEventHandlerParams) => void - -export type RowEventHandlers = { - click?: RowEventHandler - contextmenu?: RowEventHandler - dblclick?: RowEventHandler - mouseenter?: RowEventHandler - mouseleave?: RowEventHandler -} export const tableV2Props = buildProps({ - /** - * Unique items - */ - rowKey: { - type: definePropType([String, Number, Symbol]), - }, - /** * extra props deriver */ @@ -128,7 +101,6 @@ export const tableV2Props = buildProps({ /** * Expanded keys */ - expandColumnKey: String, expandedRowKeys: { type: definePropType(Array), }, @@ -162,12 +134,6 @@ export const tableV2Props = buildProps({ onColumnSort: { type: definePropType>(Function), }, - onRowExpanded: { - type: definePropType>(Function), - }, - rowEventHandlers: { - type: definePropType>(Object), - }, } as const) export type TableV2Props = ExtractPropTypes