{"version":3,"file":"styles.mjs","sources":["../../../../../../src/components/ivue-table/table-header/styles.ts"],"sourcesContent":["import { inject } from 'vue';\r\n\r\nimport {\r\n  getFixedColumnsClass,\r\n  getFixedColumnOffset,\r\n  ensurePosition,\r\n} from '../utils';\r\n\r\n// ts\r\nimport type { TableHeaderProps } from './types';\r\nimport type { TableColumnCtx } from '../table-column/defaults';\r\nimport { TableContextKey } from '../table/defaults';\r\n\r\nconst prefixCls = 'ivue-table';\r\n\r\nfunction useStyle(props: TableHeaderProps) {\r\n  // inject\r\n  const IvueTable = inject(TableContextKey);\r\n\r\n  // 头部行样式\r\n  const getHeaderCellStyle = (\r\n    rowIndex: number,\r\n    columnIndex: number,\r\n    row: TableColumnCtx[],\r\n    column: TableColumnCtx\r\n  ) => {\r\n    let headerCellStyles = IvueTable?.props.headerCellStyle ?? {};\r\n\r\n    if (typeof headerCellStyles === 'function') {\r\n      headerCellStyles = headerCellStyles.call(null, {\r\n        rowIndex,\r\n        columnIndex,\r\n        row,\r\n        column,\r\n      });\r\n    }\r\n\r\n    // fixedStyle\r\n    const fixedStyle = column.isSubColumn\r\n      ? null\r\n      : getFixedColumnOffset(columnIndex, column.fixed, props.store, row);\r\n\r\n    // 左边\r\n    ensurePosition(fixedStyle, 'left');\r\n    // 右边\r\n    ensurePosition(fixedStyle, 'right');\r\n\r\n    return Object.assign({}, headerCellStyles, fixedStyle);\r\n  };\r\n\r\n  // 头部行样式\r\n  const getHeaderCellClass = (\r\n    rowIndex: number,\r\n    columnIndex: number,\r\n    row: TableColumnCtx[],\r\n    column: TableColumnCtx\r\n  ) => {\r\n    // 固定列样式\r\n    const fixedClasses = column.isSubColumn\r\n      ? []\r\n      : getFixedColumnsClass(\r\n          prefixCls,\r\n          columnIndex,\r\n          column.fixed,\r\n          props.store,\r\n          row\r\n        );\r\n\r\n    // class\r\n    const classes = [\r\n      column.id,\r\n      column.order,\r\n      column.headerAlign,\r\n      column.className,\r\n      column.labelClassName,\r\n      ...fixedClasses,\r\n    ];\r\n\r\n    // 没有子项\r\n    if (!column.children) {\r\n      classes.push('is-leaf');\r\n    }\r\n\r\n    // 排序\r\n    if (column.sortable) {\r\n      classes.push('is-sortable');\r\n    }\r\n\r\n    // 过滤\r\n    if (column.filterable) {\r\n      classes.push('is-filterable');\r\n    }\r\n\r\n    // 表头单元格的 className 的回调方法，\r\n    // 也可以使用字符串为所有表头单元格设置一个固定的 className\r\n    const headerCellClassName = IvueTable?.props.headerCellClassName;\r\n\r\n    // 字符串\r\n    if (typeof headerCellClassName === 'string') {\r\n      classes.push(headerCellClassName);\r\n    }\r\n    // 方法\r\n    else if (typeof headerCellClassName === 'function') {\r\n      classes.push(\r\n        headerCellClassName.call(null, {\r\n          rowIndex,\r\n          columnIndex,\r\n          row,\r\n          column,\r\n        })\r\n      );\r\n    }\r\n\r\n    // cell\r\n    classes.push(`${prefixCls}-cell`);\r\n\r\n    // 过滤\r\n    return classes.filter((className) => Boolean(className)).join(' ');\r\n  };\r\n\r\n  // 表头行的 style 的回调方法\r\n  const getHeaderRowStyle = (rowIndex: number) => {\r\n    const headerRowStyle = IvueTable.props.headerRowStyle;\r\n\r\n    // 方法\r\n    if (typeof headerRowStyle === 'function') {\r\n      return headerRowStyle.call(null, { rowIndex });\r\n    }\r\n\r\n    return headerRowStyle;\r\n  };\r\n\r\n  // 表头行的 className 的回调方法\r\n  const getHeaderRowClass = (rowIndex: number): string => {\r\n    const classes: string[] = [];\r\n\r\n    const headerRowClassName = IvueTable.props.headerRowClassName;\r\n\r\n    // 字符串\r\n    if (typeof headerRowClassName === 'string') {\r\n      classes.push(headerRowClassName);\r\n    }\r\n    // 方法\r\n    else if (typeof headerRowClassName === 'function') {\r\n      classes.push(headerRowClassName.call(null, { rowIndex }));\r\n    }\r\n\r\n    return classes.join(' ');\r\n  };\r\n\r\n  return {\r\n    getHeaderCellClass,\r\n    getHeaderCellStyle,\r\n    getHeaderRowStyle,\r\n    getHeaderRowClass,\r\n  };\r\n}\r\n\r\nexport default useStyle;\r\n"],"names":[],"mappings":";;;;AAaA,MAAM,SAAY,GAAA,YAAA,CAAA;AAElB,SAAS,SAAS,KAAyB,EAAA;AAEzC,EAAM,MAAA,SAAA,GAAY,OAAO,eAAe,CAAA,CAAA;AAGxC,EAAA,MAAM,kBAAqB,GAAA,CACzB,QACA,EAAA,WAAA,EACA,KACA,MACG,KAAA;AAzBP,IAAA,IAAA,EAAA,CAAA;AA0BI,IAAA,IAAI,gBAAmB,GAAA,CAAA,EAAA,GAAA,SAAA,IAAA,IAAA,GAAA,KAAA,CAAA,GAAA,SAAA,CAAW,KAAM,CAAA,eAAA,KAAjB,YAAoC,EAAC,CAAA;AAE5D,IAAI,IAAA,OAAO,qBAAqB,UAAY,EAAA;AAC1C,MAAmB,gBAAA,GAAA,gBAAA,CAAiB,KAAK,IAAM,EAAA;AAAA,QAC7C,QAAA;AAAA,QACA,WAAA;AAAA,QACA,GAAA;AAAA,QACA,MAAA;AAAA,OACD,CAAA,CAAA;AAAA,KACH;AAGA,IAAM,MAAA,UAAA,GAAa,MAAO,CAAA,WAAA,GACtB,IACA,GAAA,oBAAA,CAAqB,aAAa,MAAO,CAAA,KAAA,EAAO,KAAM,CAAA,KAAA,EAAO,GAAG,CAAA,CAAA;AAGpE,IAAA,cAAA,CAAe,YAAY,MAAM,CAAA,CAAA;AAEjC,IAAA,cAAA,CAAe,YAAY,OAAO,CAAA,CAAA;AAElC,IAAA,OAAO,MAAO,CAAA,MAAA,CAAO,EAAC,EAAG,kBAAkB,UAAU,CAAA,CAAA;AAAA,GACvD,CAAA;AAGA,EAAA,MAAM,kBAAqB,GAAA,CACzB,QACA,EAAA,WAAA,EACA,KACA,MACG,KAAA;AAEH,IAAA,MAAM,YAAe,GAAA,MAAA,CAAO,WACxB,GAAA,EACA,GAAA,oBAAA;AAAA,MACE,SAAA;AAAA,MACA,WAAA;AAAA,MACA,MAAO,CAAA,KAAA;AAAA,MACP,KAAM,CAAA,KAAA;AAAA,MACN,GAAA;AAAA,KACF,CAAA;AAGJ,IAAA,MAAM,OAAU,GAAA;AAAA,MACd,MAAO,CAAA,EAAA;AAAA,MACP,MAAO,CAAA,KAAA;AAAA,MACP,MAAO,CAAA,WAAA;AAAA,MACP,MAAO,CAAA,SAAA;AAAA,MACP,MAAO,CAAA,cAAA;AAAA,MACP,GAAG,YAAA;AAAA,KACL,CAAA;AAGA,IAAI,IAAA,CAAC,OAAO,QAAU,EAAA;AACpB,MAAA,OAAA,CAAQ,KAAK,SAAS,CAAA,CAAA;AAAA,KACxB;AAGA,IAAA,IAAI,OAAO,QAAU,EAAA;AACnB,MAAA,OAAA,CAAQ,KAAK,aAAa,CAAA,CAAA;AAAA,KAC5B;AAGA,IAAA,IAAI,OAAO,UAAY,EAAA;AACrB,MAAA,OAAA,CAAQ,KAAK,eAAe,CAAA,CAAA;AAAA,KAC9B;AAIA,IAAM,MAAA,mBAAA,GAAsB,uCAAW,KAAM,CAAA,mBAAA,CAAA;AAG7C,IAAI,IAAA,OAAO,wBAAwB,QAAU,EAAA;AAC3C,MAAA,OAAA,CAAQ,KAAK,mBAAmB,CAAA,CAAA;AAAA,KAClC,MAAA,IAES,OAAO,mBAAA,KAAwB,UAAY,EAAA;AAClD,MAAQ,OAAA,CAAA,IAAA;AAAA,QACN,mBAAA,CAAoB,KAAK,IAAM,EAAA;AAAA,UAC7B,QAAA;AAAA,UACA,WAAA;AAAA,UACA,GAAA;AAAA,UACA,MAAA;AAAA,SACD,CAAA;AAAA,OACH,CAAA;AAAA,KACF;AAGA,IAAQ,OAAA,CAAA,IAAA,CAAK,GAAG,SAAgB,CAAA,KAAA,CAAA,CAAA,CAAA;AAGhC,IAAO,OAAA,OAAA,CAAQ,OAAO,CAAC,SAAA,KAAc,QAAQ,SAAS,CAAC,CAAE,CAAA,IAAA,CAAK,GAAG,CAAA,CAAA;AAAA,GACnE,CAAA;AAGA,EAAM,MAAA,iBAAA,GAAoB,CAAC,QAAqB,KAAA;AAC9C,IAAM,MAAA,cAAA,GAAiB,UAAU,KAAM,CAAA,cAAA,CAAA;AAGvC,IAAI,IAAA,OAAO,mBAAmB,UAAY,EAAA;AACxC,MAAA,OAAO,cAAe,CAAA,IAAA,CAAK,IAAM,EAAA,EAAE,UAAU,CAAA,CAAA;AAAA,KAC/C;AAEA,IAAO,OAAA,cAAA,CAAA;AAAA,GACT,CAAA;AAGA,EAAM,MAAA,iBAAA,GAAoB,CAAC,QAA6B,KAAA;AACtD,IAAA,MAAM,UAAoB,EAAC,CAAA;AAE3B,IAAM,MAAA,kBAAA,GAAqB,UAAU,KAAM,CAAA,kBAAA,CAAA;AAG3C,IAAI,IAAA,OAAO,uBAAuB,QAAU,EAAA;AAC1C,MAAA,OAAA,CAAQ,KAAK,kBAAkB,CAAA,CAAA;AAAA,KACjC,MAAA,IAES,OAAO,kBAAA,KAAuB,UAAY,EAAA;AACjD,MAAA,OAAA,CAAQ,KAAK,kBAAmB,CAAA,IAAA,CAAK,MAAM,EAAE,QAAA,EAAU,CAAC,CAAA,CAAA;AAAA,KAC1D;AAEA,IAAO,OAAA,OAAA,CAAQ,KAAK,GAAG,CAAA,CAAA;AAAA,GACzB,CAAA;AAEA,EAAO,OAAA;AAAA,IACL,kBAAA;AAAA,IACA,kBAAA;AAAA,IACA,iBAAA;AAAA,IACA,iBAAA;AAAA,GACF,CAAA;AACF;;;;"}