{"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 { UseTableReturn } from '../use-table'\nimport type { TableV2Props } from '../table'\nimport type { TableGridRowSlotParams } from '../table-grid'\n\ntype RowRendererProps = TableGridRowSlotParams &\nPick<\nTableV2Props,\n| 'expandColumnKey'\n| 'estimatedRowHeight'\n| 'rowProps'\n| 'rowClass'\n| 'rowKey'\n| 'rowEventHandlers'\n> &\nUnwrapNestedRefs<\nPick<\nUseTableReturn,\n| 'depthMap'\n| 'expandedRowKeys'\n| 'hasFixedColumns'\n| 'onRowHovered'\n| 'onRowExpanded'\n| 'columnsStyles'\n>\n> & {\n  tableInstance: null | 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    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    'table-v2-row',\n    rowKls,\n    {\n      [`table-v2-row-depth-${depth}`]: canExpand && rowIndex >= 0,\n      'is-expanded': canExpand && expandedRowKeys.includes(_rowKey),\n      'is-fixed': !depth && isFixedRow,\n      'is-customized': Boolean(slots.row),\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 handlerMosueEnter = (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={handlerMosueEnter}\n      onMouseleave={handlerMouseLeave}\n      rowkey={_rowKey}\n    >\n      {slots}\n    </Row>\n  )\n}\n\nexport default RowRenderer\n"],"names":["RowRenderer","slots","columns","columnsStyles","depthMap","expandColumnKey","expandedRowKeys","estimatedRowHeight","hasFixedColumns","rowData","rowIndex","style","isScrolling","rowProps","rowClass","rowKey","rowEventHandlers","onRowHovered","onRowExpanded","_rowKey","depth","canExpand","Boolean","class","onRowHover","hovered","event","handlerMosueEnter"],"mappings":";;;;;;;;;;AAoCA,MAAMA;AAEFC,EAAAA;AAAF;AAEA;AACEC,IAAAA;AACAC,IAAAA;AACAC,IAAAA;AACAC,IAAAA;AACAC,IAAAA,eALI;AAMJC,IAAAA;AACAC,IAAAA;AACAC,IAAAA;AACAC,IAAAA;AACAC,IAAAA;AACAC,IAAAA;AACAC,IAAAA;AACAC,IAAAA;AACAC,IAAAA;AACAC,IAAAA;AACAC;AACAC;AAjBI,WAAN;AAoBA;AAAmChB,IAAAA;AAASO;AAASC;AAApB;AACjC;AACER,IAAAA;AACAO,IAAAA;AACAC;AAHwC;AAK1C,QAAMS;AACN,QAAMC,wBAAgB,CAAR;AACd,QAAMC;AACN,gCAA8B,CAA9B;AACA;AAII;AACA,mBAAeA,SAAS;AACxB;AACA,qBAAiBC;AAJnB;AAQF;AAEA;AAEEpB,IAAAA;AACAC,IAAAA;AACAoB,IAAAA,KAAK;AACLH,IAAAA;AACAf,IAAAA;AACAE,IAAAA;AACAK,IAAAA;AACAF,IAAAA;AACAD,IAAAA;AACAM,IAAAA;AACAC,IAAAA;AACAL,IAAAA;AAbgB;;AAgBlB;AACEa,cAAU;AACRC,MAAAA,OAAO;AACPV,MAAAA;AACAW,MAAAA,QAHW;AAIXjB,MAAAA;AACAC;AALW;AAOd;;AAED;AACEc,cAAU;AACRC,MAAAA,OAAO;AACPV,MAAAA,QAAQI;AACRO,MAAAA;AACAjB;AACAC;AALW;AAOd;;AAED;AAAA,mBAGiBQ;AAHjB,oBAIkBS;AAJlB;AAAA;;;;"}