{"version":3,"file":"styles-helper.mjs","sources":["../../../../../../../packages/components/table/src/table-body/styles-helper.ts"],"sourcesContent":["// @ts-nocheck\r\nimport { inject } from 'vue'\r\nimport { useNamespace } from '@sgui-plus/hooks'\r\nimport {\r\n  ensurePosition,\r\n  getFixedColumnOffset,\r\n  getFixedColumnsClass,\r\n} from '../util'\r\nimport { TABLE_INJECTION_KEY } from '../tokens'\r\nimport type { TableColumnCtx } from '../table-column/defaults'\r\nimport type { TableBodyProps } from './defaults'\r\n\r\nfunction useStyles<T>(props: Partial<TableBodyProps<T>>) {\r\n  const parent = inject(TABLE_INJECTION_KEY)\r\n  const ns = useNamespace('table')\r\n\r\n  const getRowStyle = (row: T, rowIndex: number) => {\r\n    const rowStyle = parent?.props.rowStyle\r\n    if (typeof rowStyle === 'function') {\r\n      return rowStyle.call(null, {\r\n        row,\r\n        rowIndex,\r\n      })\r\n    }\r\n    return rowStyle || null\r\n  }\r\n\r\n  const getRowClass = (row: T, rowIndex: number) => {\r\n    const classes = [ns.e('row')]\r\n    if (\r\n      parent?.props.highlightCurrentRow &&\r\n      row === props.store.states.currentRow.value\r\n    ) {\r\n      classes.push('current-row')\r\n    }\r\n\r\n    if (props.stripe && rowIndex % 2 === 1) {\r\n      classes.push(ns.em('row', 'striped'))\r\n    }\r\n    const rowClassName = parent?.props.rowClassName\r\n    if (typeof rowClassName === 'string') {\r\n      classes.push(rowClassName)\r\n    } else if (typeof rowClassName === 'function') {\r\n      classes.push(\r\n        rowClassName.call(null, {\r\n          row,\r\n          rowIndex,\r\n        })\r\n      )\r\n    }\r\n    return classes\r\n  }\r\n\r\n  const getCellStyle = (\r\n    rowIndex: number,\r\n    columnIndex: number,\r\n    row: T,\r\n    column: TableColumnCtx<T>\r\n  ) => {\r\n    const cellStyle = parent?.props.cellStyle\r\n    let cellStyles = cellStyle ?? {}\r\n    if (typeof cellStyle === 'function') {\r\n      cellStyles = cellStyle.call(null, {\r\n        rowIndex,\r\n        columnIndex,\r\n        row,\r\n        column,\r\n      })\r\n    }\r\n    const fixedStyle = getFixedColumnOffset(\r\n      columnIndex,\r\n      props?.fixed,\r\n      props.store\r\n    )\r\n    ensurePosition(fixedStyle, 'left')\r\n    ensurePosition(fixedStyle, 'right')\r\n    return Object.assign({}, cellStyles, fixedStyle)\r\n  }\r\n\r\n  const getCellClass = (\r\n    rowIndex: number,\r\n    columnIndex: number,\r\n    row: T,\r\n    column: TableColumnCtx<T>,\r\n    offset: number\r\n  ) => {\r\n    const fixedClasses = getFixedColumnsClass(\r\n      ns.b(),\r\n      columnIndex,\r\n      props?.fixed,\r\n      props.store,\r\n      undefined,\r\n      offset\r\n    )\r\n    const classes = [column.id, column.align, column.className, ...fixedClasses]\r\n    const cellClassName = parent?.props.cellClassName\r\n    if (typeof cellClassName === 'string') {\r\n      classes.push(cellClassName)\r\n    } else if (typeof cellClassName === 'function') {\r\n      classes.push(\r\n        cellClassName.call(null, {\r\n          rowIndex,\r\n          columnIndex,\r\n          row,\r\n          column,\r\n        })\r\n      )\r\n    }\r\n    classes.push(ns.e('cell'))\r\n    return classes.filter((className) => Boolean(className)).join(' ')\r\n  }\r\n  const getSpan = (\r\n    row: T,\r\n    column: TableColumnCtx<T>,\r\n    rowIndex: number,\r\n    columnIndex: number\r\n  ) => {\r\n    let rowspan = 1\r\n    let colspan = 1\r\n    const fn = parent?.props.spanMethod\r\n    if (typeof fn === 'function') {\r\n      const result = fn({\r\n        row,\r\n        column,\r\n        rowIndex,\r\n        columnIndex,\r\n      })\r\n      if (Array.isArray(result)) {\r\n        rowspan = result[0]\r\n        colspan = result[1]\r\n      } else if (typeof result === 'object') {\r\n        rowspan = result.rowspan\r\n        colspan = result.colspan\r\n      }\r\n    }\r\n    return { rowspan, colspan }\r\n  }\r\n  const getColspanRealWidth = (\r\n    columns: TableColumnCtx<T>[],\r\n    colspan: number,\r\n    index: number\r\n  ): number => {\r\n    if (colspan < 1) {\r\n      return columns[index].realWidth\r\n    }\r\n    const widthArr = columns\r\n      .map(({ realWidth, width }) => realWidth || width)\r\n      .slice(index, index + colspan)\r\n    return Number(\r\n      widthArr.reduce((acc, width) => Number(acc) + Number(width), -1)\r\n    )\r\n  }\r\n\r\n  return {\r\n    getRowStyle,\r\n    getRowClass,\r\n    getCellStyle,\r\n    getCellClass,\r\n    getSpan,\r\n    getColspanRealWidth,\r\n  }\r\n}\r\n\r\nexport default useStyles\r\n"],"names":[],"mappings":"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"}