{"version":3,"file":"style.helper.mjs","names":[],"sources":["../../../../../../../packages/components/table/src/table-header/style.helper.ts"],"sourcesContent":["import { inject } from 'vue'\nimport { useNamespace } from '@element-plus/hooks'\nimport { isFunction, 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 { DefaultRow } from '../table/defaults'\nimport type { TableHeaderProps } from '.'\n\nfunction useStyle<T extends DefaultRow>(props: TableHeaderProps<T>) {\n  const parent = inject(TABLE_INJECTION_KEY)\n  const ns = useNamespace('table')\n\n  const getHeaderRowStyle = (rowIndex: number) => {\n    const headerRowStyle = parent?.props.headerRowStyle\n    if (isFunction(headerRowStyle)) {\n      return headerRowStyle.call(null, { rowIndex })\n    }\n    return headerRowStyle\n  }\n\n  const getHeaderRowClass = (rowIndex: number): string => {\n    const classes: string[] = []\n    const headerRowClassName = parent?.props.headerRowClassName\n    if (isString(headerRowClassName)) {\n      classes.push(headerRowClassName)\n    } else if (isFunction(headerRowClassName)) {\n      classes.push(headerRowClassName.call(null, { rowIndex }))\n    }\n\n    return classes.join(' ')\n  }\n\n  const getHeaderCellStyle = (\n    rowIndex: number,\n    columnIndex: number,\n    row: T,\n    column: TableColumnCtx<T>\n  ) => {\n    let headerCellStyles = parent?.props.headerCellStyle ?? {}\n    if (isFunction(headerCellStyles)) {\n      headerCellStyles = headerCellStyles.call(null, {\n        rowIndex,\n        columnIndex,\n        row,\n        column,\n      })\n    }\n    const fixedStyle = getFixedColumnOffset<T>(\n      columnIndex,\n      column.fixed,\n      props.store,\n      row as unknown as TableColumnCtx<T>[]\n    )\n    ensurePosition(fixedStyle, 'left')\n    ensurePosition(fixedStyle, 'right')\n    return Object.assign({}, headerCellStyles, fixedStyle)\n  }\n\n  const getHeaderCellClass = (\n    rowIndex: number,\n    columnIndex: number,\n    row: T,\n    column: TableColumnCtx<T>\n  ) => {\n    const fixedClasses = getFixedColumnsClass<T>(\n      ns.b(),\n      columnIndex,\n      column.fixed,\n      props.store,\n      row as unknown as TableColumnCtx<T>[]\n    )\n    const classes = [\n      column.id,\n      column.order,\n      column.headerAlign,\n      column.className,\n      column.labelClassName,\n      ...fixedClasses,\n    ]\n\n    if (!column.children) {\n      classes.push('is-leaf')\n    }\n\n    if (column.sortable) {\n      classes.push('is-sortable')\n    }\n\n    const headerCellClassName = parent?.props.headerCellClassName\n    if (isString(headerCellClassName)) {\n      classes.push(headerCellClassName)\n    } else if (isFunction(headerCellClassName)) {\n      classes.push(\n        headerCellClassName.call(null, {\n          rowIndex,\n          columnIndex,\n          row,\n          column,\n        })\n      )\n    }\n\n    classes.push(ns.e('cell'))\n\n    return classes.filter((className) => Boolean(className)).join(' ')\n  }\n\n  return {\n    getHeaderRowStyle,\n    getHeaderRowClass,\n    getHeaderCellStyle,\n    getHeaderCellClass,\n  }\n}\n\nexport default useStyle\n"],"mappings":";;;;;;AAcA,SAAS,SAA+B,OAA4B;CAClE,MAAM,SAAS,OAAO,mBAAmB;CACzC,MAAM,KAAK,aAAa,OAAO;CAE/B,MAAM,qBAAqB,aAAqB;EAC9C,MAAM,iBAAiB,QAAQ,MAAM;EACrC,IAAI,WAAW,cAAc,GAC3B,OAAO,eAAe,KAAK,MAAM,EAAE,SAAS,CAAC;EAE/C,OAAO;CACT;CAEA,MAAM,qBAAqB,aAA6B;EACtD,MAAM,UAAoB,CAAC;EAC3B,MAAM,qBAAqB,QAAQ,MAAM;EACzC,IAAI,SAAS,kBAAkB,GAC7B,QAAQ,KAAK,kBAAkB;OAC1B,IAAI,WAAW,kBAAkB,GACtC,QAAQ,KAAK,mBAAmB,KAAK,MAAM,EAAE,SAAS,CAAC,CAAC;EAG1D,OAAO,QAAQ,KAAK,GAAG;CACzB;CAEA,MAAM,sBACJ,UACA,aACA,KACA,WACG;EACH,IAAI,mBAAmB,QAAQ,MAAM,mBAAmB,CAAC;EACzD,IAAI,WAAW,gBAAgB,GAC7B,mBAAmB,iBAAiB,KAAK,MAAM;GAC7C;GACA;GACA;GACA;EACF,CAAC;EAEH,MAAM,aAAa,qBACjB,aACA,OAAO,OACP,MAAM,OACN,GACF;EACA,eAAe,YAAY,MAAM;EACjC,eAAe,YAAY,OAAO;EAClC,OAAO,OAAO,OAAO,CAAC,GAAG,kBAAkB,UAAU;CACvD;CAEA,MAAM,sBACJ,UACA,aACA,KACA,WACG;EACH,MAAM,eAAe,qBACnB,GAAG,EAAE,GACL,aACA,OAAO,OACP,MAAM,OACN,GACF;EACA,MAAM,UAAU;GACd,OAAO;GACP,OAAO;GACP,OAAO;GACP,OAAO;GACP,OAAO;GACP,GAAG;EACL;EAEA,IAAI,CAAC,OAAO,UACV,QAAQ,KAAK,SAAS;EAGxB,IAAI,OAAO,UACT,QAAQ,KAAK,aAAa;EAG5B,MAAM,sBAAsB,QAAQ,MAAM;EAC1C,IAAI,SAAS,mBAAmB,GAC9B,QAAQ,KAAK,mBAAmB;OAC3B,IAAI,WAAW,mBAAmB,GACvC,QAAQ,KACN,oBAAoB,KAAK,MAAM;GAC7B;GACA;GACA;GACA;EACF,CAAC,CACH;EAGF,QAAQ,KAAK,GAAG,EAAE,MAAM,CAAC;EAEzB,OAAO,QAAQ,QAAQ,cAAc,QAAQ,SAAS,CAAC,CAAC,CAAC,KAAK,GAAG;CACnE;CAEA,OAAO;EACL;EACA;EACA;EACA;CACF;AACF"}