zhangyong
2023-08-22 1353e87cb21a4032d585d7404bae9042f2ebcf08
1
{"version":3,"file":"cell.mjs","sources":["../../../../../../../packages/components/table-v2/src/renderers/cell.tsx"],"sourcesContent":["import { get } from 'lodash-unified'\nimport { isFunction, isObject } from '@element-plus/utils'\nimport { ExpandIcon, TableCell } from '../components'\nimport { Alignment } from '../constants'\nimport { placeholderSign } from '../private'\nimport { componentToSlot, enforceUnit, tryCall } from '../utils'\n\nimport type { FunctionalComponent, UnwrapNestedRefs, VNode } from 'vue'\nimport type { CellRendererParams } from '../types'\nimport type { TableV2RowCellRenderParam } from '../components'\nimport type { UseNamespaceReturn } from '@element-plus/hooks'\nimport type { UseTableReturn } from '../use-table'\nimport type { TableV2Props } from '../table'\n\ntype CellRendererProps = TableV2RowCellRenderParam &\n  Pick<\n    TableV2Props,\n    'cellProps' | 'expandColumnKey' | 'indentSize' | 'iconSize' | 'rowKey'\n  > &\n  UnwrapNestedRefs<Pick<UseTableReturn, 'expandedRowKeys'>> & {\n    ns: UseNamespaceReturn\n  }\n\nconst CellRenderer: FunctionalComponent<CellRendererProps> = (\n  {\n    // renderer props\n    columns,\n    column,\n    columnIndex,\n    depth,\n    expandIconProps,\n    isScrolling,\n    rowData,\n    rowIndex,\n    // from use-table\n    style,\n    expandedRowKeys,\n    ns,\n    // derived props\n    cellProps: _cellProps,\n    expandColumnKey,\n    indentSize,\n    iconSize,\n    rowKey,\n  },\n  { slots }\n) => {\n  const cellStyle = enforceUnit(style)\n\n  if (column.placeholderSign === placeholderSign) {\n    return <div class={ns.em('row-cell', 'placeholder')} style={cellStyle} />\n  }\n  const { cellRenderer, dataKey, dataGetter } = column\n\n  const columnCellRenderer = componentToSlot(cellRenderer)\n\n  const CellComponent =\n    columnCellRenderer ||\n    slots.default ||\n    ((props: CellRendererParams<any>) => <TableCell {...props} />)\n\n  const cellData = isFunction(dataGetter)\n    ? dataGetter({ columns, column, columnIndex, rowData, rowIndex })\n    : get(rowData, dataKey ?? '')\n\n  const extraCellProps = tryCall(_cellProps, {\n    cellData,\n    columns,\n    column,\n    columnIndex,\n    rowIndex,\n    rowData,\n  })\n\n  const cellProps = {\n    class: ns.e('cell-text'),\n    columns,\n    column,\n    columnIndex,\n    cellData,\n    isScrolling,\n    rowData,\n    rowIndex,\n  }\n\n  const Cell = CellComponent(cellProps)\n\n  const kls = [\n    ns.e('row-cell'),\n    column.class,\n    column.align === Alignment.CENTER && ns.is('align-center'),\n    column.align === Alignment.RIGHT && ns.is('align-right'),\n  ]\n\n  const expandable =\n    rowIndex >= 0 && expandColumnKey && column.key === expandColumnKey\n  const expanded = rowIndex >= 0 && expandedRowKeys.includes(rowData[rowKey])\n\n  let IconOrPlaceholder: VNode | undefined\n  const iconStyle = `margin-inline-start: ${depth * indentSize}px;`\n  if (expandable) {\n    if (isObject(expandIconProps)) {\n      IconOrPlaceholder = (\n        <ExpandIcon\n          {...expandIconProps}\n          class={[ns.e('expand-icon'), ns.is('expanded', expanded)]}\n          size={iconSize}\n          expanded={expanded}\n          style={iconStyle}\n          expandable\n        />\n      )\n    } else {\n      IconOrPlaceholder = (\n        <div\n          style={[\n            iconStyle,\n            `width: ${iconSize}px; height: ${iconSize}px;`,\n          ].join(' ')}\n        />\n      )\n    }\n  }\n\n  return (\n    <div class={kls} style={cellStyle} {...extraCellProps} role=\"cell\">\n      {IconOrPlaceholder}\n      {Cell}\n    </div>\n  )\n}\n\nCellRenderer.inheritAttrs = false\n\nexport default CellRenderer\n"],"names":["CellRenderer","columns","column","columnIndex","depth","expandIconProps","isScrolling","rowData","rowIndex","style","expandedRowKeys","ns","cellProps","indentSize","rowKey","slots","cellStyle","_createVNode","TableCell","dataKey","dataGetter","default","cellData","extraCellProps","class","_mergeProps","kls","e","expandable","expanded","iconStyle","IconOrPlaceholder","iconSize"],"mappings":"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"}