UNPKG

element-plus

Version:

A Component Library for Vue 3

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