{"version":3,"file":"TableBody.mjs","names":[],"sources":["../../../src/base-ui/Table/TableBody.tsx"],"sourcesContent":["'use client';\n\nimport { cx } from 'antd-style';\nimport type { CSSProperties, Key, ReactNode } from 'react';\n\nimport Spin from '@/base-ui/Spin';\nimport Empty from '@/Empty';\n\nimport { styles } from './style';\nimport { getCellValue } from './toColumnDefs';\nimport type { TableColumn, TableProps } from './type';\n\ninterface TableBodyProps<T> {\n  classNames?: TableProps<T>['classNames'];\n  columnIds: string[];\n  columns: TableColumn<T>[];\n  emptyText?: ReactNode;\n  fixedOffsets: (CSSProperties | undefined)[];\n  loading: boolean;\n  onRow?: TableProps<T>['onRow'];\n  rowClassName?: TableProps<T>['rowClassName'];\n  rows: { id: Key; original: T }[];\n  styles?: TableProps<T>['styles'];\n}\n\nconst TableBody = <T,>({\n  classNames,\n  columnIds,\n  columns,\n  emptyText,\n  fixedOffsets,\n  loading,\n  onRow,\n  rowClassName,\n  rows,\n  styles: customStyles,\n}: TableBodyProps<T>) => {\n  if (rows.length === 0) {\n    return (\n      <tbody className={classNames?.body} style={customStyles?.body}>\n        <tr>\n          <td className={styles.empty} colSpan={columns.length}>\n            {loading ? <Spin /> : (emptyText ?? <Empty description=\"No data\" />)}\n          </td>\n        </tr>\n      </tbody>\n    );\n  }\n\n  return (\n    <tbody className={classNames?.body} style={customStyles?.body}>\n      {rows.map((row, rowIndex) => {\n        const record = row.original;\n        const rowProps = onRow?.(record, rowIndex) ?? {};\n        const extraClassName =\n          typeof rowClassName === 'function' ? rowClassName(record, rowIndex) : rowClassName;\n\n        return (\n          <tr\n            {...rowProps}\n            key={row.id}\n            style={{ ...customStyles?.row, ...rowProps.style }}\n            className={cx(\n              styles.row,\n              rowProps.onClick && styles.clickable,\n              extraClassName,\n              classNames?.row,\n              rowProps.className,\n            )}\n          >\n            {columns.map((column, columnIndex) => {\n              const value = getCellValue(record, column);\n              const cellProps = column.onCell?.(record, rowIndex) ?? {};\n              const content = column.render\n                ? column.render(value, record, rowIndex)\n                : (value as ReactNode);\n\n              return (\n                <td\n                  {...cellProps}\n                  key={columnIds[columnIndex]}\n                  title={column.ellipsis && typeof content === 'string' ? content : cellProps.title}\n                  className={cx(\n                    styles.cell,\n                    column.ellipsis && styles.ellipsis,\n                    column.fixed && styles.fixed,\n                    column.className,\n                    classNames?.cell,\n                    cellProps.className,\n                  )}\n                  style={{\n                    textAlign: column.align,\n                    width: column.width,\n                    ...fixedOffsets[columnIndex],\n                    ...customStyles?.cell,\n                    ...cellProps.style,\n                  }}\n                >\n                  {content}\n                </td>\n              );\n            })}\n          </tr>\n        );\n      })}\n    </tbody>\n  );\n};\n\nexport default TableBody;\n"],"mappings":";;;;;;;;;AAyBA,MAAM,aAAiB,EACrB,YACA,WACA,SACA,WACA,cACA,SACA,OACA,cACA,MACA,QAAQ,mBACe;CACvB,IAAI,KAAK,WAAW,GAClB,OACE,oBAAC,SAAD;EAAO,WAAW,YAAY;EAAM,OAAO,cAAc;EACvD,UAAA,oBAAC,MAAD,EAAA,UACE,oBAAC,MAAD;GAAI,WAAW,OAAO;GAAO,SAAS,QAAQ;GAC3C,UAAA,UAAU,oBAAC,MAAD,CAAO,CAAA,IAAK,aAAa,oBAAC,OAAD,EAAO,aAAY,UAAW,CAAA;EAChE,CAAA,EACF,CAAA;CACC,CAAA;CAIX,OACE,oBAAC,SAAD;EAAO,WAAW,YAAY;EAAM,OAAO,cAAc;EACtD,UAAA,KAAK,KAAK,KAAK,aAAa;GAC3B,MAAM,SAAS,IAAI;GACnB,MAAM,WAAW,QAAQ,QAAQ,QAAQ,KAAK,CAAC;GAC/C,MAAM,iBACJ,OAAO,iBAAiB,aAAa,aAAa,QAAQ,QAAQ,IAAI;GAExE,OACE,8BAAC,MAAD;IACE,GAAI;IACJ,KAAK,IAAI;IACT,OAAO;KAAE,GAAG,cAAc;KAAK,GAAG,SAAS;IAAM;IACjD,WAAW,GACT,OAAO,KACP,SAAS,WAAW,OAAO,WAC3B,gBACA,YAAY,KACZ,SAAS,SACX;GAkCE,GAhCD,QAAQ,KAAK,QAAQ,gBAAgB;IACpC,MAAM,QAAQ,aAAa,QAAQ,MAAM;IACzC,MAAM,YAAY,OAAO,SAAS,QAAQ,QAAQ,KAAK,CAAC;IACxD,MAAM,UAAU,OAAO,SACnB,OAAO,OAAO,OAAO,QAAQ,QAAQ,IACpC;IAEL,OACE,8BAAC,MAAD;KACE,GAAI;KACJ,KAAK,UAAU;KACf,OAAO,OAAO,YAAY,OAAO,YAAY,WAAW,UAAU,UAAU;KAC5E,WAAW,GACT,OAAO,MACP,OAAO,YAAY,OAAO,UAC1B,OAAO,SAAS,OAAO,OACvB,OAAO,WACP,YAAY,MACZ,UAAU,SACZ;KACA,OAAO;MACL,WAAW,OAAO;MAClB,OAAO,OAAO;MACd,GAAG,aAAa;MAChB,GAAG,cAAc;MACjB,GAAG,UAAU;KACf;IAGE,GADD,OACC;GAER,CAAC,CACC;EAER,CAAC;CACI,CAAA;AAEX"}