UNPKG

element-plus

Version:

A Component Library for Vue 3

1 lines 6.4 kB
{"version":3,"file":"row.mjs","sources":["../../../../../../../packages/components/table-v2/src/renderers/row.tsx"],"sourcesContent":["import { Row } from '../components'\nimport { tryCall } from '../utils'\n\nimport type {\n ComponentInternalInstance,\n FunctionalComponent,\n UnwrapNestedRefs,\n} from 'vue'\nimport type { UseNamespaceReturn } from '@element-plus/hooks'\nimport type { UseTableReturn } from '../use-table'\nimport type { TableV2Props } from '../table'\nimport type { TableGridRowSlotParams } from '../table-grid'\n\ntype RowRendererProps = TableGridRowSlotParams &\n Pick<\n TableV2Props,\n | 'expandColumnKey'\n | 'estimatedRowHeight'\n | 'rowProps'\n | 'rowClass'\n | 'rowKey'\n | 'rowEventHandlers'\n > &\n UnwrapNestedRefs<\n Pick<\n UseTableReturn,\n | 'depthMap'\n | 'expandedRowKeys'\n | 'hasFixedColumns'\n | 'onRowHovered'\n | 'onRowExpanded'\n | 'columnsStyles'\n >\n > & {\n ns: UseNamespaceReturn\n tableInstance?: ComponentInternalInstance\n }\n\nconst RowRenderer: FunctionalComponent<RowRendererProps> = (\n props,\n { slots }\n) => {\n const {\n columns,\n columnsStyles,\n depthMap,\n expandColumnKey,\n expandedRowKeys,\n estimatedRowHeight,\n hasFixedColumns,\n rowData,\n rowIndex,\n style,\n isScrolling,\n rowProps,\n rowClass,\n rowKey,\n rowEventHandlers,\n ns,\n onRowHovered,\n onRowExpanded,\n } = props\n\n const rowKls = tryCall(rowClass, { columns, rowData, rowIndex }, '')\n const additionalProps = tryCall(rowProps, {\n columns,\n rowData,\n rowIndex,\n })\n const _rowKey = rowData[rowKey]\n const depth = depthMap[_rowKey] || 0\n const canExpand = Boolean(expandColumnKey)\n const isFixedRow = rowIndex < 0\n const kls = [\n ns.e('row'),\n rowKls,\n ns.is('expanded', canExpand && expandedRowKeys.includes(_rowKey)),\n ns.is('fixed', !depth && isFixedRow),\n ns.is('customized', Boolean(slots.row)),\n {\n [ns.e(`row-depth-${depth}`)]: canExpand && rowIndex >= 0,\n },\n ]\n\n const onRowHover = hasFixedColumns ? onRowHovered : undefined\n\n const _rowProps = {\n ...additionalProps,\n columns,\n columnsStyles,\n class: kls,\n depth,\n expandColumnKey,\n estimatedRowHeight: isFixedRow ? undefined : estimatedRowHeight,\n isScrolling,\n rowIndex,\n rowData,\n rowKey: _rowKey,\n rowEventHandlers,\n style,\n }\n\n const handlerMouseEnter = (e: MouseEvent) => {\n onRowHover?.({\n hovered: true,\n rowKey: _rowKey,\n event: e,\n rowData,\n rowIndex,\n })\n }\n\n const handlerMouseLeave = (e: MouseEvent) => {\n onRowHover?.({\n hovered: false,\n rowKey: _rowKey,\n event: e,\n rowData,\n rowIndex,\n })\n }\n\n return (\n <Row\n {..._rowProps}\n onRowExpand={onRowExpanded}\n onMouseenter={handlerMouseEnter}\n onMouseleave={handlerMouseLeave}\n rowkey={_rowKey}\n >\n {slots}\n </Row>\n )\n}\n\nexport default RowRenderer\n"],"names":["_isSlot","s","Object","prototype","toString","call","_isVNode","RowRenderer","props","slots","columns","columnsStyles","depthMap","expandColumnKey","expandedRowKeys","estimatedRowHeight","hasFixedColumns","rowData","rowIndex","style","isScrolling","rowProps","rowClass","rowKey","rowEventHandlers","ns","onRowHovered","onRowExpanded","rowKls","tryCall","additionalProps","_rowKey","depth","canExpand","Boolean","isFixedRow","kls","e","is","includes","row","onRowHover","undefined","_rowProps","class","handlerMouseEnter","hovered","event","handlerMouseLeave","_createVNode","Row","_mergeProps","default"],"mappings":"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"}